2011-04-22 4 views
0

내 컴퓨터에서 실행되는 모든 응용 프로그램을 인쇄 할 수있는 방법이 있습니까? 그 중 하나를 처리하고 버튼을 찾아서 클릭하고 싶습니다. 특정 창에서 클릭 버튼을 시뮬레이션하고 싶습니다. 먼저 실행중인 모든 응용 프로그램을 인쇄하고 해당 응용 프로그램을 처리하고 싶습니다. 누군가 코드를 제공 할 수 있습니까?C# 모든 데스크톱 응용 프로그램을 처리하고 버튼 클릭을 시뮬레이션하십시오.

답변

1
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(); 
} 
+0

이제 프로세스 및 응용 프로그램 목록이 생겼으므로 파일에 쓸 수 있고 인쇄 할 수 있습니다. – TechGiant

+0

하위 창을 특정 창에서 찾을 수있는 방법은 무엇입니까? – daniel

+0

http://pinvoke.net/default.aspx/user32/EnumChildWindows.html Enumchildwindows를 사용하면 특정 창의 자식 창의 처리기를 알 수 있습니다 ..... – TechGiant

관련 문제