Toon posts:

[delphi] shellexecute dos commando uitvoeren

Pagina: 1
Acties:

Verwijderd

Topicstarter
hallo allen,

ik probeer vanuit delphi een dos commando uit te voeren. Hiervoor heb ik de volgende code geschreven. c2 is een string met het dos commando.

ShellExecute(Application.Handle, 'open', 'cmd.exe', pchar(c2), nil, SW_SHOW);

Dit commando lijkt echter niet te werken. De dosbox opent wel, maar voert het commando niet uit. Ik heb op google gezocht, maar ik vindt alleen dergelijke sourcodes als ik heb geschreven. iemand enig idee?

Verwijderd

En als je nu eens vanuit je applicatie dynamisch een batchfile aanmaakt, en die uitvoert met shellexecute ?

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 22:48

Cyphax

Moderator LNX
Je kan CMD aanroepen met wat parameters.
/K bijvoorbeeld om een commando uit te voeren.
Als ik CMD zo run:
code:
1
cmd /K edit
krijg ik edit.com
Misschien werkt het als je 'm aanroept met

code:
1
ShellExecute(Application.Handle, 'open', 'cmd.exe /K ' + pchar(c2),nil, nil, SW_SHOW);

oid (daar gaat de layout, excuseer).
Ik weet ook niet zeker of het werkt met paden e.d.
Dus dat zou je even uit moeten proberen.

[edit]

Okee ik heb even getest, het is uiteindelijk vrij simpel.
Als ik dir wil uitvoeren met m'n dosbox en hij moet blijven staan op het scherm (daar is die /K voor):
code:
1
  ShellExecute(Application.Handle, 'open', 'cmd.exe', '/K dir', nil, SW_SHOW);

Nou aan jou de taak dat 'dir' te vervangen door + pchar(c2) en dan komt het goed.
Wanneer je de parameter /K vervangt door /C kan je ook een commando uitvoeren en blijft de dosbox niet daarna op het scherm. :)

[ Voor 67% gewijzigd door Cyphax op 22-04-2004 11:26 ]

Saved by the buoyancy of citrus