| ²é¿´: 1751 | »Ø¸´: 2 | ||
| ±¾Ìû²úÉú 1 ¸ö ³ÌÐòÇ¿Ìû £¬µã»÷ÕâÀï½øÐв鿴 | ||
NkxzÌú¸Ëľ³æ (ÖøÃûдÊÖ)
|
[ÇóÖú]
»ñÈ¡windowsÈÎÎñ¹ÜÀíÆ÷ÈÎÎñÃû
|
|
|
ÎÒÏë»ñȡϵͳµ±Ç°½ø³ÌÃû³ÆÁÐ±í£¬±ÈÈ統ǰϵͳÓÐ20¸ö½ø³Ì£¬ÎÒÏë°Ñÿ¸ö½ø³ÌµÄÃû³ÆÊä ³öÀ´£¬ÒòΪѧµÄÊÇmatlab£¬Ïë×öÕâÑùµÄÊÂÇéȷʵ±È½ÏÄÑ£¬²»ÖªµÀÓÐûÓиßÊÖÄÜÓÃÆäËûÓï ÑÔ±àÒ»¸öÕâÑùµÄ³ÌÐò£¬²¢ÇÒÉú³ÉdllÎļþ£¬ÕâÑùÎÒ¿ÉÒÔµ÷ÓᣠÎÒÔÚÍøÉÏÕÒµ½Á˺ܶà³ÌÐò¶¼¿ÉÒÔ×öÕâÑùµÄÊÂÇ飬µ«ÊDz»ÖªµÀÔõô±àÒ룬Çó¸ßÊÖÖú Õ󣡣¡£¡£¬Èç¹ûÓÐÈË¿ÉÒÔ×öÕâÑùµÄÊ£¬»òÕß¿ÉÒÔ°ïæ°ÑÏÂÃæµÄ³ÌÐò±àÒë³ÉdllÎļþ£¬Çë°Ñ ½á¹û·¢µ½ÎÒµÄÓÊÏänkchem09@126.com using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; namespace tasklist { class Program { static void Main(string[] args) { //´´½¨Ð嵀 Process ×é¼þµÄÊý×é Process[] myProcesses = Process.GetProcesses(); Console.WriteLine("ÒÔÏ»ñµÃµÄΪÕýÔÚÔËÐеĽø³Ì" ;Console.WriteLine ("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" ;foreach (Process myProcess in myProcesses) { Console.WriteLine(myProcess.ProcessName); } int taskcount = myProcesses.Length; Console.WriteLine ("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" ;Console.WriteLine("¹²Óнø³ÌÊý:"+taskcount.ToString()); Console.ReadLine(); } } } [ Last edited by Nkxz on 2011-12-7 at 11:20 ] |
» ²ÂÄãϲ»¶
²ÄÁϵ÷¼Á
ÒѾÓÐ6È˻ظ´
»¯¹¤Çóµ÷¼Á
ÒѾÓÐ7È˻ظ´
321Çóµ÷¼Á
ÒѾÓÐ10È˻ظ´
²ÄÁÏר˶322·Ö
ÒѾÓÐ13È˻ظ´
²ÄÁÏ295
ÒѾÓÐ3È˻ظ´
11408 359·Ö Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
320·Ö£¬²ÄÁÏÓ뻯¹¤×¨Òµ£¬Çóµ÷¼Á
ÒѾÓÐ24È˻ظ´
286Çóµ÷¼Á
ÒѾÓÐ7È˻ظ´
»¯Ñ§µ÷¼Á
ÒѾÓÐ10È˻ظ´
357Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:
´ó¼ÒÌÖÂÛÒ»ÏÂÔÚÃûУ¸ú²»³öÃûµÄµ¼Ê¦¶Á²©ÓÐÒâÒåÂð£¿
ÒѾÓÐ21È˻ظ´
tyhjqxbz
Ö÷¹ÜÇø³¤ (ÎÄ̳¾«Ó¢)
- ³ÌÐòÇ¿Ìû: 1
- Ó¦Öú: 220 (´óѧÉú)
- ¹ó±ö: 31.322
- ½ð±Ò: 140759
- É¢½ð: 60553
- ºì»¨: 887
- ɳ·¢: 1020
- Ìû×Ó: 32994
- ÔÚÏß: 3441.8Сʱ
- ³æºÅ: 782124
- ×¢²á: 2009-05-29
- רҵ: ÄÜÔ´»¯¹¤
- ¹ÜϽ: ×¢²áÖ´¿¼Çø
¡¾´ð°¸¡¿Ó¦Öú»ØÌû
¡ï ¡ï
ben_ladeng(½ð±Ò+2): »¶Ó³£À´ 2011-12-07 22:35:50
Nkxz(½ð±Ò+10): лл 2011-12-08 08:27:29
ÓàÔó³É(³ÌÐòÇ¿Ìû+1): 2011-12-08 14:08:57
ben_ladeng(½ð±Ò+2): »¶Ó³£À´ 2011-12-07 22:35:50
Nkxz(½ð±Ò+10): лл 2011-12-08 08:27:29
ÓàÔó³É(³ÌÐòÇ¿Ìû+1): 2011-12-08 14:08:57
|
ÏÂÔØÔ´´úÂë ÔÚ±àд¹¤¾ß³ÌÐòÒÔ¼°ÏµÍ³¹ÜÀí³ÌÐòµÄʱºò¡£³£³£ÐèÒª»ñȡij¸ö½ø³ÌµÄÖ÷´°¿ÚÒÔ¼°´´½¨´Ë½ø³ÌµÄ³ÌÐòÃû¡£»ñÈ¡Ö÷´°¿ÚµÄÄ¿µÄÊÇÏò´°¿Ú·¢Ë͸÷ÖÖÏûÏ¢¡£»ñÈ¡Æô¶¯½ø³ÌµÄ³ÌÐòÃû¿ÉÒÔ¿ØÖƶԽø³ÌµÄ²Ù×÷¡£µ«ÊÇÓÐЩ½ø³ÌÍùÍùÓжà¸öÖ÷´°¿Ú¡£ÄãÒªµÄÊÇÄÄÒ»¸öÖ÷´°¿ÚÄØ£¿Èç¹ûÄãÓùýOutlook³ÌÐò£¬Äã¾Í»á·¢ÏÖËüÓжà¸öÖ÷´°¿Ú£¬Ò»¸ö´°¿ÚÁгöÊÕ¼þÏäºÍÆäËüÎļþ¼Ð¡£Èç¹ûÄã´ò¿ªe-mail£¬±ã»áÓÐÁíÍâÒ»¸ö´°¿ÚÏÔʾÐÅÏ¢¡£ËüÃǶ¼ÊÇûÓи¸´°¿Ú£¨»òÕß˵ËÞÖ÷´°¿Ú£©µÄÖ÷´°¿Ú¡£ÔËÐÐÒ»ÏÂSpy³ÌÐò£¬ÄãÉõÖÁ»á·¢ÏÖËüÃǵĴ°¿ÚÀàÃû¶¼Ïàͬ£ºrctrl_renwnd32¡£×ÊÔ´¹ÜÀíÆ÷£¨Explorer.exe£©Ò²Óв»Ö¹Ò»¸öÖ÷´°¿Ú¡£ÈçͼһËùʾ£¬×ÊÔ´¹ÜÀíÆ÷ÓÐÁ½¸öÖ÷´°¿Ú¡£Ò»°ãÀ´½²£¬ÏëÒª»ñÈ¡Ö÷´°¿Ú£¬Æ¾´°¿ÚµÄʽÑù»òÀàÃû£¬ÄãûÓÐʲô°ì·¨ÖªµÀÄÄÒ»¸ö´°¿ÚÊÇÕæÕýÒâÒåÉϵÄÖ÷´°¿Ú¡£ Ê×ÏÈÎÒÃÇÌÖÂÛÈçºÎ´Ó¶à¸ö´°¿ÚÖлñÈ¡Ö÷´°¿Ú£¿ÆäʵºÜÈÝÒס£ÀûÓÃÁ½¸öAPIº¯Êý±ã¿ÉÒÔʵÏÖ¡£ÕâÁ½¸öAPIÊÇ EnumWindows ºÍ GetWindowThreadProcessId¡£Èç¹ûÄã¶ÔÕâÁ½¸öº¯Êý²»ÊìϤ£¬²»ÒªÅ£¬±¾ÎÄÌṩÁËÒ»¸öC++ÀàÀ´¶ÔÕâÁ½¸öAPI½øÐзâ×°¡£Õâ¸öÀà½Ð CMainWindowIterator£¬ÓÃËü¿ÉÒÔö¾Ùij¸ö½ø³Ì£¨ÒÑÖª½ø³ÌID£©µÄËùÓÐÖ÷´°¿Ú¡£ÕâÕýÊÇÎÒÃÇÏëÒªµÄ¶«Î÷¡£ÆäʹÓ÷½·¨ÈçÏ£º DWORD pid = // ÒÑ֪ij¸ö½ø³ÌµÄID CMainWindowIterator itw(pid); for (HWND hwnd = itw.First(); hwnd; hwnd=itw.Next()) { // do something } ¾ÍÕâô¼òµ¥£¬CMainWindowIteratorÅÉÉúÓÚÒ»¸ö¸üͨÓõÄÀࣺCWindowIterator£¬CWindowIterator¸ºÔð½«::EnumWindowsº¯Êý´ò°üÒÔÒþ²Ø»Øµ÷ϸ½Ú¡£ËüÓÐÒ»¸öÐéÄ⺯ÊýOnWindow£¬Äã¿ÉÒÔÔÚÅÉÉúÀàÖÐÖØÐ´Õâ¸öº¯Êý£¬´Ó¶ø¿ÉÒÔÓÃÈκη½Ê½À´Ã¶¾Ù´°¿Ú¡£CMainWindowIterator¾ÍÊÇÖØÐ´ÁËOnWindowº¯Êý£¬ÈÃËüÖ»»ñÈ¡ÊôÓÚij¸ö¸ø¶¨½ø³ÌµÄÖ÷´°¿Ú£º // (ÔÚ¹¹Ô캯ÊýÖÐÉèÖÃm_pid) BOOL CMainWindowIterator::OnWindow(HWND hwnd) { if ((GetWindowLong(hwnd,GWL_STYLE) & WS_VISIBLE)) { DWORD pidwin; GetWindowThreadProcessId(hwnd, &pidwin); if (pidwin==m_pid) return TRUE; } return FALSE; } ÕâÁ½¸öÀàµÄ¶¨ÒåÈçÏ£º(¶ÔÓ¦µÄÎļþÊÇ EnumProc.h ºÍ EnumProc.cpp) ////////////////////////////////////////////////////// // Õâ¸öÀàÖ÷ÒªÊÇ·â×°::EnumWindows,Áоٶ¥²ã´°¿Ú // class CWindowIterator { protected: HWND* m_hwnds; // Á¥ÊôÓÚij¸ö½ø³ÌPID´°¿Ú¾ä±úÊý×é DWORD m_nAlloc; // Êý×é´óС DWORD m_count; // ÕÒµ½µÄ´°¿Ú¾ä±úÊý DWORD m_current; // µ±Ç°µÄ´°¿Ú¾ä±ú static BOOL CALLBACK EnumProc(HWND hwnd, LPARAM lp); // ÐéÄâö¾Ùº¯Êý virtual BOOL OnEnumProc(HWND hwnd); // ÔÚÅÉÉúÖиÄд´Ëº¯ÊýÀ´¹ýÂ˲»Í¬ÖÖÀàµÄ´°¿Ú virtual BOOL OnWindow(HWND hwnd) { return TRUE; } public: CWindowIterator(DWORD nAlloc=1024); ~CWindowIterator(); DWORD GetCount() { return m_count; } HWND First(); HWND Next() { return m_hwnds && m_current }; //////////////////////////////////// // ÁоÙij¸ö½ø³ÌµÄ¶¥²ã´°¿Ú // class CMainWindowIterator : public CWindowIterator { protected: DWORD m_pid; // ½ø³ÌID virtual BOOL OnWindow(HWND hwnd); public: CMainWindowIterator(DWORD pid, DWORD nAlloc=1024); ~CMainWindowIterator(); }; ͼһÊÇÓÃÉÏÊöC++Àà±àдµÄÒ»¸ö¿ØÖÆÌ¨³ÌÐòlp.exeµÄÊä³ö»Ãæ¡£×îºóÁ½À¸·Ö±ðÊǶÔÓ¦½ø³ÌµÄ¡°´°¿Ú¾ä±ú¡±ºÍ¡°ÀàÃû/´°¿Ú±êÌ⡱¡£ÆäÃüÁîÐпª¹Ø¡°/ct¡±±íʾÁгö´°¿ÚÀàÃû£¨c£©ºÍ´°¿Ú±êÌ⣨t£©¡£ ͼһ Ò»°ãÀ´½²£¬Èç¹ûÁ¥ÊôÓÚij¸ö½ø³ÌµÄ´°¿ÚûÓпɼûµÄ¸¸´°¿Ú£¬ÄÇôÕâ¸ö´°¿Ú¾Í¿ÉÒÔÈÏΪÊǴ˽ø³ÌµÄÖ÷´°¿Ú¡£¶ÔWS_VISIBLEµÄ¼ì²éºÜÖØÒª£¬ÒòΪÓÐЩӦÓô´½¨¶à¸ö²»¿É¼ûµÄ¶¥²ã´°¿Ú¡£¹ØÓÚCMainWindowIteratorÀàµÄʹÓÃϸ½ÚÇë²Î¼û±¾ÎĵÄÀý×ÓÔ´´úÂë¡£ ½ÓÏÂÀ´ÎÒÃÇÀ´ÌÖÂÛÈçºÎ»ñÈ¡´´½¨½ø³ÌµÄ³ÌÐòÎļþÃû¡£ÓÐÈËÓø÷ÖÖ·½·¨³¢ÊÔ¹ý£¬±ÈÈ磺GetModuleFileName£¬GetModuleInstance ºÍ GetModuleHandle£¬ºÃÏñ¶¼²»ÐС£ÎªÊ²Ã´ÄØ£¿Æäʵ£¬·½·¨ÊÇû´í£¬µ«µ÷ÓÃÕâЩº¯ÊýµÃµ½µÄÖ»Êǵ±Ç°ÕýÔÚÔËÐеÄÕâ¸ö½ø³ÌÒѾ¼ÓÔØµÄÄ£¿éÃû£¨modules£©£¬²»ÄÜÓÃÓÚ»ñÈ¡ÆäËü½ø³ÌËù¼ÓÔØµÄÄ£¿é¡£Òò´Ë£¬±ØÐëÏë±ðµÄ°ì·¨£¬Ê×ÏÈÒª¿¼ÂÇÁ½ÖÖÇé¿ö£¬Ò»ÖÖÊÇÈç¹ûÄãдµÄ³ÌÐòÔÚWindows NT£¬Windows 2000£¬Windows XP»·¾³ÔËÐУ¬Ôò¿ÉÒÔʹÓÃPSAPI£¬ÕâÊÇÒ»¸öWindows²Ù×÷ϵͳÖбȽÏеÄDLL£¬ÀûÓÃÆäÖÐÊä³öµÄAPIº¯Êý¿ÉÒÔ»ñÈ¡½ø³ÌºÍÄ£¿éµÄÏêϸÐÅÏ¢¡£ÁíÒ»ÖÖÊÇÈç¹ûÄãдµÄ³ÌÐòÔÚWindows 9x»òÕßWindows MeÖÐÔËÐУ¬Ôò±ØÐë½èÖúÓÚToolHelp£¬ÏÞÓÚ±¾Îĵįª·ù£¬ÎÒÔÚÕâÀï²»½éÉÜÈçºÎʹÓÃToolHelp£¬Èç¹ûÄã¸ÐÐËȤµÄ»°¿ÉÒԲο¼£¬MSDNµÄ¼¼ÊõÖ§³ÖÎÄÕÂQ175030£¬ÌâĿΪ¡°ÈçºÎÔÚWin32ÖÐö¾ÙÓ¦ÓóÌÐò¡±¡£ PSAPIÖÐÓÐÒ»¸öº¯ÊýÊÇGetModuleFileNameEx¡£Ëüͨ¹ýij¸ö½ø³ÌºÍÄ£¿é¾ä±ú×÷Ϊ²ÎÊýÀ´»ñµÃÄ£¿éÃû¡£ÄÇô¶ÔÓÚij¸ö½ø³ÌÀ´Ëµ£¬ÄãÔõô֪µÀÄĸöÄ£¿éÊÇÆô¶¯½ø³ÌµÄÖ´ÐÐÎļþÄØÄØ£¿PSAPIÖеÄÁíÒ»¸öº¯ÊýEnumProcessModules½«Ä³¸ö½ø³ÌÖÐËùÓÐÄ£¿éµÄÄ£¿é¾ä±úÌî³äµ½Ò»¸öÊý×éÖС£Õâ¸öÊý×éµÄµÚÒ»¸öÔªËØ±ãÊÇÖ÷Ä£¿éµÄ¾ä±ú£¬ËùÒÔÄãÓÃÏÂÃæµÄ´úÂëÀ´µÃµ½µÚÒ»¸öHMODULE£º DWORD count; HMODULE hm[1]; EnumProcessModules(hProcess, hm, 1, &count); È»ºóµ÷ÓÃGetModuleFileNameEx¡£ ʵ¼ÊÉÏ´ÓÇ°ÃæµÄͼһÖпÉÒÔ¿´µ½£¬ÔÚlp.exe³ÌÐòÖÐÎÒÃÇÒѾʵÏÖÁËÂÞÁнø³Ì¼°Æä¶ÔÓ¦µÄÄ£¿éÃû¡£³ÌÐòµÄʵÏÖϸ½ÚÖл¹Óõ½ÁËPSAPIÊä³öµÄAPIº¯ÊýEnumProcessesÀ´Ã¶¾ÙËùÓÐÔËÐнø³Ì£¬ÎªÁ˶ԾßÌåµÄϸ½Ú½øÐзâ×°£¬ÎÒÈç·¨ÅÚÖÆ±àдÁËÓëCWindowIterator ºÍCMainWindowIteratorÀàËÆµÄÁ½¸öC++ÀࣺCProcessIterator ºÍ CProcessModuleIterator £¬ËüÃÇ·Ö±ð¶ÔEnumProcesses ºÍEnumProcessModules APIº¯Êý½øÐÐÁË·â×°¡£ÓÐÁËÕâÁ½¸ö´ò°üÀ࣬һÇж¼±äµÃÈç´Ë¼òµ¥¡£ CProcessIterator itp; for (DWORD pid=itp.First(); pid; pid=itp.Next()) { // ´¦Àíÿһ¸ö½ø³Ì } ÏÂÃæÊÇ»ñÈ¡´´½¨½ø³ÌµÄEXEÎļþÃûµÄ·½·¨£º CProcessModuleIterator itm(pid); HMODULE hModule = itm.First(); // .EXE TCHAR modname[_MAX_PATH]; GetModuleBaseName(itm.GetProcessHandle(), hModule, modname, _MAX_PATH); ÒòΪlpÏÔʾ³öÀ´µÄ²¢²»ÊÇÒ»¸öº¬È«Â·¾¶µÄÄ£¿éÎļþÃû£¬ËùÒÔÎÒÓÃÁíÍâÒ»¸öPSAPIº¯ÊýGetModuleBaseNameÀ´´úÌæGetModuleFileNameEx´Ó¶ø»ñȡȫ·¾¶Ãû¡£´ËÍ⣬ÓÉÓÚCProcessModuleIterator×Ô¼º»á´ò¿ª½ø³Ìö¾ÙÄ£¿é£¬ËùÒÔ²»±Øµ÷ÓÃOpenProcess¡£ÓÃCProcessModuleIterator::GetProcessHandle¿ÉÒԵõ½ÒÑ´ò¿ª½ø³ÌµÄ¾ä±ú¡£lp³ÌÐò»¹ÓÃCMainWindowIteratorÀ´ÏÔʾÿ¸öÌØ¶¨½ø³ÌµÄËùÓÐÖ÷´°¿Ú¡£ÏÂÃæÊÇCProcessIterator ºÍ CProcessModuleIteratorµÄ¶¨Ò壺 //////////////////////////////////////////////////////////////////////////////////////// // ½ø³ÌÁоÙÀà -- ÁоٳöϵͳÖеÄËùÓнø³Ì,µ«×ÜÊÇÌø¹ýµÚÒ»¸öPID=0µÄ½ø³Ì,¼´¿ÕÏнø³Ì(IDLE) // class CProcessIterator { protected: DWORD* m_pids; // °üº¬½ø³ÌIDsµÄÊý׿ DWORD m_count; // Êý×é´óС DWORD m_current; // µ±Ç°Êý×éÏî public: CProcessIterator(); ~CProcessIterator(); DWORD GetCount() { return m_count; } DWORD First(); DWORD Next() { return m_pids && m_current }; ///////////////////////////////////////////////////////////////// // ÁоÙij¸ö½ø³ÌµÄÄ£¿é£¬µÚÒ»¸öÄ£¿é¾ÍÊÇ´´½¨´Ë½ø³ÌµÄÖ÷exe³ÌÐò // class CProcessModuleIterator { protected: HANDLE m_hProcess; // ½ø³Ì¾ä±ú HMODULE* m_hModules; // Ä£¿é¾ä±úÊý×é DWORD m_count; // Êý×é´óС DWORD m_current; // µ±Ç°Ä£¿éµÄ¾ä±ú public: CProcessModuleIterator(DWORD pid); ~CProcessModuleIterator(); HANDLE GetProcessHandle() { return m_hProcess; } DWORD GetCount() { return m_count; } HMODULE First(); HMODULE Next() { return m_hProcess && m_current < m_count ? m_hModules[m_current++] : 0; } }; |

2Â¥2011-12-07 22:20:25
tyhjqxbz
Ö÷¹ÜÇø³¤ (ÎÄ̳¾«Ó¢)
- ³ÌÐòÇ¿Ìû: 1
- Ó¦Öú: 220 (´óѧÉú)
- ¹ó±ö: 31.322
- ½ð±Ò: 140759
- É¢½ð: 60553
- ºì»¨: 887
- ɳ·¢: 1020
- Ìû×Ó: 32994
- ÔÚÏß: 3441.8Сʱ
- ³æºÅ: 782124
- ×¢²á: 2009-05-29
- רҵ: ÄÜÔ´»¯¹¤
- ¹ÜϽ: ×¢²áÖ´¿¼Çø
¡¾´ð°¸¡¿Ó¦Öú»ØÌû
¡ï ¡ï
jjdg(½ð±Ò+2): ÐÁ¿àÁË 2011-12-08 00:21:22
Nkxz(½ð±Ò+10): ллÁË 2011-12-08 08:28:48
jjdg(½ð±Ò+2): ÐÁ¿àÁË 2011-12-08 00:21:22
Nkxz(½ð±Ò+10): ллÁË 2011-12-08 08:28:48
|
µ±Ç°ÔËÐеijÌÐòÁÐ±í£º Option Explicit Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String * 1024 End Type Private Declare Function Process32First Lib "kernel32 " (ByVal HSnapshot As Long, lppe As PROCESSENTRY32) As Long Private Declare Function Process32Next Lib "kernel32 " (ByVal HSnapshot As Long, lppe As PROCESSENTRY32) As Long Private Declare Function CreateToolhelp32Snapshot Lib "kernel32 " (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long Private Declare Function CloseHandle Lib "kernel32 " (ByVal hObject As Long) As Long Const TH32CS_SNAPPROCESS = &H2 Private Sub Form_Load() Dim Pro As PROCESSENTRY32 Dim HSnapshot As Long List1.Clear HSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) If HSnapshot Then Pro.dwSize = Len(Pro) If (Process32First(HSnapshot, Pro)) Then Do List1.AddItem Pro.szExeFile List1.ItemData(List1.NewIndex) = Pro.th32ProcessID Loop Until (Process32Next(HSnapshot, Pro) < 1) End If CloseHandle (HSnapshot) End If End Sub |

3Â¥2011-12-07 22:20:39














;
»Ø¸´´ËÂ¥