关于WIN32 服务

sogald_2001 2003-07-02 02:02:06
碰到几个有关WIN32服务的问题,非常急,各位路过的大哥大姐请帮忙:

1 如果用ATL向导生成WIN32服务,里面的Run函数里有一个消息循环,请问里面的DispatchMessage 会将消息分发到哪儿?如果添加自己的消息并处理?

2 WIN32的服务有没有工作目录,也就是说,如果我在服务里面存储一个文件,存到当前目录下,应该到哪去找? 如果没有当前目录,那么它能不能对文件系统的其他目录进行操作,比如创建文件等。

3 如果一个COM组件要去一个服务进行信息交互,要交换的数据比较大,什么方式最简单?

4 如果是一个PHP写的WEB页面要和一个服务交换数据呢,是不是只能使用通信端口? 前提是不在中间增加COM等中间件。

以上四个问题,请大家帮忙解决,谢谢。

...全文
27 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sogald_2001 2003-07-04
  • 打赏
  • 举报
回复
感谢phiger,yongdu,diyzhao!

大部分已经解决,通信的问题决定使用socket。
谢谢各位。
yongdu 2003-07-03
  • 打赏
  • 举报
回复
1. atl写的service在调试时,它也会调用run,所以这时是主线程。而在作为服务运行时,它在服务启动时调用,所以这时是由scm开的另一个线程,(以主服务函数为入口)你注意到start和ServiceMain都调用了run就明白了。

2.很清楚了

3.数据量大,且跨进程跨机器的话,还是socket好。

4.进程间交换数据技术。
服务属性里不是有个登录吗,以谁登录,服务就有谁的权限。这个配置一下就行了,不需要写代码。
diyzhao 2003-07-03
  • 打赏
  • 举报
回复
up...

sogald_2001 2003-07-02
  • 打赏
  • 举报
回复
谢谢 phiger!

就你的回答,有几点尚不明白,还请继续指教。

1 你所说的main thread 等是不是服务注册的 Handler ?

2 这个明白了:),我一会再测试一下。

3 这些方式,连同COM的连接点方式,共享文件,注册表,管道等方式我都考虑过,你觉得哪种方式最简单,winsocket的话可能不大好,我不想开端口。

4 这个问题的解答依赖于第3个问题。

现在有一个新的问题:
现在我有一个WEB页面,该页面可以配置该电脑的网卡等信息,所以需要有很高的权限,假定为管理员权限。而该设置操作是要通过服务进行的,那么,服务是否有这个权限对系统进行配置?
如果没有,那么是否服务要以管理员的身份登陆到系统,也就是要服务以管理员帐号自动登陆,那么这个登陆应该怎么写,我写了一个,代码如下,但测试总不成功,或者成功了怎么判断,我也不知道。



HANDLE hToken;
TOKEN_PRIVILEGES tkp;
if( ! OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return;

LookupPrivilegeValue(NULL,SE_TCB_NAME,&tkp.Privileges [0].Luid );

tkp.PrivilegeCount = 1;
tkp.Privileges [0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);

LogonUser(_T("Administrator"),_T("username"),_T("password"),LOGON32_LOGON_SERVICE,
LOGON32_PROVIDER_DEFAULT, &hToken);
phiger 2003-07-02
  • 打赏
  • 举报
回复
1.Dispatch the message to the main thread and its sub threads.
2.C:\WINNT\system32, yes,of course.
3.Memory share or tcp/ip,winsocket
4.you can use inter-process communication.or winsocket

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧