![]() |
Ausführen CMD
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:
[edit=SirThornberry]von .NET auf Win32 geändert - Mfg, SirThornberry[/edit]
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; |
Re: Ausführen CMD
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. |
Re: Ausführen CMD
Zitat:
|
Re: Ausführen CMD
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 |
Re: Ausführen CMD
Zitat:
|
Re: Ausführen CMD
Bei mir hat es bislang funktioniert (zumindest bei den häufigsten Fehlerursachen).
|
Re: Ausführen CMD
ja, gut.
werd ich ändern, allerdings löst dies nicht mein "problem" |
Re: Ausführen CMD
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.
|
Re: Ausführen CMD
Zitat:
Ich sehe da nur einen Umweg, wenn ich erst CMD starte und dann die Batch lade! Oder bringt mir das irgendeinen Vorteil? |
Re: Ausführen CMD
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 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 by Thomas Breitkreuz