函數形式
BOOL EnumWindows(WNDENUMPROC lpEnumFunc
LPARAM lParam); //application
其中 WNDENUMPROC 是回調函數
EnumWindows
函數成功則返回非
函數失敗則返回
EnumWindowsProc 返回
另外
MSDN
The EnumWindows function does not enumerate child windows
使用舉例
先聲明一個EnumWindowsProc
BOOL CALLBACK EnumWindowsProc_
然後實現此函數
BOOL CALLBACK EnumWindowsProc_
{ char lpWinTitle[
::GetWindowText(hwnd
CString m_strTitle;
m_strTitle
if(m_strTitle
{ AfxMessageBox(
return TRUE ;
}
然後就可以在其他地方調用EnumWindows的時候使用回調函數
::EnumWindows(EnumWindowsProc_
這樣每當遇到IE窗口時
方法二
不用互斥對象
我們可以利用向系統添加全局原子的方法
Uses Windows
const iAtom=
begin
if GlobalFindAtom(iAtom)=
begin
GlobalAddAtom(iAtom);
Application
Application
Application
GlobalDeleteAtom(GlobalFindAtom(iAtom));
end
else
MessageBox(
end
利用全局原子的引用計數規則
var i:Integer;
begin
I:=
while GlobalFindAtom(iAtom)<>
begin
GlobalDeleteAtom(GlobalFindAtom(iAtom));
i:=i+
end;
ShowMessage(IntToStr(I));
end;
[
From:http://tw.wingwit.com/Article/program/Delphi/201311/24834.html