2

ここで解決策を見つけました:http://blogs.msdn.com/b/oldnewthing/archive/2007/10/08/5351207.aspx


実行中のアプリケーションのリストにアクセスしようとしています。いくつかのフォーラムでこのソリューションを見つけました。

Process[] processes = Process.GetProcesses();
foreach (var proc in processes)
{
     if (!string.IsNullOrEmpty(proc.MainWindowTitle))
        Console.WriteLine(proc.MainWindowTitle);
}

ただし、これは、Alt-Tabを押したときと同じリストを表示しません。例:firefox、explorer、iexploreはすべて空/nullのMainWindowTitleを返します。このリストにアクセスする別の方法はありますか?たぶんwindowsAPIを介して?

私はWindows732ビットを使用しています

よろしくお願いします。

4

2 に答える 2

0

これを試してください(ここから取得)が、問題が解決するかどうかはわかりません:

static void Main(string[] args)
{
    GetProcesses();
    GetApplications();
    Console.Read();
}
public static void GetProcesses()
{
    StringBuilder sb = new StringBuilder();
    ManagementClass MgmtClass = new ManagementClass("Win32_Process");

    foreach (ManagementObject mo in MgmtClass.GetInstances())           
        Console.WriteLine("Name:" + mo["Name"] + "ID:" + mo["ProcessId"]);               

    Console.WriteLine();
}

public static void GetApplications()
{
    StringBuilder sb = new StringBuilder();
    foreach (Process p in Process.GetProcesses("."))
        try
        {
            if (p.MainWindowTitle.Length > 0)
            {
                Console.WriteLine("Window Title:" + p.MainWindowTitle.ToString());
                Console.WriteLine("Process Name:" + p.ProcessName.ToString());
                Console.WriteLine("Window Handle:" + p.MainWindowHandle.ToString());
                Console.WriteLine("Memory Allocation:" + p.PrivateMemorySize64.ToString());                     
            }
        }
        catch { }
}
于 2011-11-29T13:23:44.957 に答える
0

Windows には隠しプロセスはありません。表示する (セキュリティ) 権限を持っていないプロセスのみ。

以下をご覧ください。

C# を使用して完全なプロセス リストを取得する

于 2011-11-29T13:21:26.683 に答える