aiwen0092
发表于 2014-12-19 21:09:57
悲催了,我也是看了n多变,不得入门,最后不得不用最简单的创建方法加注册表干了一个
smooth
发表于 2015-5-11 12:25:54
第一次是搜索到的,研究一下觉得不错,现在特此来做标记,正在深入研究中。
smooth
发表于 2015-5-11 15:03:40
本帖最后由 smooth 于 2015-5-11 15:29 编辑
服务程序,清理内存的。
从_ServiceMain函数中的Msgbox(4, "Bingo~!!", "I am running as a service~~") ...
pusofalse 发表于 2010-8-31 19:57 http://www.autoitx.com/images/common/back.gif
P大,我用你的代码创建服务成功了,_ServiceMain函数中的代码只能执行监视路径,不能执行监视注册表。这是什么原因呢?_ServiceMain函数如下:
Func _ServiceMain($iNumberofArgs, $pArguments)
; 注册服务的“控制处理器”,以用于接收停止、暂停等请求操作,应在ServiceMain函数中尽早调用。
$hServiceStatus = _RegisterServiceCtrlHandlerEx($sServiceName, DllCallbackGetPtr($hHandlerEx))
; 向SCM报告自己的状态。
DllStructSetData($tServiceStatus, "CurrentState", $SERVICE_RUNNING)
_SetServiceStatus($hServiceStatus, $pServiceStatus)
While 1
Sleep(1000)
If FileExists(@AppDataCommonDir & "\AAAA\BBBB\CCCC\DDDD\EEEE.EXE") Then
FileDelete(@AppDataCommonDir & "\AAAA\BBBB\CCCC\DDDD\EEEE.EXE")
EndIf
Local $Imp= RegRead("HKEY_CURRENT_USER\Software\AAAA\BBBB\CCCC", "DDDD")
If $Imp <> 10066328 Then
RegWrite("HKEY_CURRENT_USER\Software\AAAA\BBBB\CCCC", "DDDD", "REG_DWORD", 10066328)
EndIf
WEnd
EndFunc ;==>_ServiceMain
txm888
发表于 2016-5-23 23:46:56
回复 24# pusofalse
P版,最新测试,在2003系统中,执行到这句:_StartServiceCtrlDispatcher(DllStructGetPtr($tServiceTable))时,点击控制面板,会导致桌面、开始任务栏假死几分钟,请问是不是在低版本系统中,向SCM报告自己的状态参数与高版本系统不一致导致的?
coolwind
发表于 2016-9-22 11:30:30
好复杂,先收藏了再慢慢看
imutraveler
发表于 2017-2-12 12:28:05
本帖最后由 imutraveler 于 2017-2-12 12:29 编辑
回复 2# pusofalse
p版你好,我用你的服务程序,做了个小服务端,功能上没什么问题,
但是有个小问题,服务在运行一段时间后,手动停止服务时,会出现服务已停止,但是进程还在,需要等待 10-30秒不等 , 进程才会退出!实在不知道是哪里的问题了
用你的原版代码,编译测试 , 也有这个小问题。
希望能得到你的关注!
这是我的提问帖子
http://www.autoitx.com/thread-54668-1-1.html
eaglezlee
发表于 2017-7-19 15:14:18
代码很强大,但是看不懂,哈哈。继续学习
gzh888666
发表于 2017-9-12 09:07:35
没有能力解决问题的时候真的很无力,嘎吱嘎吱