AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Externes Programm starten, beenden, in den Vordergrund holen
Thema durchsuchen
Ansicht
Themen-Optionen

Externes Programm starten, beenden, in den Vordergrund holen

Ein Thema von NetSonic · begonnen am 17. Mär 2010 · letzter Beitrag vom 19. Mär 2010
 
NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#7

Re: Externes Programm starten, beenden, in den Vordergrund h

  Alt 19. Mär 2010, 07:43
Guten Morgen,

ich habe mich jetzt mal mit Deinen Vorschlägen auseinander gesetzt und folgendes probiert:

Delphi-Quellcode:
Type
  TEnumData = Record
    hW: HWND;
    pID: DWORD;
  End;

Function EnumProc( hw: HWND; Var data: TEnumData ): Bool; stdcall;
  Var
    pID: DWORD;
  Begin
    Result := True;
    If (GetWindowLong(hw, GWL_HWNDPARENT) = 0) and
       (IsWindowVisible( hw ) or IsIconic(hw)) and
       ((GetWindowLong(hw, GWL_EXSTYLE) and WS_EX_APPWINDOW) <> 0)
    Then Begin
      GetWindowThreadProcessID( hw, @pID );
      If pID = data.pID Then Begin
        data.hW := hW;
        Result := False;
      End; { If }
    End; { If }
  End; { EnumProc }

Function WindowFromProcessID( pID: DWORD ): HWND;
  Var
    data: TEnumData;
  Begin
    data.pID := pID;
    data.hW := 0;
    EnumWindows( @EnumProc, longint(@data) );
    Result := data.hW;
  End;
Jetzt will ich prüfen, ob das Fenster vorhanden ist:

Delphi-Quellcode:
if (WindowFromProcessID(cMod) <> 0) then
begin
     ShowWindow(WindowFromProcessID(cMod), SW_NORMAL);
     SetForegroundWindow(WindowFromProcessID(cMod));
end
else begin
     cMod := ExecAndWait(ExtractFilePath(Application.ExeName)+'\mod\newapp.exe', '', SW_SHOWNORMAL, False);
end;
Allerdings gibt mir die Funktion "WindowFromProcessID" immer 0 zurück. Mach ich da einen Denkfehler?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz