Det er nu ikke så nemt at få de 100 point, når du nu har lukket spørgsmålet.... :)
Anyway: I det ret nye spørgsmål
http://www.eksperten.dk/spm/28322 skrev jeg lidt (meget lidt) om kaldet til SetWindowPos.
Med hensyn til at finde et handle til et andet kørende program, så er der flere muligheder ligefra at køre en enum funktion på samtlige aktive processer, hvilket er p*sse svært, til noget så simpelt som et kald til API funktionen FindWindow.
Nedenstående er en ændring af noget jeg engang brugte til at finde en aktiv Paradox og bringe den frem i Z-order (dvs. vise Paradox winduet på skærmen).
FindWindow kan kaldes med to parametre. Hvis man kender windows titlen, dvs det der står i \'den blå titel linie\', er det langt det nemmeste at bruge WindowsName parameteren. Det gør jeg i dette eksempel for at finde et handle til Outlook.
Const
// LauncApplicationClassName = \'PDOXWINDESKTOP\';
LauncApplicationWindowName = \'Inbox - Microsoft Outlook\';
Var
WindowHandle : HWnd;
// ClassName : Array[0..50] Of Char;
WindowName : Array[0..50] Of Char;
Begin
// Convert navn til en PChar.
// StrPCopy(ClassNam, LauncApplicationClassName);
StrPCopy(WindowName, LauncApplicationWindowName);
// Kald Windows API for at finde en handle til programmet (0=Error/Not found).
// WindowHandle := FindWindow(ClassNam, Nil);
WindowHandle := FindWindow(Nil, WindowName);
If WindowHandle=0 Then
ShowMessage(\'Programmet er ikke startet.\')
Else
Begin
// Kald SetWindowPos mv.
End;
End.