C++實(shí)現(xiàn)一鍵關(guān)閉桌面的示例代碼
方法一:
C++關(guān)閉桌面,explorer.exe
#include<Windows.h>
#include <TlHelp32.h>
#include"resource.h"
#pragma warning(disable:4996)
void taskkill(const char * name)
{
HANDLE info_handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //拍攝系統(tǒng)中所有進(jìn)程的快照
if (info_handle == INVALID_HANDLE_VALUE)
{
MessageBox(0, TEXT("獲取進(jìn)程句柄失??!"), TEXT("錯(cuò)誤"), 0);
return;
}
PROCESSENTRY32W program_info;
program_info.dwSize = sizeof(PROCESSENTRY32W); //設(shè)置結(jié)構(gòu)體大小
int bResult = Process32FirstW(info_handle, &program_info); //獲取所有進(jìn)程中第一個(gè)進(jìn)程的信息
if (!bResult)
{
MessageBox(0, TEXT("獲取進(jìn)程句柄失?。?), TEXT("錯(cuò)誤"), 0);
return;
}
char tmp[MAX_PATH];
HANDLE hProcess;
while (bResult)
{
wchar_t *pro_name = program_info.szExeFile;
wcstombs(tmp, pro_name, MAX_PATH);
if (!strcmp(tmp, name))
{
hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, program_info.th32ProcessID);
if (hProcess) {
TerminateProcess(hProcess, 0);
CloseHandle(hProcess);//OpenProcess打開的也要關(guān)閉
}
break;
}
//獲得下一個(gè)進(jìn)程的進(jìn)程信息
bResult = Process32Next(info_handle, &program_info);
}
CloseHandle(info_handle);//關(guān)閉句柄
}
int WINAPI WinMain(HINSTANCE h1, HINSTANCE h2, LPSTR cmd, int show)
{
taskkill("explorer.exe");
}
方法二:
C++ 一鍵關(guān)閉屏幕
#include <windows.h>
#include "resource.h"
LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// 延時(shí)防止雙擊exe關(guān)閉屏幕后,又打開屏幕。關(guān)閉屏幕的消息,先于系統(tǒng)的雙擊消息;
Sleep(200);
::SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)2);
static TCHAR szAppName[] = TEXT("HelloWin");
WNDCLASS wndClass;
wndClass.style = CS_HREDRAW | CS_VREDRAW;
wndClass.lpfnWndProc = WindowProc;
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = 0;
wndClass.hInstance = hInstance;
wndClass.hIcon = LoadIcon(hInstance, (char*)IDI_ICON1);
wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndClass.lpszMenuName = NULL;
wndClass.lpszClassName = szAppName;
if (!RegisterClass(&wndClass))
{
MessageBox(NULL, TEXT("注冊(cè)窗口失敗!"), TEXT(""), 0);
return 0;
}
HWND hWnd = CreateWindow(szAppName, TEXT("Hello Program"),
WS_OVERLAPPEDWINDOW, 0, 0, 0, 0,
NULL, NULL, hInstance, NULL);
::SendMessage(hWnd, WM_DESTROY, 0, NULL);
return 0;
}
LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch (uMsg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}到此這篇關(guān)于C++實(shí)現(xiàn)一鍵關(guān)閉桌面的示例代碼的文章就介紹到這了,更多相關(guān)C++一鍵關(guān)閉桌面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
超詳細(xì)解析C++實(shí)現(xiàn)快速排序算法的方法
快速排序是比較快的排序方法。它的基本思想是通過(guò)一組排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,本文將用C++實(shí)現(xiàn)快速排序算法,需要的可以參考一下2022-09-09
floyd算法實(shí)現(xiàn)思路及實(shí)例代碼
這篇文章主要介紹了floyd算法實(shí)現(xiàn)思路及實(shí)例代碼,有需要的朋友可以參考一下2014-01-01
C語(yǔ)言靜態(tài)版通訊錄的設(shè)計(jì)與實(shí)現(xiàn)
靜態(tài)版通訊錄是一種簡(jiǎn)單的通訊錄實(shí)現(xiàn)方式,通過(guò)定義固定的數(shù)組大小來(lái)存儲(chǔ)聯(lián)系人信息。該方法不支持動(dòng)態(tài)增刪聯(lián)系人,但具有實(shí)現(xiàn)簡(jiǎn)單、易于理解的優(yōu)點(diǎn)。在程序設(shè)計(jì)中,需注意數(shù)組邊界溢出等問(wèn)題2023-04-04
C/C++實(shí)現(xiàn)獲取系統(tǒng)時(shí)間的示例代碼
C 標(biāo)準(zhǔn)庫(kù)提供了 time() 函數(shù)與 localtime() 函數(shù)可以獲取到當(dāng)前系統(tǒng)的日歷時(shí)間。本文將通過(guò)一些簡(jiǎn)單的示例為大家講講C++獲取系統(tǒng)時(shí)間的具體方法,需要的可以參考一下2022-12-12
一文搞懂C++中的四種強(qiáng)制類型轉(zhuǎn)換
很多朋友向小編了解C語(yǔ)言中怎么進(jìn)行強(qiáng)制類型轉(zhuǎn)換呢?在這小編告訴大家強(qiáng)制類型轉(zhuǎn)換可以分為兩種,一種是隱式類型轉(zhuǎn)換一種是顯示類型轉(zhuǎn)換,下面通過(guò)示例代碼給大家介紹下,需要的朋友參考下吧2021-07-07
C++ 實(shí)戰(zhàn)開發(fā)一個(gè)猜單詞的小游戲
眾所周知紙上得來(lái)終覺淺,我們要在實(shí)戰(zhàn)中才能真正的掌握技術(shù),小編為大家?guī)?lái)一份用C++編寫的猜單詞小游戲,給大家練練手,快來(lái)看看吧2021-11-11
c++11?實(shí)現(xiàn)枚舉值到枚舉名的轉(zhuǎn)換問(wèn)題
這篇文章主要介紹了c++11?實(shí)現(xiàn)枚舉值到枚舉名的轉(zhuǎn)換,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03

