AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ausführen CMD

Ein Thema von BullsEye · begonnen am 27. Mai 2008 · letzter Beitrag vom 27. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#1

Ausführen CMD

  Alt 27. Mai 2008, 00:27
Hallo,

ich bearbeite mit einem Memofeld einen Inhalt (beliebig) und dann will ich nen Button haben, der "ausführen" heißt.
Sprich der Inhalt der Memo wird als *.bat gespeichert, festgelegter Name, und das will ich dann starten, da wollte ich euch nun fragen, welches die eleganteste Methode ist.

Nen BSP hab ich, allerdings ob das das beste ist, weiß ich nicht

Delphi-Quellcode:
procedure TForm1.btnAUSFUHRENClick(Sender: TObject);
begin
Memo1.Lines.SaveToFile('BE.bat');
if ShellExecute(Application.Handle, 'open', PChar('C:\Dokumente und Einstellungen\Admin\Desktop\BE.bat'),
nil, nil, SW_NORMAL) <= 32 then begin
MessageDlg('FEHLER -> Datei nicht gefunden!', mtError, [mbOK], 0);
End;
end;
[edit=SirThornberry]von .NET auf Win32 geändert - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#2

Re: Ausführen CMD

  Alt 27. Mai 2008, 07:58
Moin, Moin,
hast du das Beispiel denn schon getestet? Funktioniert es? Was mir spontan auffällt, du übergibst SaveToFile() nur Name+Extend, ShellExecute() bekommt den vollen Dateipfad. Das würde ich nicht unterschiedlich handhaben, sondern in beiden Fällen die vollständige Pfadangabe übergeben.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

Re: Ausführen CMD

  Alt 27. Mai 2008, 08:35
Zitat:
Delphi-Quellcode:
if ShellExecute(Application.Handle, 'open', PChar('C:\Dokumente und Einstellungen\Admin\Desktop\BE.bat'),
nil, nil, SW_NORMAL) <= 32 then begin
MessageDlg('FEHLER -> Datei nicht gefunden!', mtError, [mbOK], 0);
Woher willst Du wissen, dass die Datei nicht gefunden wurde? Das ist nur bei Fehlercode 3 (oder war es 2?) der Fall. Ich würde an Deiner Stelle SysErrorMessage verwenden, da weißt Du dann, was schiefgelaufen ist
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#4

Re: Ausführen CMD

  Alt 27. Mai 2008, 08:53
Moin, Moin,

nicht übel DeddyH! Hier mal die möglichen ErrorCodes von ShellExecute():

Delphi-Quellcode:
case Result of
  $00 : s:='Zuwenig Speicher, Datei zerstört oder ungültige Relokationswerte';
  $02 : s:='Programm/Datei nicht gefunden';
  $03 : s:='Verzeichnis nicht gefunden';
  $05 : s:='Fehler beim Netzwerkzugriff';
  $06 : s:='Bibliothek fordert separate Datensegmente für jede Task an';
  $08 : s:='Zu wenig Speicher';
  $10 : s:='Falsche Windows-Version';
  $11 : s:='Ungültige ausführbare Datei';
  $12 : s:='Anwendung für anderes Betriebssystem';
  $13 : s:='Anwendung für MS-DOS 4.0';
  $14 : s:='Typ der ausführbaren Datei unbekannt';
  $15 : s:='Kann Real-Mode-Anwendung nicht ausführen';
  $16 : s:='Kann keine zweite Instanz laden';
  $19 : s:='Kann keine komprimierte Datei ausführen';
  $1F : s:='Datei ist mit keinem Anwendungsprogramm verknüpft';
  $20 : s:='Ungültige DLL';
   else s:='// no error
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Ausführen CMD

  Alt 27. Mai 2008, 08:54
Zitat von DeddyH:
Ich würde an Deiner Stelle SysErrorMessage verwenden, da weißt Du dann, was schiefgelaufen ist
Ich bin nicht sicher, ob das bei Shellexecute funktioniert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

Re: Ausführen CMD

  Alt 27. Mai 2008, 09:00
Bei mir hat es bislang funktioniert (zumindest bei den häufigsten Fehlerursachen).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#7

Re: Ausführen CMD

  Alt 27. Mai 2008, 09:20
ja, gut.

werd ich ändern, allerdings löst dies nicht mein "problem"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: Ausführen CMD

  Alt 27. Mai 2008, 09:26
Eine Batch-Datei ist ja an sich nicht ausführbar, sondern wird durch den Kommandozeileninterpreter (comspec) abgearbeitet. Also würde ich an Deiner Stelle diesen starten und die Batch als Parameter übergeben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#9

Re: Ausführen CMD

  Alt 27. Mai 2008, 09:36
Zitat von DeddyH:
Eine Batch-Datei ist ja an sich nicht ausführbar, sondern wird durch den Kommandozeileninterpreter (comspec) abgearbeitet. Also würde ich an Deiner Stelle diesen starten und die Batch als Parameter übergeben.
Aber ob das so sinnvoll ist?
Ich sehe da nur einen Umweg, wenn ich erst CMD starte und dann die Batch lade!
Oder bringt mir das irgendeinen Vorteil?
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#10

Re: Ausführen CMD

  Alt 27. Mai 2008, 09:41
Moin, Moin,
ich glaub, wir drehen uns im Kreis. Willst du die Batchdatei STARTEN (also Ausführne) oder LADEN? Wenn du sie AUSFÜHREN willst, dann geht das nur über den beschriebenen Weg.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:41 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