Maßeinheit Unit1;
Schnittstelle
Gebrauch
Windows, Mitteilungen, SysUtils, Varianten, Kategorien, Grafiken, Kontrollen, Formen,
Dialoge, StdCtrls, ShellAPI, TlHelp32;
Art
TForm1 = Kategorie (TForm)
Button1: TButton;
Verfahren Button1Click (Absender: TObject);
privat
{Private Erklärungen}
Öffentlichkeit
{Allgemeine Erklärungen}
Ende;
var
Form1: TForm1;
Implementierung
{$R *.dfm}
Art
TEnumData = Aufzeichnung
hW: HWND;
pID: DWORD;
Ende;
Funktion EnumProc (hw: HWND; var-Daten: TEnumData): Bool; stdcall;
var
pID: DWORD;
anfangen
Resultat: = ausrichten;
wenn (GetWindowLong (hw, GWL_HWNDPARENT) = 0) und
(IsWindowVisible (hw) oder IsIconic (hw)) dann
anfangen
GetWindowThreadProcessID (hw, @pID);
Wenn pID = data.pID dann
anfangen
data.hW: = hW;
Resultat: = falsch;
Ende; {Wenn}
Ende; {Wenn}
Ende; {EnumProc}
Funktion WindowFromProcessID (pID: DWORD): HWND;
var
Daten: TEnumData;
anfangen
data.pID: = pID;
data.hW: = 0;
EnumWindows (@EnumProc, longint (@data));
Resultat: = data.hW;
Ende; {WindowFromProcessID}
Funktion WindowFromAppname32 (appname: Schnur): HWND;
{Nehmen nur der Anwendungsdateiname, nicht voller Weg!
Notwendigkeit, die Verlängerung außerdem zu führen. }
var
Schnappschuß: Quergriff;
processEntry: TProcessEntry32;
anfangen
Resultat: = 0;
appName: = Versalien (appname);
Schnappschuß: = CreateToolhelp32Snapshot (
TH32CS_SNAPPROCESS,
0);
wenn Schnappschuß <> 0 dann
Versuch
processEntry.dwSize: = Sizeof (processEntry);
wenn Process32First (Schnappschuß, processEntry) dann
Wiederholung
wenn AnsiCompareText (
appname,
ExtractFilename (StrPas (processEntry.szExeFile))
) = 0
dann
anfangen
Resultat: = WindowFromProcessID (processEntry.th32ProcessID);
Bruch;
Ende; {Wenn}
bis nicht Process32Next (Schnappschuß, processEntry);
schließlich
CloseHandle (Schnappschuß);
Ende; {Versuch}
Ende; {WindowFromAppname32}
Verfahren TForm1.Button1Click (Absender: TObject);
var
x: Quergriff;
anfangen
ShellExecute (0, „öffnen sich“, „c:\WINDOWS\notepad.exe“, '', '', SW_SHOW);
x: = WindowFromAppname32 („NotePad.exe ");
ShowMessage (IntToStr (x));
Ende;
Ende.
|