1

たとえば、Visual Studio 2008 で作業している場合、devenv と 2008 または 9 の値が必要です。

バージョン番号は非常に重要です...

4

3 に答える 3

8

これはPInvoke市になります...

User32.dllで次のAPIをPInvokeする必要があります

Win32 :: GetForegroundWindow()は、現在アクティブなウィンドウのHWNDを返します。

/// <summary>
/// The GetForegroundWindow function returns a handle to the foreground window.
/// </summary>
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();

Win32 :: GetWindowThreadProcessId(HWND、LPDWORD)は、指定されたHWNDのPIDを返します

[DllImport("user32.dll", SetLastError=true)]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);

C#では

Process.GetProcessByID()は、PIDを使用してC#プロセスオブジェクトを作成します

processInstance.MainModuleは、FileVersionInfoがアタッチされたProcessModuleを返します。

于 2008-09-22T22:20:32.063 に答える
0

このプロジェクトは、必要な2つの関数EnumWindowsGetWindowtextを示しています

于 2008-09-22T22:18:24.753 に答える
0

あなたの質問を明確にできますか?アクティブなウィンドウのプログラムに関するデータを表示するプログラムを実行する必要があるということですか?または、プログラムに独自のバージョンを報告させたいですか?

どちらの方法でも情報を取得するために探しているのは、System.Reflection.Assemblyです。(リンクのコード例を参照してください。)

外部プログラムからアセンブリを取得するにはどうすればよいですか?それについてはよくわかりません...

于 2008-09-22T22:19:59.803 に答える