欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實現(xiàn)一鍵關閉桌面的示例代碼

 更新時間:2023年07月03日 11:33:44   作者:萬能的小裴同學  
這篇文章主要為大家詳細介紹了如何利用C++實現(xiàn)一鍵關閉桌面的功能,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下

方法一:

C++關閉桌面,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)中所有進程的快照
	if (info_handle == INVALID_HANDLE_VALUE)
	{
		MessageBox(0, TEXT("獲取進程句柄失敗!"), TEXT("錯誤"), 0);
		return;
	}

	PROCESSENTRY32W program_info;
	program_info.dwSize = sizeof(PROCESSENTRY32W);  //設置結構體大小
	int bResult = Process32FirstW(info_handle, &program_info); //獲取所有進程中第一個進程的信息
	if (!bResult)
	{
		MessageBox(0, TEXT("獲取進程句柄失??!"), TEXT("錯誤"), 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打開的也要關閉  
			}
			break;
		}
		//獲得下一個進程的進程信息
		bResult = Process32Next(info_handle, &program_info);
	}
	CloseHandle(info_handle);//關閉句柄
}
int WINAPI WinMain(HINSTANCE h1, HINSTANCE h2, LPSTR cmd, int show)
{
	taskkill("explorer.exe");
}

方法二:

C++ 一鍵關閉屏幕

#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)
{
    // 延時防止雙擊exe關閉屏幕后,又打開屏幕。關閉屏幕的消息,先于系統(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("注冊窗口失敗!"), 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);
}

到此這篇關于C++實現(xiàn)一鍵關閉桌面的示例代碼的文章就介紹到這了,更多相關C++一鍵關閉桌面內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 超詳細解析C++實現(xiàn)快速排序算法的方法

    超詳細解析C++實現(xiàn)快速排序算法的方法

    快速排序是比較快的排序方法。它的基本思想是通過一組排序將要排序的數(shù)據(jù)分割成獨立的兩部分,本文將用C++實現(xiàn)快速排序算法,需要的可以參考一下
    2022-09-09
  • c++中的單例類模板的實現(xiàn)方法詳解

    c++中的單例類模板的實現(xiàn)方法詳解

    這篇文章主要介紹了c++中的單例類模板的實現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • 淺析C++內存布局

    淺析C++內存布局

    本文給大家介紹了C++內存布局的相關知識,通過進程間通信比線程間通信難也是因為進程間的用戶空間是相互隔離的,無法相互訪問,需要通過進程間通信方式通信,通過內核地址空間
    2021-10-10
  • floyd算法實現(xiàn)思路及實例代碼

    floyd算法實現(xiàn)思路及實例代碼

    這篇文章主要介紹了floyd算法實現(xiàn)思路及實例代碼,有需要的朋友可以參考一下
    2014-01-01
  • C語言靜態(tài)版通訊錄的設計與實現(xiàn)

    C語言靜態(tài)版通訊錄的設計與實現(xiàn)

    靜態(tài)版通訊錄是一種簡單的通訊錄實現(xiàn)方式,通過定義固定的數(shù)組大小來存儲聯(lián)系人信息。該方法不支持動態(tài)增刪聯(lián)系人,但具有實現(xiàn)簡單、易于理解的優(yōu)點。在程序設計中,需注意數(shù)組邊界溢出等問題
    2023-04-04
  • C/C++實現(xiàn)獲取系統(tǒng)時間的示例代碼

    C/C++實現(xiàn)獲取系統(tǒng)時間的示例代碼

    C 標準庫提供了 time() 函數(shù)與 localtime() 函數(shù)可以獲取到當前系統(tǒng)的日歷時間。本文將通過一些簡單的示例為大家講講C++獲取系統(tǒng)時間的具體方法,需要的可以參考一下
    2022-12-12
  • 一文搞懂C++中的四種強制類型轉換

    一文搞懂C++中的四種強制類型轉換

    很多朋友向小編了解C語言中怎么進行強制類型轉換呢?在這小編告訴大家強制類型轉換可以分為兩種,一種是隱式類型轉換一種是顯示類型轉換,下面通過示例代碼給大家介紹下,需要的朋友參考下吧
    2021-07-07
  • C++ 實戰(zhàn)開發(fā)一個猜單詞的小游戲

    C++ 實戰(zhàn)開發(fā)一個猜單詞的小游戲

    眾所周知紙上得來終覺淺,我們要在實戰(zhàn)中才能真正的掌握技術,小編為大家?guī)硪环萦肅++編寫的猜單詞小游戲,給大家練練手,快來看看吧
    2021-11-11
  • c++11?實現(xiàn)枚舉值到枚舉名的轉換問題

    c++11?實現(xiàn)枚舉值到枚舉名的轉換問題

    這篇文章主要介紹了c++11?實現(xiàn)枚舉值到枚舉名的轉換,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C++關鍵字const使用方法詳解

    C++關鍵字const使用方法詳解

    C語言中的const與C++有很大的不同,在C語言中用const修飾的變量仍是一個變量,表示這個變量是只讀的,不可顯示地更改,C++中的const關鍵字的用法非常靈活,而使用const將大大改善程序的健壯性,const關鍵字是一種修飾符
    2022-12-12

最新評論