본문 바로가기
개발언어/C#.NET

메신져 다른 용무 중 구현하기

by 엔돌슨 2011. 6. 16.
반응형

메신져 다른 용무 중 구현하기


GetProcessesByName 함수를 이용하여 메신져의 process id가 같은 워드작업일 경우 다른용무중으로 표시를 해줍니다. 메신져 다른 용무중 구현을 위한 아주 간단한 프로그램입니다. 현재 선택된 상위의 윈도우의 process id을 받아 워드, 엑셀, 파워포인트 등의 프로세스 id와 동일한지 검사를 해주는 로직입니다. 간단한 프로그램이며 C# 소스를 첨부하였습니다.





다른용무중 구현 소스코드


다른용무중인지 확인하는 소스코드입니다. 원리는 현재 선택된 상위의 윈도우의 프로세스 id을 찾습니다 .찾은 id로 GetProcessesByName 함수를 이용하여 프로세스의 id와 일치하는지 검사합니다. 일치하는 워드프로세스, 엑셀, 메모장을 사용중일때는 다른 용무중으로 표시합니다.

 1         private static bool findProcess(string pname, uint lpdwProcessId)
 2         {
 3             bool bresult = false;
 4             try
 5             {
 6                 if (Process.GetProcessesByName(pname)[0].Id == lpdwProcessId)
 7                     bresult = true;
 8             }
 9             catch
10             {
11                 bresult = false;
12             }
13 
14             return bresult;
15         }
16 
17 
18         public static string GetTopWindowName()
19         {
20             IntPtr hWnd = GetForegroundWindow();
21             uint lpdwProcessId;
22             StringBuilder text = new StringBuilder(1000);
23             GetWindowThreadProcessId(hWnd, out lpdwProcessId);
24 
25 
26             if (findProcess("notepad", lpdwProcessId) ||     // 메모장
27                 findProcess("excel", lpdwProcessId) ||       // 엑셀
28                 findProcess("POWERPNT", lpdwProcessId) ||    // 파워포인트
29                 findProcess("wordpad", lpdwProcessId)        // 워드프로세스
30                 )
31             {
32                 text.Append("다른 용무 중");
33             }
34             
35             return text.ToString();
36         }

참고소스 : http://stackoverflow.com/questions/2635404/how-to-get-process-name-and-title-of-the-top-window-on-windows-c


프로세스 리스트 중 원하는 프로세스를 다른 용무중으로 설정합니다. 실행중인 프로세스를 중단점을 걸어 리스트를 뽑아보았습니다.

Process.GetProcesses()
{System.Diagnostics.Process[102]}
    [0]: {System.Diagnostics.Process (MonitoringHost)}
    [1]: {System.Diagnostics.Process (npkcmsvc)}
    [2]: {System.Diagnostics.Process (firefox)}
    [3]: {System.Diagnostics.Process (EXCEL)}
    [4]: {System.Diagnostics.Process (taskhost)}
    [5]: {System.Diagnostics.Process (inetinfo)}
    [6]: {System.Diagnostics.Process (msdtc)}
    [7]: {System.Diagnostics.Process (msvsmon)}
    [8]: {System.Diagnostics.Process (TSVNCache)}
    [9]: {System.Diagnostics.Process (plugin-container)}
    [10]: {System.Diagnostics.Process (npnj5Agent)}
    [11]: {System.Diagnostics.Process (svchost)}
    [12]: {System.Diagnostics.Process (vmms)}
    [13]: {System.Diagnostics.Process (OSPPSVC)}
    [14]: {System.Diagnostics.Process (sqlwriter)}
    [15]: {System.Diagnostics.Process (FlashUtil10s_ActiveX)}
    [16]: {System.Diagnostics.Process (nvvsvc)}
    [17]: {System.Diagnostics.Process (csrss)}
    [18]: {System.Diagnostics.Process (w3wp)}
    [19]: {System.Diagnostics.Process (sqlservr)}
    [20]: {System.Diagnostics.Process (WSSADMIN)}
    [21]: {System.Diagnostics.Process (iexplore)}
    [22]: {System.Diagnostics.Process (mstsc)}
    [23]: {System.Diagnostics.Process (lsm)}
    [24]: {System.Diagnostics.Process (svchost)}
    [25]: {System.Diagnostics.Process (svchost)}
    [26]: {System.Diagnostics.Process (notepad)}
    [27]: {System.Diagnostics.Process (POWERPNT)}
    [28]: {System.Diagnostics.Process (alg)}
    [29]: {System.Diagnostics.Process (lsass)}
    [30]: {System.Diagnostics.Process (sqlbrowser)}
    [31]: {System.Diagnostics.Process (iTunesHelper)}
    [32]: {System.Diagnostics.Process (services)}
    [33]: {System.Diagnostics.Process (MSOSYNC)}
    [34]: {System.Diagnostics.Process (mssearch)}
    [35]: {System.Diagnostics.Process (WindowsFormsApplication3.vshost)}
    [36]: {System.Diagnostics.Process (svchost)}
    [37]: {System.Diagnostics.Process (HealthService)}
    [38]: {System.Diagnostics.Process (iexplore)}
    [39]: {System.Diagnostics.Process (npstartersvc)}
    [40]: {System.Diagnostics.Process (TrustedInstaller)}
    [41]: {System.Diagnostics.Process (wsstracing)}
    [42]: {System.Diagnostics.Process (sqlservr)}
    [43]: {System.Diagnostics.Process (svchost)}
    [44]: {System.Diagnostics.Process (svchost)}
    [45]: {System.Diagnostics.Process (svchost)}
    [46]: {System.Diagnostics.Process (SMSvcHost)}
    [47]: {System.Diagnostics.Process (nvvsvc)}
    [48]: {System.Diagnostics.Process (svchost)}
    [49]: {System.Diagnostics.Process (devenv)}
    [50]: {System.Diagnostics.Process (svchost)}
    [51]: {System.Diagnostics.Process (WmiPrvSE)}
    [52]: {System.Diagnostics.Process (svchost)}
    [53]: {System.Diagnostics.Process (devenv)}
    [54]: {System.Diagnostics.Process (OWSTIMER)}
    [55]: {System.Diagnostics.Process (MonitoringHost)}
    [56]: {System.Diagnostics.Process (winlogon)}
    [57]: {System.Diagnostics.Process (FcsSas)}
    [58]: {System.Diagnostics.Process (mDNSResponder)}
    [59]: {System.Diagnostics.Process (NateOnMain)}
    [60]: {System.Diagnostics.Process (NvXDSync)}
    [61]: {System.Diagnostics.Process (WmiPrvSE)}
    [62]: {System.Diagnostics.Process (svchost)}
    [63]: {System.Diagnostics.Process (svchost)}
    [64]: {System.Diagnostics.Process (MSASCui)}
    [65]: {System.Diagnostics.Process (AppleMobileDeviceService)}
    [66]: {System.Diagnostics.Process (iPodService)}
    [67]: {System.Diagnostics.Process (svchost)}
    [68]: {System.Diagnostics.Process (taskmgr)}
    [69]: {System.Diagnostics.Process (svchost)}
    [70]: {System.Diagnostics.Process (WLIDSVC)}
    [71]: {System.Diagnostics.Process (mqsvc)}
    [72]: {System.Diagnostics.Process (svchost)}
    [73]: {System.Diagnostics.Process (w3wp)}
    [74]: {System.Diagnostics.Process (wininit)}
    [75]: {System.Diagnostics.Process (svchost)}
    [76]: {System.Diagnostics.Process (svchost)}
    [77]: {System.Diagnostics.Process (iexplore)}
    [78]: {System.Diagnostics.Process (MyPeople)}
    [79]: {System.Diagnostics.Process (SMSvcHost)}
    [80]: {System.Diagnostics.Process (dwm)}
    [81]: {System.Diagnostics.Process (svchost)}
    [82]: {System.Diagnostics.Process (explorer)}
    [83]: {System.Diagnostics.Process (svchost)}
    [84]: {System.Diagnostics.Process (MsMpEng)}
    [85]: {System.Diagnostics.Process (jusched)}
    [86]: {System.Diagnostics.Process (Messenger.vshost)}
    [87]: {System.Diagnostics.Process (smss)}
    [88]: {System.Diagnostics.Process (iexplore)}
    [89]: {System.Diagnostics.Process (WebAnalyticsService)}
    [90]: {System.Diagnostics.Process (spoolsv)}
    [91]: {System.Diagnostics.Process (explorer)}
    [92]: {System.Diagnostics.Process (WLIDSVCM)}
    [93]: {System.Diagnostics.Process (csrss)}
    [94]: {System.Diagnostics.Process (nvSCPAPISvr)}
    [95]: {System.Diagnostics.Process (IMEDICTUPDATE)}
    [96]: {System.Diagnostics.Process (aspnet_state)}
    [97]: {System.Diagnostics.Process (svchost)}
    [98]: {System.Diagnostics.Process (svchost)}
    [99]: {System.Diagnostics.Process (explorer)}
    < 자세히... (102 항목의 첫째 100이(가) 표시되었습니다.) >