|
自己写的一个自启程序,想用注册表启动,能写入注册表,但QQ电脑管家提示这是一个无效启动项,不知道怎么解决求大神帮忙解决。代码如下:
#include<stdio.h>
#include<time.h>
#include<windows.h>
int WINAPI WinMain(HINSTANCE hlnstance, HINSTANCE hPrevlnstance, LPSTR szCmdLine, int iCmdShow)
{
//定义指针句柄,时间参数和时间结构体指针,存放本地程序与系统文件的目录缓冲区
HKEY hk;
time_t t;
struct tm*lt;
TCHAR syste[MAX_PATH];
TCHAR pa[MAX_PATH];
POINT p;
p.x = 0;
p.y = 0;
//复制自身文件到系统目录下,便于注册表直接找到文件自启;
HMODULE GetModH = GetModuleHandle(NULL);
GetModuleFileName(GetModH, pa, sizeof(pa));
GetSystemDirectory(syste, sizeof(syste));
CopyFile(pa, syste, false);
//将程序写入注册表中,达到自启;
strcat((char*)syste, "/360主动防御.exe");
RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hk);
RegSetValueEx(hk, L"360主动防御.exe", 0, REG_SZ, (const unsigned char*)syste, sizeof(syste));
RegCloseKey(hk);
//时刻获取当前系统时间判断时间是否达到关机和锁定鼠标的条件
ar:
while (1)
{
time(&t);
lt = localtime(&t);
if (lt->tm_hour < 23 && lt->tm_hour>7)
{
goto ar;
}
else
{
system("shutdown/p");//无超时关机
while (1)
::SetCursorPos(p.x, p.y);
}
}
}
|
|