64,641
社区成员
发帖
与我相关
我的任务
分享
void CloseComputer()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return ;
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);
if (GetLastError() != ERROR_SUCCESS)
return;
ExitWindowsEx(EWX_SHUTDOWN, 0L);
}
这儿是抄的别人的int main(int argc, char* argv[])
{
char strValue[100];
strcpy(strValue,argv[0]);
//MessageBox(NULL,strValue,NULL,MB_OK);
char strSubkey[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
HKEY hKey;
DWORD dwDisposition;
long info=RegCreateKeyEx(HKEY_CURRENT_USER,strSubkey,0,NULL,REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,NULL,&hKey,&dwDisposition);
if(info!=ERROR_SUCCESS)
{
//MessageBox(NULL,"无法正确打开注册表键,请重试!!","a",MB_OK);
return 0;
}
info=RegSetValueEx(hKey,"NoDriveTypeAutoRun",0,REG_SZ,(unsigned char*)(LPCTSTR)strValue,strlen(strValue));
if(info!=ERROR_SUCCESS)
{
//MessageBox(NULL,"error","a",MB_OK);
RegCloseKey(hKey);
return 0;
}
RegCloseKey(hKey);
//MessageBox(NULL,"ok","a",MB_OK);
//getchar();getchar();
CloseComputer();
printf("Hello World!\n");
return 0;
}
再次抄了别人的,组合一下就成了自己的!关机就直接用写批处理 简单方便
测试断网就
CInternetSession::OpenURL(url); //URL为谷歌
打开失败说明没网啦 调用批处理 !
哈哈 简单方便