AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Erstanwendung nach Start der Zweitanwendung schließen
Thema durchsuchen
Ansicht
Themen-Optionen

Erstanwendung nach Start der Zweitanwendung schließen

Ein Thema von Avax2k · begonnen am 27. Okt 2005 · letzter Beitrag vom 27. Okt 2005
Antwort Antwort
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#1

Erstanwendung nach Start der Zweitanwendung schließen

  Alt 27. Okt 2005, 00:19
Ich möchte, dass meine Erstanwendung nach dem Aufruf der Zweitanwendung, sich automatisch schließt
den befehl zum Laden der zweitanwendung habe ich auf einen Button gelegt der wie folgt aussieht:

Zitat:
procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1.Text = Edit2.Text then
winexec(PCHar('WINVER.EXE'), SW_SHOWNORMAL)
else Label1.Caption := 'klappt nicht';
end;
habe folgendes versucht:
Zitat:
winexec(PChar('WINVER.EXE'), SW_SHWONORMAL) AND Form1.Close
else...
aber so wird der else Befehl gar nicht mehr akzeptiert.
Wäre super wenn jemand von Euch eine Lösung parat hätte gleich mit Quellcode.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Erstanwendung nach Start der Zweitanwendung schließen

  Alt 27. Okt 2005, 00:36
Also ein AND macht deinen Befehl ja nur zum Booleschen Ausruck (Wahr/Falsch).
Das macht ja nun gar keinen Sinn. Du mußt einfach die Befehle, die du im ersen Fall ausführen willst, in Begin..End setzen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Edit1.Text = Edit2.Text then
  Begin
    winexec(PCHar('WINVER.EXE'), SW_SHOWNORMAL) ;
    Form1.Close;
  End
  else Label1.Caption := 'klappt nicht';
end;
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Erstanwendung nach Start der Zweitanwendung schließen

  Alt 27. Okt 2005, 00:46
dankeschön für die schnelle und prompte Hilfe.
Manchmal übersieht man auch die einfachsten Dinge
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

Re: Erstanwendung nach Start der Zweitanwendung schließen

  Alt 27. Okt 2005, 02:09
Und das mit dem WinExec ...

schau mal bitte was deine OH dazu sagt ... verwende statt dessen doch bitte ShellExecute.


Außerdem bietet ShellExecute einen netten Rückgabewert, welchen man eventuell auch noch mit auswerten könnte

So in dieser Art:
Delphi-Quellcode:
if (Edit1.Text = Edit2.Text) and (ShellExecute(...) <> 0) then
  Form1.Close
else
  Label1.Caption := 'klappt nicht';
Genaueres findest du z.B. in der DP Hier im Forum suchenShellExecute
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Erstanwendung nach Start der Zweitanwendung schließen

  Alt 27. Okt 2005, 04:50
danke für die Info, habe auch ShellExecute umgestellt, jedoch auch gelesen, dass man nun bei EXE-Files den CreateProcess Befehl verwenden soll. Desweiteren hat ShellExecute einen großen Nachteil, wie ich festgestellt habe. Mit dem WinExec kann man die Dateiendung beliebig wählen und bei der Initialisierung erkennt das System automatisch was es für eine Datei ist und führt diese aus. Benennt man nun die Date nicht *.exe sondern *.old (oder wie auch immer) so führt der Aufruf durch ShellExecute nicht zum Aufruf der Datei..es passiert gar nichts. Somit scheint doch WinExec die bessere Wahl zu sein
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

Re: Erstanwendung nach Start der Zweitanwendung schließen

  Alt 27. Okt 2005, 04:59
Also, das Windows SDK meint dazu
Zitat von Win32 SDK:
This function is provided for compatibility with earlier versions of Windows. For Win32-based applications, use the CreateProcess function.

Win32-based applications should use the CreateProcess function rather than this function. The WinExec function exists in Win32 to provide compatibility with earlier versions of Windows. For more information about how the WinExec function is implemented, see the Remarks section of the LoadModule function.
Und bei ShellExecute steht allerdings nicht, daß man für Anwendungen CreateProcess verwenden soll ^^

CreateProcess lät nur Anwendungen und ShellExecute alle Dateien.

Im Endefekt bleibt es wohl dir überlassen was du verwendest ... nur halt kein WinExec mehr
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 06:38 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