![]() |
Problem mit ShellExecute (Parameter)
Und zwar möchte ich ein Prog ausführen mit bestimmten Parametern.
In Memo1 steht eine längere Zahl (z.B. 321.323) In Edit2 und Edit3 eine normale Ganzzahl. ich weiss das ich auch integer nehmen kann aber egal ^^ Wenn ich jetzt auf Button3 Klicke öffnet sich das Programm, aber nur max eine Sek und schliesst sich dann wieder alleine.
Delphi-Quellcode:
Weiss jmd wo der Fehler liegt? o_O
procedure TForm1.Button3Click(Sender: TObject);
var ew, cb, fu : String; i : Integer; begin ew := Memo1.Lines.Text; cb := ' ' + Edit2.Text; fu := ' ' + Edit3.Text; for i := 0 to Memo1.Lines.Count -1 do ShellExecute(Handle, 'open', 'c:\fmas.exe', PChar(ew + cb + fu), nil, SW_SHOW); end; Thanx :) |
Re: Problem mit ShellExecute (Parameter)
Zitat:
|
Re: Problem mit ShellExecute (Parameter)
fmas ist ein konsolenprogramm, welches ich zb mit fmas 312.232 432 343 starte.
312.232 -> von Memo1.Lines 432 -> Edit2.Text 343 -> Edit3.Text Edit: Axo meinste cmd öffnen und in cmd das konsolenprogramm strarten? aber wie? |
Re: Problem mit ShellExecute (Parameter)
Genau das meine ich. Nur wie das genau geht, weiß ich auch nicht. Kann aber sein dass du über die Suche erfolgreich bist.
|
Re: Problem mit ShellExecute (Parameter)
einfach
Code:
so startet man das Programm in der Console (unter XP)
cmd /c fmas 312.232 432 343
|
Re: Problem mit ShellExecute (Parameter)
Also Cmd bekomm ich schon geöffnet via ShellExecute, nur weiss ich jedoch nicht wie ich die parameter fmas.exe + memo1.lines + edit2 + edit3 reinbekomme. Nach meinen erfolgslosen Versuche öffnet sich wenn ich es mit Parametern starten will nochnichteinmal CMD. ;(
|
Re: Problem mit ShellExecute (Parameter)
ich hab doch geschrieben wie... :?
du startest die cmd.exe mit dem parameter "/c" und danach schreibst du dann "fmas.exe" + die dazugehörigen Parameter... also
Delphi-Quellcode:
shellExecute(0, 'open', 'cmd.exe', PChar('/c fmas.exe ' + memo1.lines.Text + ' ' + edit2.text + ' ' + edit3.text, nil, sw_show);
|
Re: Problem mit ShellExecute (Parameter)
big thx an dich. hab es jetzt anders gelöst bekommen. und zwar habe ich von swiss delphi .. diesen source für eine shellexecute and wait procedure, womit es klappt.
Delphi-Quellcode:
procedure ShellExecute_AndWait(FileName: string; Params: string);
var exInfo: TShellExecuteInfo; Ph: DWORD; begin FillChar(exInfo, SizeOf(exInfo), 0); with exInfo do begin cbSize := SizeOf(exInfo); fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT; Wnd := GetActiveWindow(); ExInfo.lpVerb := 'open'; ExInfo.lpParameters := PChar(Params); lpFile := PChar(FileName); nShow := SW_SHOWNORMAL; end; if ShellExecuteEx(@exInfo) then Ph := exInfo.HProcess else begin ShowMessage(SysErrorMessage(GetLastError)); Exit; end; while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do Application.ProcessMessages; CloseHandle(Ph); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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-2025 by Thomas Breitkreuz