如何禁止用户关闭delphi 开发的服务程序 delphi 开发的服务程序,如何禁止用户关闭它能禁止一般关闭就行了,在服务界面上不允许关闭就可以了,听说可以提升权限,但是还不太了解,有知道的兄弟能指点一二吗?是否有更好的方法禁止被关闭 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接设置服务的AllowPause为false即可禁止服务暂停。直接设置服务的allowStop为false即可禁止服务停止。前提是你的工程是服务工程,要不然不会有上述两个属性。其实你就算禁止服务停止,也并不能防止用户停止掉你的服务,因为可以通过杀进程的方式结束服务运行。建议你搞多个exe通过互斥量或者信号量来互相监视,发现服务结束后就立即开启! tasklist /svc查看PID值 然后taskkill /pid xx&taskkill /pid xx 两个进程同事结束,一下就完了 现在就是禁止结束进程的问题 { 与SCM管理器通话 }function TellSCM(dwState : DWORD ; dwExitCode : DWORD; dwProgress : DWORD ): LongBool;var srvStatus : service_status;BEGIN srvStatus.dwServiceType := SERVICE_WIN32_SHARE_PROCESS; dwCurrState := dwState; srvStatus.dwCurrentState := dwState; srvStatus.dwControlsAccepted := SERVICE_ACCEPT_STOP or SERVICE_ACCEPT_PAUSE_CONTINUE or SERVICE_ACCEPT_SHUTDOWN;//把这里改成 srvStatus.dwControlsAccepted := SERVICE_ACCEPT_SHUTDOWN即可实现服务停止、暂停服务按钮成灰色! srvStatus.dwWin32ExitCode := dwExitCode; srvStatus.dwServiceSpecificExitCode := 0; srvStatus.dwCheckPoint := dwProgress; srvStatus.dwWaitHint := 3000; Result := SetServiceStatus( SvcStatsHandle, srvStatus );END; 如何在ie8的当前选项卡打开网页,而不是在心选项卡打开 一个关于用"nmstmp"发送EMAIL的问题 帮忙翻译一段代码 一个好奇怪的问题!!! 关于数据库的动态查询问题?(分不够,可以再加!!!) 關于消息的問題...... Delphi初学者的迷惑。 求助DELPHI高手帮帮忙吖 瞧一瞧,看一看...小弟有个问题急待解决(50分奉送) 这本书可以当delphi手册使用 还是多线程问题 delphi调用VC动态库报错,请大家帮忙看看
直接设置服务的allowStop为false即可禁止服务停止。前提是你的工程是服务工程,要不然不会有上述两个属性。其实你就算禁止服务停止,也并不能防止用户停止掉你的服务,因为可以通过杀进程的方式结束服务运行。
建议你搞多个exe通过互斥量或者信号量来互相监视,发现服务结束后就立即开启!
现在就是禁止结束进程的问题
{ 与SCM管理器通话 }
function TellSCM(dwState : DWORD ; dwExitCode : DWORD; dwProgress : DWORD ): LongBool;
var
srvStatus : service_status;
BEGIN
srvStatus.dwServiceType := SERVICE_WIN32_SHARE_PROCESS;
dwCurrState := dwState;
srvStatus.dwCurrentState := dwState;
srvStatus.dwControlsAccepted := SERVICE_ACCEPT_STOP or SERVICE_ACCEPT_PAUSE_CONTINUE or SERVICE_ACCEPT_SHUTDOWN;
//把这里改成 srvStatus.dwControlsAccepted := SERVICE_ACCEPT_SHUTDOWN
即可实现服务停止、暂停服务按钮成灰色!
srvStatus.dwWin32ExitCode := dwExitCode;
srvStatus.dwServiceSpecificExitCode := 0;
srvStatus.dwCheckPoint := dwProgress;
srvStatus.dwWaitHint := 3000;
Result := SetServiceStatus( SvcStatsHandle, srvStatus );
END;