C/C++遍歷進程和進程ID的小工具
當我們寫某些破壞性的程式時就需要對進程進行遍歷和提取ID
對於上述功能,我們先介紹幾個API
1.CreateToolhelp32Snapshout function
1.CreateToolhelp32Snapshout function
1.CreateToolhelp32Snapshout function
1.CreateToolhelp32Snapshout function
1.CreateToolhelp32Snapshout function
的快照
語法如下:
HANDLE WINAPI CreateToolhelp32Snapshot( _In_ DWORD dwFlags, _In_ DWORD th32ProcessID );
typedef struct tagPROCESSENTRY32 { DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; ULONG_PTR th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD dwFlags; TCHAR szExeFile[MAX_PATH]; } PROCESSENTRY32, *PPROCESSENTRY32;
這描述了一個入口,這個入口是當快照被調用時系統地址空間裡面的進程被讀取。
這裡只介紹szExeFile[MAX_PATH]和
szExeFile:進程的名稱在執行檔的名稱原始碼!部分函數沒有解說,但可以透過註解或字面上可以了解
#include <Windows.h> #include <stdio.h> #include <TlHelp32.h> int main() { HANDLE hProceessnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProceessnap == INVALID_HANDLE_VALUE) { printf_s("创建进行快照失败\n"); return -1; } else { PROCESSENTRY32 pe32; pe32.dwSize = sizeof(pe32); BOOL hProcess = Process32First(hProceessnap, &pe32); char buff[1024]; while (hProcess) { wsprintf(buff, "进程名:%s--------------------进程ID:%d", pe32.szExeFile, pe32.th32ParentProcessID); printf_s("%s\n", buff); memset(buff, 0x00, 1024); hProcess = Process32Next(hProceessnap, &pe32); } } CloseHandle(hProceessnap); return 0; }
運作結果如下
上述內容請關注PHP中文網(www.php.cn)! 🎜🎜

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

php與c#的差異有:1、語言型別系統不同,PHP屬於動態,而C#為靜態型別;2、使用的平台不同,PHP可實現跨平台,而C#為Windows專屬;3、程式設計範式不同,PHP支援物件導向、過程化和函數式編程,C#更傾向於物件導向編程;4、執行速度不同,PHP速度更快,C#相對較慢;5、應用場景不同,PHP應用於Web開發、伺服器等, C#用於Windows桌面和網路應用程式。

sizeof()所獲得的結構類型元素的大小並不總是等於每個單獨成員的大小。有時編譯器會添加一些填充以避免對齊問題。所以尺寸可能會改變。當結構成員後面跟著一個尺寸較大的成員或位於結構末端時,將添加填充。不同的編譯器有不同類型的對齊約束。在C標準中,總對齊結構取決於實作。情況1在這種情況下,雙精度z為8位元組長,大於x(4位元組))。因此又增加了4個位元組的填充。此外,短類型資料y在記憶體中具有2位元組空間,因此添加了額外的6位元組作為填充。範例程式碼#include<stdio.h>structmyS

Inthistutorial,wewillbediscussingaprogramtocreateaC/C++codeformattingtoolwiththehelpofclangtools.SETUPsudoaptinstallpythonsudoaptinstallclang-format-3.5然後我們將在當前用戶具有讀寫權限的位置創建一個Python檔案。範例importoscpp_extensions=(".cxx",".cpp&

這裡我們來看看什麼是C或C++中的前自增和後自增。前自增和後自增都是自增運算子。但它們幾乎沒有什麼區別。前自增運算子首先遞增一個變數的值,然後將其分配給其他變量,但在後自增運算子的情況下,它首先分配給一個變數變量,然後增加值。範例#include<iostream>usingnamespacestd;main(){ intx,y,z; x=10; y=10;&nb

VScode中怎麼開發置C/C++?怎麼配置C/C++環境?以下這篇文章跟大家分享一下VScode配置C/C++運行環境教學(保母級教學),希望對大家有幫助!

函數strcpy()是一個標準函式庫函數。它用於將一個字串複製到另一個字串。在C語言中,它在“string.h”頭檔中聲明,而在C++語言中,它在cstring頭檔中聲明。它會傳回指向目的地的指標。這是C語言中strcpy()的語法,char*strcpy(char*dest,constchar*src);strcpy()的一些關鍵點。它將整個字串複製到目標字串中。它替換整個字串而不是追加它。它不會改變來源字串。以下是C語言中strcpy()的範例:範例 線上示範#in

這裡我們將了解如何計算任意數字的階乘結果中尾隨0的數量。因此,如果n=5,則5! =120。只有一個尾隨0。對於20!,它將是4個零作為20!=2432902008176640000。最簡單的方法就是計算階乘併計算0。但對於較大的n值,這種方法會失敗。所以我們將採用另一種方法。如果質因數是2和5,那麼尾隨零就會出現。如果我們計算2和5,我們就可以得到結果。為此,我們將遵循此規則。尾隨0=階乘(n)素因數中5的計數演算法countTrailingZeros(n)begin &

在本文中,我們將討論C++STL中putwchar()函數的工作原理、語法和範例。什麼是putwchar()? putwchar()函數是C++STL中的內建函數,它在<cwchar>頭檔中定義。 putwchar()函數用於在標準輸出裝置上寫入寬字元。此函數從參數中獲取寬字元並將其寫入系統的stdout或標準輸出。函數是putchar()的寬字元版本,putchar()在<cstdio>頭檔中定義。語法putwchar(wchar_twidec);參數此函數接受以下參
