プロセスとプロセス ID をトラバースするための C/C++ 小さなツール
いくつかの破壊的なプログラムを作成するときは、プロセスを走査して ID を抽出する必要があります
上記の関数では、まずいくつかの API を導入します
1.CreateToolhelp32Snapshout 関数
プロセス、モジュール、またはスレッドを取得しますsnapshot
の構文は次のとおりです:
HANDLE WINAPI CreateToolhelp32Snapshot( _In_ DWORD dwFlags, _In_ DWORD th32ProcessID );
最初のパラメータ: スナップショットにはシステムの一部が含まれています。パラメータは次のとおりです:
ここではTH32CS_SNAPPROCESSを使用します
スナップショットにはすべてが含まれていますシステムプロセス内で。
2 つ目は PROCESSENTRY32 構造体に関するものです
構文は次のとおりです:
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] と
th32ParentProcessID のみを紹介します: これは、プロセス作成後のプロセスの ID (親プロセス) です
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; }
実行結果は次のとおりです
上記はC/C++トラバース用小ツールの内容ですプロセスとプロセス ID、その他の関連情報については、PHP 中国語 Web サイト (www.php.cn) の内容にご注意ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









php と c# の違いは次のとおりです: 1. 言語の型システムが異なります。PHP は動的型ですが、C# は静的型です。 2. 使用されるプラットフォームが異なります。PHP はクロスプラットフォームを実現できますが、C# は Windows 専用です。 3. . プログラミングのパラダイムが異なり、PHP はオブジェクト指向、手続き型、関数型プログラミングをサポートし、C# はオブジェクト指向プログラミングに傾いている; 4. 実行速度が異なり、PHP の方が高速で、C# は比較的遅い; 5.アプリケーションのシナリオは異なります。PHP は Web 開発、サーバーなどに使用されます。C# は Windows デスクトップおよび Web アプリケーションに使用されます。

sizeof() で取得される構造体型の要素のサイズは、個々のメンバーのサイズと必ずしも同じではありません。コンパイラは、アライメントの問題を回避するためにパディングを追加する場合があります。したがって、寸法が変更される可能性があります。パディングは、構造メンバーの後に大きいサイズのメンバーが続く場合、または構造の最後にある場合に追加されます。コンパイラが異なれば、アライメント制約のタイプも異なります。 C 標準では、全体的なアライメント構造は実装に依存します。ケース 1 この場合、double z の長さは 8 バイトであり、x (4 バイト) よりも大きくなります。したがって、さらに 4 バイトのパディングが追加されます。さらに、short 型データ y にはメモリ内に 2 バイトのスペースがあるため、余分な 6 バイトがパディングとして追加されます。サンプルコード #include<stdio.h>structmyS

このチュートリアルでは、helpofclangtools を使用して C/C++ コード形式設定ツールを作成するプログラムについて説明します。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++ 実行環境について詳しく説明した記事 [乳母レベルの指導]](https://img.php.cn/upload/article/000/000/024/63fc94eb8852a975.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
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() の例です。 Example Online Demo#in

ここでは、任意の数値の階乗結果の末尾のゼロの数を計算する方法を見ていきます。したがって、n=5 の場合は 5! =120。末尾の 0 は 1 つだけです。 20! の場合、20!=2432902008176640000 のように 4 つのゼロになります。最も簡単な方法は、階乗を計算して 0 をカウントすることです。ただし、n の値が大きい場合、このアプローチは失敗します。そこで、別のアプローチをとってみます。素因数が 2 と 5 の場合、末尾にゼロが表示されます。 2と5を計算すると結果が得られます。これを行うには、このルールに従います。 Trailing 0 = 階乗 (n) 素因数の 5 のカウント アルゴリズム countTrailingZeros(n)begin&

この記事では、C++STL の putwchar() 関数の動作原理、構文、例について説明します。 putwchar()とは何ですか? putwchar() 関数は C++STL の組み込み関数であり、<cwchar> ヘッダー ファイルで定義されます。 putwchar() 関数は、標準出力デバイスにワイド文字を書き込むために使用されます。この関数は引数からワイド文字を取得し、それをシステムの stdout または標準出力に書き込みます。この関数は putchar() のワイド文字バージョンであり、<cstdio> ヘッダー ファイルで定義されています。構文 putwchar(wchar_twidec); パラメータ この関数は次のパラメータを受け入れます。
