Entwickler-Ecke

Dateizugriff - Schellexecute mit parameterübergabe ?


Andysaw - Di 26.11.02 11:09
Titel: Schellexecute mit parameterübergabe ?
Hi,

ich muss Euch wieder mit einer Frage nerven. Ich möchte ein Proggi unter Delphi starten , dass einen Dateinamen in der Doseingabeebene verlangt(Mit Bestätigung). Man kann das vielleicht auch mit ner *.bat erledigen aber ehrlich gesagt sind meine Dos - Zeiten zu lange her....

Wenn mir da mal einer helfen könnte?

MfG
Andy


JeanvanHees - Di 26.11.02 12:13

:wink2: ,Tag!
Haßt du mal gesucht nach shellexecute mit die such-function von AUQ?
Es haben hier schon mehrere postings gegeben die einige gute proceduren enthalten.
Ich glaub ich hab hier auch mal so eine procedur gepostet.


Andysaw - Di 26.11.02 13:22
Titel: noch immer nichts..
habe forum nach shellexecute durchsucht aber nichts helfendes gefunden
oder ich komm damit nich klar.
hier ist mein SE :
ShellExecute(0, nil, PChar('C:\Programm\Programm.exe'),nil,nil,SW_SHOW);
wörtlich abgeschrieben...
das programm(dosebene) erwartet dann eine eingabe (zb "SAW")
und dan halt ne bestätigung wie in dos halt.
ich hab sowas früher mal mit *.bat geregelt glaub ich aber
keine Ahnung mehr.
ich weiss nich wie ich das "SAW" und das "Enter" mit übergeben soll...
Ich bitte um Hilfe ...
MfG
Andy


Delete - Di 26.11.02 13:26

Parameter übergeben ist kein Problem. Das Problem ist dann Eingaben in dem Konsolenprogramm zu machen. Das geht meines Wissens nur mit Pipes.


Andysaw - Di 26.11.02 13:33

naja das ist ja kein richtiger parameter
sondern ich sage dem programm damit welche quelldatei es
für seine berechnungen nutzen soll..
zb. SAW.dat
programm.exe -> welche dat ? -> saw.dat -> enter ->weiter gehts
das is eher eine eingabe denke ich ?
Ich brauch umbedingt hilfe(aber wie für einen anfänger
geschrieben)
MfG
Andy


Delete - Di 26.11.02 13:35

Ich sagte doch die Eingabe mußt du über Pipes regeln. Nur, ich habe so was auch noch nie gemacht. Google doch einfach mal.


bis11 - Di 26.11.02 13:45

Hastes schon mal so probiert ?


Quelltext
1:
ShellExecute(0, nil, PChar('C:\Programm\Programm.exe'),PChar('SAW'),nil,SW_SHOW);                    


Andysaw - Di 26.11.02 13:51

danke , aber so gehts leider nicht...
er übernimmt das "saw" nicht ...
MfG
Andy


JeanvanHees - Di 26.11.02 14:23

Ich weiß nicht ob du hier schon mal an gedacht haßt:

Wenn du über dos ein programm willst öffnen, gebrauchst du (nehm ich mal an) das cmd.exe (bei NT in die system32 directory von windows).
Wenn du cmd.exe öffnest wird er standard in die directory stehen wo cmd.exe steht (das heißt das nur commandos in diese directory ausgeführt werden).
Du könntest dieses problem lösen durch cmd.exe nach die directory zu kopieren wo das program steht was du ausfuhren willst.
So ist es möglich das program zu öffnen und parameter an das programm weiter zu geben.


Andysaw - Di 26.11.02 14:27

das hört sich alles gut an , aber ich hab davon nichts verstanden
ausser das cmd dafür sorgt dass das was ich tue nur in einem
speziellen pfad passiert..
kannst du ein ganz einfaches beispiel bringen ?
MfG
Andy


Delete - Di 26.11.02 14:30

Was hat denn die cmd.exe damit zu tun?

Wie wäre es, wenn er den kompletten Pfad zu dieser SAW Datei als Parameter mit übergibt? :roll:


Andysaw - Di 26.11.02 14:34

(Haareausreiss)
Nein auch mit dem kompletten pfad als Pchar is nich , auch nich
wenn der pfad oder die eingabedatei in einer *.TxT steht die ich ihm als PChar verkaufe..
Ich finde die rege Teilname top..
(Hoffentlich hat einer ne Lösung)
MfG
Andy


JeanvanHees - Di 26.11.02 14:43

Naja, wenn ich einen commando an ein programm in eine DOS-environment weitergeben möchte, gebrauche ich das cmd.exe.

also, du könntest als parameter: /k saw.bla (das k war glaub ich um zu runnen ohne das cmd schirm zu verbergen...such mal in die hilfe von cmd nach andere commandos)
und als programm cmd.exe (cmd dan nach folder von saw.bla erst kopieren)
Vielleicht hat luckie recht un ist das umstandlich, aber bei mir hat es so mal functioniert.
Ich kann aber das vorbild nicht weiter ausarbeiten, weil ich delphi nicht dabei habe.


Andysaw - Di 26.11.02 14:48

Ich hab das nu wie ein Uhrmensch erledigt :
Start.bat
Inhalt : echo dat | programm.exe

die start.bat in shellexecut rein und gut war..
Junge schwere Geburt..
proggi beendet sich aber sofort (ich denke wegen dem
zugriffs problem,das muss ich noch schaffen)
danke leute ...!
MfG
Andy


Delete - Di 26.11.02 14:59

LOL

Was ist denn ein Uhrmensch?


Andysaw - Di 26.11.02 15:06

Tja also darauf weiss ich jetzt echt nichts mehr zu sagen ...

Oh mann ...

naja werd wohl mürbe


LOL

Aber : Dateizugriff ?
Noch Ideen ?
MfG
Andy