Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VCL & Batch-Befehl (https://www.delphipraxis.net/123830-vcl-batch-befehl.html)

1753 9. Nov 2008 22:45


VCL & Batch-Befehl
 
Hallo zusammen!


Ich versuche im Moment aus einer VCL Anwendung einen Batch Befehl auszuführen.
Delphi 2009 mit Update1

ShellExecute funktioniert irgendwie nicht und auch WinExec verwigert mir den Dienst.
Bei WinExec bekomme ich wenigstens den Fehler 1049 (Datenbank nicht gefunden - läuft aber bei mir).

Delphi-Quellcode:
interface
  {$APPTYPE CONSOLE}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(0, 'open', PChar('C:\Windows\System32\cmd.exe'),
              'mysqldump -uuser -ppasswort --databases mysql > /mysql.sql',
              nil, SW_SHOWNORMAL);

  //WinExec('mysqldump -uuser -ppasswort --opt --databases .ysql > /mysql.sql',sw_SHOW);
end;
Hab auch schon im Forum gesucht, aber nichts hat so richtig gepasst oder gefunzt.

Für jede Hilfe bin ich sehr dankbar!


MfG

Michael Habbe 9. Nov 2008 22:56

Re: VCL & Batch-Befehl
 
Hallo und Willkommen!

Du muss Deinem ShellExecute auch das Verzeichnis übergeben, wo es ausgeführt werden soll.

Delphi-Quellcode:
  shellexecute(handle,            // Handle des aufrufenden Fensters
               'open',            // open oder print
               PChar(cmd),        // Name der Anwendung
               pChar(Params),     // Programmparameter
               pChar(Pfad),       // Verzeichnis
               SW_SHOWNORMAL);    // Anzeigeoption

mfg
Michael

1753 10. Nov 2008 20:50

Re: VCL & Batch-Befehl
 
Danke, aber es hat leider nicht geklappt.

Kannst du mir vielleicht etwas über "winexec" erzählen?

jfheins 10. Nov 2008 21:19

Re: VCL & Batch-Befehl
 
Zitat:

Zitat von 1753
Kannst du mir vielleicht etwas über "winexec" erzählen?

Ja, es sit veraltet. Es gibt aber jede Mende Beispiele zu Shellexecute - und eine Fehlermeldung hiulft enorm beim beseitigen von Problemen ;)

Fussball-Robby 10. Nov 2008 21:45

Re: VCL & Batch-Befehl
 
Gibts nen Fehler oder passiert einfach garnichts? Wenn die cmd.exe nichts macht, könnte es helfen, vor den Befehl ein /K zu sezten:
Zitat:

Zitat von 1753
Delphi-Quellcode:
interface
  {$APPTYPE CONSOLE}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(0, 'open', PChar('C:\Windows\System32\cmd.exe'),
              '/K mysqldump -uuser -ppasswort --databases mysql > /mysql.sql',
              nil, SW_SHOWNORMAL);
end;


1753 12. Nov 2008 20:08

Re: VCL & Batch-Befehl
 
Danke für eure schnelle Hilfe.
Ein Kollege auf Arbeit hat mir gezeigt wie er das immer gelöst hatte.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(0, 'open', PChar('cmd.exe'),
              '/C mysqldump -uuser -ppasswort --databases mysql > /mysql.sql',
              nil, SW_SHOWNORMAL);
end;
Mit /K hab ichs jetzt nicht nochmal versucht.


Habt nochmals vielen Dank!!!

:dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 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