发信人: foxzz() 
整理人: foxzz(2004-07-23 16:52:25), 站内信件
 | 
 
 
请参考:
 
 *!**********************************************
 proc killtitle
 para p_wintitle
 
 
 #Define GW_HWNDNEXT    2
 
 && API函数申明
 Declare INTEGER GetActiveWindow  IN "user32"
 Declare INTEGER GetWindow        IN "user32" INTEGER hwnd, INTEGER wFlag
 Declare INTEGER GetWindowText    IN "user32" INTEGER hand, STRING @ctitle, INTEGER ntitle
 
 local m_hCurrent,m_return
 m_hCurrent   = GetActiveWindow()    && 从当前活动窗口开始
 Do WHILE hCurrent > 0
 	lcWinTitle = SPACE(255)
 	
     && 获得句柄后,用GetWindowText取得这个窗口的名称/应用程序的标题/进程名称
 	lnlength   = GetWindowText(m_hCurrent, @lcWinTitle, LEN(lcWinTitle))
 	
 	lcWinTitle = iif(lnlength>0, STRTRAN(TRIM(lcWinTitle),CHR(0),""), "")
 	If !empt(lcWinTitle) and p_wintitle $ lcWinTitle
 	   && 如果进程名称中含有p_wintitle,则杀死此进程
 	   m_return = killhwnd(m_hCurrent) 
 	Endif
 	
 	hCurrent   = GetWindow (m_hCurrent, GW_HWNDNEXT)  && 得到下一个窗口句柄
 Enddo
 
 return m_return
 
 
 *!****************************
 proc killhwnd
 para hwnd
 
 local m_return
 
 && api函数申明
 Declare Integer GetWindowThreadProcessId In user32 INTEGER   HWnd,INTEGER @ lpdwProcId
 Declare Integer OpenProcess In kernel32 INTEGER dwDesiredAccess, Integer bInheritHandle,INTEGER dwProcId
 DECLARE Integer TerminateProcess IN kernel32 As TerminateProcess  Integer hProcess ,Integer uExitCode
 DECLARE Integer CloseHandle IN kernel32 As CloseHandle Integer hProcess 
 
 
 && 得到句柄所在线程的线性标识符以及拥有此线程的进程标识符
 hWinThreadId = GetWindowThreadProcessId(hwnd, @hWinProcId)
 
 && 获得一个已经运行的进程的“进程句柄”
 hProcess = OpenProcess(1, 0, hWinProcId)
 
 && 调用函数TerminateProcess来强制终止一个进程
 m_return=TerminateProcess(hProcess, 0)
 
 && 销毁事件对象
 =CloseHandle(hProcess)
 
 return m_return
 
 
  ---- 天行健,君子以自强不息
   | 
 
 
 |