首先是最熟悉的Windows調用cmd的關機
主要是system(“shutdown -s -t 0”);
void MyShutdown2(){//定義爲MyShutdown2
system("shutdown -s -t 0");
}
第二個是通過模擬按鍵的關機
主要是虛擬鍵碼和keybd_event()函數的用法
void MyShutdown1(){//定義爲MyShutdown1
keybd_event(91,0,0,0);
keybd_event(82,0,0,0);
keybd_event(91,0,KEYEVENTF_KEYUP,0);
keybd_event(82,0,KEYEVENTF_KEYUP,0);
Sleep(300);//緩衝
keybd_event('C',0,0,0);
keybd_event('C',0,KEYEVENTF_KEYUP,0);
keybd_event('M',0,0,0);
keybd_event('M',0,KEYEVENTF_KEYUP,0);
keybd_event('D',0,0,0);
keybd_event('D',0,KEYEVENTF_KEYUP,0);
keybd_event(13,0,0,0);
keybd_event(13,0,KEYEVENTF_KEYUP,0);
Sleep(1000);//緩衝
keybd_event('S',0,0,0);
keybd_event('S',0,KEYEVENTF_KEYUP,0);
keybd_event('H',0,0,0);
keybd_event('H',0,KEYEVENTF_KEYUP,0);
keybd_event('U',0,0,0);
keybd_event('U',0,KEYEVENTF_KEYUP,0);
keybd_event('T',0,0,0);
keybd_event('T',0,KEYEVENTF_KEYUP,0);
keybd_event('D',0,0,0);
keybd_event('D',0,KEYEVENTF_KEYUP,0);
keybd_event('O',0,0,0);
keybd_event('O',0,KEYEVENTF_KEYUP,0);
keybd_event('W',0,0,0);
keybd_event('W',0,KEYEVENTF_KEYUP,0);
keybd_event('N',0,0,0);
keybd_event('N',0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SPACE,0,0,0);
keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SUBTRACT,0,0,0);
keybd_event(VK_SUBTRACT,0,KEYEVENTF_KEYUP,0);
keybd_event('S',0,0,0);
keybd_event('S',0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SPACE,0,0,0);
keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SUBTRACT,0,0,0);
keybd_event(VK_SUBTRACT,0,KEYEVENTF_KEYUP,0);
keybd_event('T',0,0,0);
keybd_event('T',0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SPACE,0,0,0);
keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);
keybd_event(48,0,0,0);
keybd_event(48,0,KEYEVENTF_KEYUP,0);
keybd_event(13,0,0,0);
keybd_event(13,0,KEYEVENTF_KEYUP,0);
}
最後是模擬鼠標移動、按鍵的關機
主要是mouse_event()函數的用法
只有筆記本適用
void MyShutdown3(){//這裏我們定義爲MyShutdown3
SetCursorPos(27,705);
Sleep(300);
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
Sleep(300);
SetCursorPos(21,633);
Sleep(300);
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
Sleep(300);
SetCursorPos(127,567);
Sleep(300);
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
}
最後附上所有源碼
#include<iostream>
#include<windows.h>
#include<Windows.h>
#include<bits/stdc++.h>
#include<tchar.h>
using namespace std;
void MyShutdown1(){
keybd_event(91,0,0,0);
keybd_event(82,0,0,0);
keybd_event(91,0,KEYEVENTF_KEYUP,0);
keybd_event(82,0,KEYEVENTF_KEYUP,0);
Sleep(300);
keybd_event('C',0,0,0);
keybd_event('C',0,KEYEVENTF_KEYUP,0);
keybd_event('M',0,0,0);
keybd_event('M',0,KEYEVENTF_KEYUP,0);
keybd_event('D',0,0,0);
keybd_event('D',0,KEYEVENTF_KEYUP,0);
keybd_event(13,0,0,0);
keybd_event(13,0,KEYEVENTF_KEYUP,0);
Sleep(1000);
keybd_event('S',0,0,0);
keybd_event('S',0,KEYEVENTF_KEYUP,0);
keybd_event('H',0,0,0);
keybd_event('H',0,KEYEVENTF_KEYUP,0);
keybd_event('U',0,0,0);
keybd_event('U',0,KEYEVENTF_KEYUP,0);
keybd_event('T',0,0,0);
keybd_event('T',0,KEYEVENTF_KEYUP,0);
keybd_event('D',0,0,0);
keybd_event('D',0,KEYEVENTF_KEYUP,0);
keybd_event('O',0,0,0);
keybd_event('O',0,KEYEVENTF_KEYUP,0);
keybd_event('W',0,0,0);
keybd_event('W',0,KEYEVENTF_KEYUP,0);
keybd_event('N',0,0,0);
keybd_event('N',0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SPACE,0,0,0);
keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SUBTRACT,0,0,0);
keybd_event(VK_SUBTRACT,0,KEYEVENTF_KEYUP,0);
keybd_event('S',0,0,0);
keybd_event('S',0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SPACE,0,0,0);
keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SUBTRACT,0,0,0);
keybd_event(VK_SUBTRACT,0,KEYEVENTF_KEYUP,0);
keybd_event('T',0,0,0);
keybd_event('T',0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SPACE,0,0,0);
keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);
keybd_event(48,0,0,0);
keybd_event(48,0,KEYEVENTF_KEYUP,0);
keybd_event(13,0,0,0);
keybd_event(13,0,KEYEVENTF_KEYUP,0);
}
void MyShutdown2(){
system("shutdown -s -t 0");
}
void MyShutdown3(){
SetCursorPos(27,705);
Sleep(300);
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
Sleep(300);
SetCursorPos(21,633);
Sleep(300);
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
Sleep(300);
SetCursorPos(127,567);
Sleep(300);
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
}
int main(){
int sr;
jk:cout<<"關機(1,2,3)"<<endl;
cin>>sr;
if(sr==1){
cout<<"注意語言變成英語"<<endl;
system("pause");
MyShutdown1();
}else if(sr==2)MyShutdown2();
else if(sr==3)MyShutdown3();
else{
cout<<"輸錯了!!";
system("cls");
goto jk;
}
return 0;
}