Entwickler-Ecke
Windows API - Statt Doppelstart unterdruecken - Programm nach vorn holen
Maatin - Mo 17.06.02 18:46
Titel: Statt Doppelstart unterdruecken - Programm nach vorn holen
Moin,
den FAQ-Eintrag zum Doppelstart von Programmen habe ich bereits gelesen und ausprobiert - klappt soweit.
Nur was mache ich, wenn ich statt sang- und klanglos nichts zu tun, lieber eine Fehlermeldung ausgeben will oder noch besser: Das bereits aktive Programm in den Vordergrund holen moechte?
danke,
gruss, Maatin
DieHardMan - Mo 17.06.02 19:19
ja da machst du einfach
Quelltext
1: 2: 3: 4: 5:
| if GetLastError=ERROR_ALREADY_EXISTS then begin showmessage('Pech ghabt, läuft scho!'); Halt; end; |
dann wegen in den Vordergrund holen
Quelltext
1: 2: 3: 4: 5: 6:
| if GetLastError=ERROR_ALREADY_EXISTS then begin h := findwindowbytitle('fenstername deines programmes'); setforeground(h); Halt; end; |
die API setforeground wird glaub anders aufgerufen, musst nachschauen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| function FindWindowByTitle(WindowTitle: String): Hwnd; var NextHandle: HWND; NextTitle: array[0..255] of Char; begin NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST); while NextHandle > 0 do begin GetWindowText(NextHandle, NextTitle, 255); if pos(WindowTitle, StrPas(NextTitle)) <> 0 then begin Result := NextHandle; Exit; end else NextHandle := GetWindow(NextHandle, GW_HWNDNEXT); end; Result := 0; end; |
Maatin - Di 18.06.02 10:18
Moin,
danke, klappt super :)
SetForeGroundWindow(Hwnd); ist uebrigens der Aufruf ...
gruss, Maatin
Burgpflanze - Do 25.07.02 02:35
Noch besser so:
Quelltext
1: 2: 3:
| if IsIconic(Handle) then ShowWindow(Handle, SW_RESTORE) else SetForegroundWindow(Handle); |
Gruss
Burgpflanze
Delete - Do 25.07.02 08:35
Die Abfrage
Quelltext
1:
| if IsIconic(Handle) then |
kann man sich auch sparen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!