如何创建服务

How can i create serviсe?

本文关键字:服务 创建 何创建      更新时间:2023-10-16

所以,我想创建服务。我的程序需要工作即服务,但不是进程。我在互联网上找到并编辑了这段代码:

#define rootkitname "myrootkit"
SC_HANDLE hSCManager;
hSCManager=OpenSCManager(NULL, NULL,SC_MANAGER_CREATE_SERVICE);
LPVTSTR rootkpath;
rootkpath="C:UsersAdminDesktopBlockerProject1.exe";
SC_HANDLE hManager,hService;     hService=CreateService(hManager,rootkitname,rootkitname,SERVICE_ALL_ACCESS,SER    VICE_KERNEL_DRIVER, SERVICE_BOOT_START,SERVICE_ERROR_NORMAL,     rootkpath,NULL,NULL,NULL, NULL,NULL,NULL);
StartService(hService,NULL,NULL);

此代码创建服务,但它有错误。在 Builder6 中,我有这个错误:

[C++ Error] Unit1.cpp(60): E2451 Undefined symbol 'LPVTSTR'
[C++ Error] Unit1.cpp(60): E2379 Statement missing ;
[C++ Error] Unit1.cpp(61): E2451 Undefined symbol 'rootkpath'
[C++ Error] Unit1.cpp(63): E2206 Illegal character '' (0x5c)
[C++ Error] Unit1.cpp(63): E2227 Extra parameter in call to  __stdcall     CreateServiceA(void *,const char *,const char *,unsigned long,unsigned     long,unsigned long,unsigned long,const char *,const char *,unsigned long     *,const char *,const char *,const char *) 

求你,帮帮我。目标我的应用程序是:用户不能从任务管理器关闭我的程序。

LPVTSTR不是一回事,谷歌建议LPCTSTR(不知道这是否正确(。C 字符串中的反斜杠必须加倍,因此rootkpath="C:\Users\Admin\...

在调用CreateService - rootkpath应该只是rootkpath并删除最后的一个NULL,你有一个太多了。