下面的命令可以创建一个自启动服务
sc create checksec binpath= "C:\Users\hambaga\AppData\Roaming\Program Data\chc.exe" depend= Tcpip start=auto
下面的代码创建了一个服务,然后把自己复制到C盘下,通过服务实现开机自启动。
如果要卸载这个服务,只需执行一下命令:
sc delete AutoStartServiceDemo
// AutoStartServiceDemo.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
char lpszServiceName[MAX_PATH] = "AutoStartServiceDemo";
char lpszTargetPath[MAX_PATH] = "C:\\AutoStartServiceDemo.exe";
char lpszCurrentPath[MAX_PATH] = {0};
void AutoStart()
{
SC_HANDLE sc = OpenSCManagerA(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if (sc == NULL) exit(1);
SC_HANDLE hService = OpenServiceA(sc, lpszServiceName, SERVICE_ALL_ACCESS);
if (hService == NULL)
{
hService = CreateServiceA(sc,lpszServiceName,lpszServiceName,SERVICE_ALL_ACCESS,SERVICE_WIN32_SHARE_PROCESS,
SERVICE_AUTO_START,SERVICE_ERROR_NORMAL,lpszTargetPath,NULL,NULL,NULL,NULL,NULL);
}
else
{
//DeleteService(hService);
}
CloseServiceHandle(hService);
CloseServiceHandle(sc);
GetModuleFileNameA(NULL,lpszCurrentPath,MAX_PATH);
CopyFileA(lpszCurrentPath,lpszTargetPath,FALSE);
}
int _tmain(int argc, _TCHAR* argv[])
{
AutoStart();
ShellExecuteA(NULL,NULL,"notepad.exe",NULL,NULL,SW_SHOW);
return 0;
}
本文介绍如何利用CreateService和SC命令创建一个开机自动启动的服务,并将程序复制到C盘,以实现系统启动时自动运行。同时提到了卸载该服务的方法。

被折叠的 条评论
为什么被折叠?



