C++多方式關機(Windows10)

首先是最熟悉的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;
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章