0
有沒有辦法打印我的電腦上運行的所有應用程序?我想後處理其中的一個,並找到按鈕,並點擊它。我想模擬特定窗口上的點擊按鈕。首先,我想打印所有正在運行的應用程序,並對它們進行處理。可以有人給我一些代碼嗎?c#處理所有桌面應用程序並模擬按鈕點擊
有沒有辦法打印我的電腦上運行的所有應用程序?我想後處理其中的一個,並找到按鈕,並點擊它。我想模擬特定窗口上的點擊按鈕。首先,我想打印所有正在運行的應用程序,並對它們進行處理。可以有人給我一些代碼嗎?c#處理所有桌面應用程序並模擬按鈕點擊
Use System.Management;
//Return all processes
public static string ListAllProcesses()
{
StringBuilder sbAllProcess = new StringBuilder();
// list out all processes and write them into a stringbuilder
ManagementClass MgmtClass = new ManagementClass("Win32_Process");
foreach (ManagementObject mobject in MgmtClass.GetInstances())
{
sbAllProcess .Append("Name:\t" + mobject ["Name"] + Environment.NewLine);
sbAllProcess .Append("ID:\t" + mobject ["ProcessId"] + Environment.NewLine);
sbAllProcess .Append(Environment.NewLine);
}
return sbAllProcess .ToString();
}
//Return all applications
public static string ListAllApplications()
{
StringBuilder sbAllApplication = new StringBuilder();
foreach (Process runningProcess in Process.GetProcesses("."))
{
try
{
if (runningProcess .MainWindowTitle.Length > 0)
{
sbAllApplication .Append("Window Title:\t" + runningProcess .MainWindowTitle.ToString()+ Environment.NewLine);
sbAllApplication .Append("Process Name:\t" + runningProcess .ProcessName.ToString() + Environment.NewLine);
sbAllApplication .Append("Window Handle:\t" + runningProcess .MainWindowHandle.ToString() + Environment.NewLine);
sbAllApplication .Append("Memory Allocation:\t" + runningProcess .PrivateMemorySize64.ToString() + Environment.NewLine);
sbAllApplication .Append(Environment.NewLine);
}
}
catch { }
}
return sbAllApplication .ToString();
}
現在你有流程和應用程序的列表,你可以寫到一個文件中,並打印出來。 – TechGiant 2011-04-22 08:48:35
我如何才能找到特定窗口的子窗口? – daniel 2011-04-22 08:52:03
使用http://pinvoke.net/default.aspx/user32/EnumChildWindows.html Enumchildwindows你會得到特定窗口的子窗口的處理程序..... – TechGiant 2011-04-22 09:08:20