AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Anwendung starten oder wenn gestartet in den Vordergrund...
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung starten oder wenn gestartet in den Vordergrund...

Ein Thema von mschaefer · begonnen am 24. Jun 2004 · letzter Beitrag vom 24. Jun 2004
Antwort Antwort
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#1

Anwendung starten oder wenn gestartet in den Vordergrund...

  Alt 24. Jun 2004, 11:49
Moin, moin,

wie die Überschrift schon sagt will ich eine Anwendung aus meinem Programm starten.
Das mache ich mit ShellExecute.

Delphi-Quellcode:
      application.ProcessMessages;
         ShellExecute
         ( 0,'open', PChar(ExtractFilePath(application.ExeName)+ 'Programm.exe'  )
            ,PChar( '-run' ),'', SW_SHOWNORMAL
         );
wie man daran übrigens sieht steht das Programm, dass ich starten will, im selben Verzeichnis wie mein Steuerprogramm. Jetzt soll aber, wenn das Programm schon läuft einfach die alte Instantz in den Fordergrund gebracht werden. Gibt´s da Ideen.


Grüsse // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Anwendung starten oder wenn gestartet in den Vordergrund

  Alt 24. Jun 2004, 11:52
Such mal bei p.i.c.s. Page nach, da gibt's Ansätze.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Anwendung starten oder wenn gestartet in den Vordergrund

  Alt 24. Jun 2004, 12:04
Such dir mit MSDN-Library durchsuchenFimdWindow das Fenster und wenn du es findest hol es mit MSDN-Library durchsuchensetforegroundwindow in den Fordergrund, ansonsten starte es.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#4

Re: Anwendung starten oder wenn gestartet in den Vordergrund

  Alt 24. Jun 2004, 13:08
Moin, Lucky

Du hast die Trefferquote zielsicher erhöht, damit gibt es nun meine Lösung:


Delphi-Quellcode:

procedure Start ( ApplicationName : string);

var Wnd : HWND;

begin
  HWND := FindWindow
                         ( nil, PChar
                            ( copy
                               ( ApplicationName,1,abs
                                   ( length
                                     ( ApplicationName
                                     )-4
                                   )
                               )
                            )
                         );
   If WND <> 0
   then SetForegroundWindow( Wnd )
   else
   begin
     application.ProcessMessages;
     ShellExecute
      ( 0,'open', PChar
         (ExtractFilePath
            (application.ExeName
            ) + ApplicationName
         ) ,PChar
         ( '-run
         ),'', SW_SHOWNORMAL
     );
   end;
end;
ja DAX die P.I.C ´s Page hatte auch einiges, THX.

Tja damit steht erstmal Anleitung schreiben auf der ToDo-Liste
und ich habe erst mal Delphi-Pause . . .


Grüsse // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Anwendung starten oder wenn gestartet in den Vordergrund

  Alt 24. Jun 2004, 17:54
Zitat von mschaefer:
Delphi-Quellcode:

procedure Start ( ApplicationName : string);

var Wnd : HWND;

begin
  HWND := FindWindow
                         ( nil, PChar
                            ( copy
                               ( ApplicationName,1,abs
                                   ( length
                                     ( ApplicationName
                                     )-4
                                   )
                               )
                            )
                         );
   If WND <> 0
   then SetForegroundWindow( Wnd )
   else
   begin
     application.ProcessMessages;
     ShellExecute
      ( 0,'open', PChar
         (ExtractFilePath
            (application.ExeName
            ) + ApplicationName
         ) ,PChar
         ( '-run
         ),'', SW_SHOWNORMAL
     );
   end;
end;
Da das jetzt geklärt ist. Du kannst den Quellcode den du da gepostet hast lesen? Oder war das absicht, damit niemand so schnell deine Sourcen klaut?

Delphi-Quellcode:
procedure Start(ApplicationName: string);
var
  Wnd: HWND;
begin
  HWND := FindWindow(nil, PChar(copy(ApplicationName, 1,
    abs(length(ApplicationName) - 4))));
  if WND <> 0 then
    SetForegroundWindow(Wnd)
  else
  begin
    Application.ProcessMessages;
    ShellExecute(0, 'open', PChar(ExtractFilePath(Application.ExeName) +
      ApplicationName), PChar('-run'), '', SW_SHOWNORMAL);
  end;
end;
Also so finde ich es irgendwie "leserlicher".
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#6

Re: Anwendung starten oder wenn gestartet in den Vordergrund

  Alt 24. Jun 2004, 18:51
Hi Lucky

Ok, was die Formatierung angeht - ist Dein Spezialgebiet, lass man gut sein. Wenn Du mal ein Buch
herausgeben willst, sag bescheid, dann steuer ich ein Kapitel über Systemanalyse (DeMarco/Yourden)
bei. Also wie Du siehst habe ich den AutoFormater immernoch nicht zum Laufen gebracht. War einfach
keine Zeit...

Grüße aus dem sonnigen Hannover

// Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz