gpt4 book ai didi

c++ - Visual C++ 和窗口服务

转载 作者:行者123 更新时间:2023-11-28 02:06:32 26 4
gpt4 key购买 nike

这是我用 Visual C++ 6.0 编写的程序代码:

#include <Windows.h>
#include "stdafx.h"
#include <stdlib.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{

while(true)
{
int sleepInterval = rand()%15;
Sleep(sleepInterval*1000);

WinExec("notepad.exe" ,SW_SHOWNORMAL);


}
return 0;
}

然后我将此代码生成的 *.exe 文件移动到我的桌面。我从那里开始。一切正常,我的意思是记事本编辑器窗口不时出现。 然后我在命令提示符下使用以下命令创建了 Windows 服务:C:\Documents and Settings\Administrator>sc create ThemesService2 binPath= "C:\Documents and Settings\Administrator\Desktop\win32apphelloworld.exe"DisplayName= "Themes Service2"start= auto

命令提示符的结果是这样的:[SC] CreateService SUCCESS到目前为止,一切正常 - 服务已创建,并且必须在 Windows 启动时自动启动。我重启。然后没有任何反应,记事本中的窗口不会出现。我从“开始”菜单->“运行”打开 Services.msc。服务在那里,但它的状态是空的,我的意思是它的状态不是“已启动”。它的“启动类型”应该是“自动”。但它没有开始。我尝试用鼠标右键单击手动启动它,然后单击“开始”,然后出现一个消息框,提示:“错误 1053:服务没有及时响应启动或控制请求”。有人可以告诉我此服务未启动的原因是什么吗?谢谢

最佳答案

Windows 服务程序不仅仅是一个 C++ 可执行文件,它必须实现某些功能,例如提供服务入口点。在这种情况下,您必须调用 StartServiceCtrlDispatcher(以便 Windows 知道它应该开始与服务通信)但这还不够。查看MSDN Documentation for writing Service Programs .

此外,如果您希望服务能够与桌面交互,您需要在服务属性中选中“允许服务与桌面交互”。

编辑:如果您只想在 Windows 启动时自动运行程序,您可以随时 add it to the startup folder或到 appropriate registry key .

关于c++ - Visual C++ 和窗口服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37238129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com