AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit ShellExecute (Parameter)

Ein Thema von dR4g0N · begonnen am 11. Mai 2004 · letzter Beitrag vom 11. Mai 2004
Antwort Antwort
dR4g0N
(Gast)

n/a Beiträge
 
#1

Problem mit ShellExecute (Parameter)

  Alt 11. Mai 2004, 00:17
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:
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;
Weiss jmd wo der Fehler liegt? o_O

Thanx
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit ShellExecute (Parameter)

  Alt 11. Mai 2004, 00:20
Zitat von dR4g0N:
Weiss jmd wo der Fehler liegt? o_O
Die Parameter sind falsch? Oder es ist ein Konsolen Programm, dann musst du vorher eine Konsole öfnnen, sonst geht es nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
dR4g0N
(Gast)

n/a Beiträge
 
#3

Re: Problem mit ShellExecute (Parameter)

  Alt 11. Mai 2004, 00:26
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?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Problem mit ShellExecute (Parameter)

  Alt 11. Mai 2004, 00:36
Genau das meine ich. Nur wie das genau geht, weiß ich auch nicht. Kann aber sein dass du über die Suche erfolgreich bist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Problem mit ShellExecute (Parameter)

  Alt 11. Mai 2004, 07:53
einfach
Code:
cmd /c fmas 312.232 432 343
so startet man das Programm in der Console (unter XP)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
dR4g0N
(Gast)

n/a Beiträge
 
#6

Re: Problem mit ShellExecute (Parameter)

  Alt 11. Mai 2004, 08:20
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. ;(
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Problem mit ShellExecute (Parameter)

  Alt 11. Mai 2004, 09:14
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
  shellExecute(0, 'open', 'cmd.exe', PChar('/c fmas.exe ' + memo1.lines.Text + ' ' + edit2.text + ' ' + edit3.text, nil, sw_show);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
dR4g0N
(Gast)

n/a Beiträge
 
#8

Re: Problem mit ShellExecute (Parameter)

  Alt 11. Mai 2004, 09:32
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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:43 Uhr.
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