Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Dos command (https://www.delphipraxis.net/167448-dos-command.html)

value is NULL 30. Mär 2012 09:22

AW: Dos command
 
Es geht mir nicht nur um DIR sondern um Alle Befehle, welche ich in einem CMD Prompt executen kann. (ipconfig, dir, copy, usw usw )

Der Sinn liegt darin, das ich ein kleines commandline Tool bastle, indem ich verschiedene Befehle ausführen kann. hier möchte ich eben noch
oben genannte DOS Befehle einbinden dh. Die Eingabe sieht dann ca so aus: execcmd <DOS-BEFEHL>.

DeddyH 30. Mär 2012 09:23

AW: Dos command
 
Bei mir funktioniert der Code. Hast Du denn nun endlich den Rückgabewert von ShellExecute ausgewertet? Was steht drin?

[edit] Oder was sagt diese Variante?
Delphi-Quellcode:
procedure ExecuteCommand(const command: string);
const
  ENV_VAR = '%COMSPEC%';
var
  comspec: string;
  ReturnValue: integer;
begin
  SetLength(comspec, ExpandEnvironmentStrings(ENV_VAR, nil, 0) + 1);
  ExpandEnvironmentStrings(ENV_VAR, PChar(comspec), Length(comspec));
  SetLength(comspec, StrLen(PChar(comspec)));
  if comspec <> '' then
    begin
      ReturnValue := ShellExecute(0, 'open', PChar(comspec),
        PChar('/k ' + command), nil, SW_SHOW);
      if ReturnValue < 33 then
        MessageBox(0, PChar(Format('Fehler bei ShellExecute: %d', [ReturnValue])
          ), nil, MB_OK or MB_ICONERROR);
    end
  else
    MessageBox(0, 'Kommandointerpreter konnte nicht ermittelt werden.', nil,
      MB_OK or MB_ICONERROR);
end;
[/edit]

value is NULL 30. Mär 2012 09:58

AW: Dos command
 
Das funktioniert echt gut! Aber wie krieg ich das in meine Consoleapp und nicht in das extra cmd Fenster ?

LG

DeddyH 30. Mär 2012 10:07

AW: Dos command
 
Dein Programm ist eine Konsolenanwendung? Dann wird das mit ShellExecute vermutlich nicht funktionieren. Wenn ich die Hilfe zu MSDN-Library durchsuchenCreateProcess richtig deute, könnte es damit evtl. klappen, ist aber aufwändiger. In dem Zusammenhang wäre dann der dwCreationFlags-Parameter der Funktion interessant.

himitsu 30. Mär 2012 10:13

AW: Dos command
 
Jupp, du mußt dann die Handle deines Consolenfensters an die anderen Anwendungen übergeben,
nicht daß die sich noch eine eigene Console aufmachen.

value is NULL 30. Mär 2012 10:15

AW: Dos command
 
Ich gebe zu ich hab keinen Plan :(

Coffeecoder 30. Mär 2012 10:23

AW: Dos command
 
Ich empfehle dir ein Tutorial zu Handles dann anzugucken:angel:

DeddyH 30. Mär 2012 10:25

AW: Dos command
 
http://www.textarchiv.alojado.de/tex...den-ap777.html Probier halt ein wenig mit den verschiedenen Möglichkeiten herum.

p80286 30. Mär 2012 10:28

AW: Dos command
 
Du möchtest eine Consolenanwendung erstellen, die ähnlich wie die CMD.EXE agiert, zusätzlich aber noch die Möglichkeit bietet, Abfragen an eine DB zu schicken.

Mir ist entfallen welche DB Du nutzt, aber ich möchte wetten, daß auch diese eine Möglichkeit bietet per Kommandozeile auf sie zuzugreifen.

Vielleicht wäre es einfacher für Dich, bereits vorhandene Tools zu nutzen, als das Rad noch einmal neu zu erfinden?

Gruß
K-H

Tonic1024 30. Mär 2012 10:40

AW: Dos command
 
Vielleicht ist das nen Blick wert: DOSCommand

Hab damit mal ein eigenes "Konsolenfenster" programmiert und ihm Extrafeatures verpasst. Geht ja fast in deine Richtung.

Gruß,

Toni


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 Uhr.
Seite 2 von 4     12 34      

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