| MicroChip | 06.05.2004 - 04:18:33 |
| Merhaba aşağıdaki kod ile o anda çalışan uygulamaların listesini alınabilir
ve DDE de onlara birşey yaptırmak istenirse O uygulamanın başlığı da yetecektir... Bunun için forma bir listbox ve bir buton koymak yeterli... function EnumWindowsProch(Wnd : HWnd;Form : TForm1) : Boolean; Export; {$ifdef Win32} StdCall; {$endif} var Buffer : Array[0..99] of char; begin GetWindowText(Wnd,Buffer,100); if StrLen(Buffer) <> 0 then form1.listbox1.items.Add(StrPas(Buffer)); Result := True; end; function EnumWindowsProc (Wnd: HWND; LParam: LPARAM): BOOL; stdcall; Var Title : PChar; begin Result := True; if (IsWindowVisible(Wnd) or IsIconic(wnd)) and ((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or (GetWindowLong(Wnd, GWL_HWNDPARENT) = GetDesktopWindow)) and (GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW = 0) then begin Title:=StrAlloc(255); GetWindowText(Wnd,Title,255); form1.listbox1.items.add(StrPas(Title)); //ShowMessage(StrPas(Title)); StrDispose(Title); end; end; procedure TForm1.Button1Click(Sender: TObject); begin listbox1.items.clear; EnumWindows(@EnumWindowsProc,0); end; Saygılar... | |