Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Verknüpfung für mehrer Programme (https://www.delphipraxis.net/83996-verknuepfung-fuer-mehrer-programme.html)

debjörn 9. Jan 2007 20:24


Verknüpfung für mehrer Programme
 
hi
also ich wollte ein programm schreiben, welches mehrer andere programme für mich startet. also wie eine verknüpfung. mit der sufu hab ich was gefunden und es noch ein bisschen für beispielprogramme geändert
Delphi-Quellcode:
begin
     ShellExecute(2, nil, 'C:\Programme\Internet Explorer\IEXPLORE.EXE',
     nil, nil, SW_SHOW);
     ShellExecute(2, nil, 'C:\Programme\Windows Media Player\wmplayer.exe',
     nil, nil, SW_SHOW);
     close;
end;
so jetzt meine fragen
1. wieso schließt er die form nach dem starten des programms nicht?
2. gibts auch ne möglichkeit, dass er die form erst gar nicht erstellt?
3. (unwichtig)wofür ist das nil?

mfg und thx

MrKnogge 9. Jan 2007 20:29

Re: Verknüpfung für mehrer Programme
 
Geh in deine IDE mal auf Projekt -> Quelltextanzeigen, dort kannst du das erstellen deiner Form verhindern.

cruiser 9. Jan 2007 20:35

Re: Verknüpfung für mehrer Programme
 
1.) Meine Glaskugel, sagt mir, dass du das im Form.OnCreate oder Form.OnShow machst, da geht es aus Prinzip nicht, was noch nicht fertig existiert kann nicht geclosed werden.

2.) Gibt es: Erstell eine Konsolenanwendung und entferne das {$APPTYPE CONSOLE}

zu 3.) etwas aus der SDK-Hilfe
Code:
HINSTANCE ShellExecute(
  HWND hwnd,           // handle to parent window
  LPCTSTR lpOperation, // pointer to string that specifies operation to perform
  LPCTSTR lpFile,      // pointer to filename or folder name string
  LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
  LPCTSTR lpDirectory, // pointer to string that specifies default directory
  INT nShowCmd         // whether file is shown when opened
);

debjörn 9. Jan 2007 20:48

Re: Verknüpfung für mehrer Programme
 
Zitat:

Zitat von cruiser
1.) Meine Glaskugel, sagt mir, dass du das im Form.OnCreate oder Form.OnShow machst, da geht es aus Prinzip nicht, was noch nicht fertig existiert kann nicht geclosed werden.

deine glaskugel hat recht :wink: . hört sich auch recht logisch an, was du sagst thx

ich hab MrKnogges tipp mal verfolgt und jetzt siehts so aus und es klappt
Delphi-Quellcode:
begin
  //Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  //Application.Run;
end.
danke an euch beide

MrKnogge 9. Jan 2007 20:52

Re: Verknüpfung für mehrer Programme
 
:shock: so habe ich das aber nicht gemeint, du musst die Form rausschmeisen, nicht die Application.

faux 9. Jan 2007 20:55

Re: Verknüpfung für mehrer Programme
 
Zitat:

Zitat von debjörn
also ich wollte ein programm schreiben, welches mehrer andere programme für mich startet.

Wäre das nicht einfach durch Batchfiles lösbar?

dominikkv 9. Jan 2007 20:58

Re: Verknüpfung für mehrer Programme
 
wie wärs mit sowas:
Delphi-Quellcode:
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  application.ShowMainForm := false;
  Application.Run;
dann wird die form zwar erstellt, aber nicht angezeigt

debjörn 9. Jan 2007 20:59

Re: Verknüpfung für mehrer Programme
 
Zitat:

Zitat von MrKnogge
:shock: so habe ich das aber nicht gemeint, du musst die Form rausschmeisen, nicht die Application.

meinst du ich soll das rausnehmen?:
Application.CreateForm(TForm1, Form1); ???
weil dann funktioniert es nicht mehr

Zitat:

Zitat von faux
Zitat:

Zitat von debjörn
also ich wollte ein programm schreiben, welches mehrer andere programme für mich startet.

Wäre das nicht einfach durch Batchfiles lösbar?

da kenne ich mich leider auch nicht aus

MrKnogge 9. Jan 2007 21:05

Re: Verknüpfung für mehrer Programme
 
Klar, dass es dann so nicht mehr funktioniert, da dein OnCreate ja nicht mehr auftritt.
Den von dir oben geposteten Code, musst du dann statt Application.CreateForm(TForm1, Form1); schreiben.

Ja Batchfiles wären wesentlich einfacher ...

debjörn 9. Jan 2007 21:08

Re: Verknüpfung für mehrer Programme
 
Zitat:

Zitat von MrKnogge
Klar, dass es dann so nicht mehr funktioniert, da dein OnCreate ja nicht mehr auftritt.
Den von dir oben geposteten Code, musst du dann statt Application.CreateForm(TForm1, Form1); schreiben.
[...]

ich weiß nicht welchen, aber ist auch egal. es klappt ja so, wie ichs gemacht habe :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:09 Uhr.
Seite 1 von 2  1 2      

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