Autor Beitrag
anno
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Sa 04.10.08 14:51 
hallo zusammen.

ich habe versucht folgendes batchscript in Delphi umzuschreiben.


allerdings funktioniert der aufruf nicht richtig.

ausblenden Quelltext
1:
2:
start ..\OpenOfficePortable\App\Java\bin\javaw -Dfile.encoding=UTF-8 -jar bin\wiki.in.a.jar 3003
start http://localhost:3003/wiki


ausblenden Delphi-Quelltext
1:
2:
3:
ShellExecute(Handle, 'open''Java\bin\javaw -Dfile.encoding=UTF-8 -jar bin\wiki.in.a.jar 3003'nilnil, SW_SHOWMINIMIZED);

ShellExecute(Handle, 'open''http://localhost:3003/wiki'nilnil, SW_SHOWMINIMIZED);


Bei diesem Aufruf wird zwar irgednwas gemacht, allerdings wird der java server nicht gestartet.

gruß anno
LexXis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: Sa 04.10.08 15:06 
Guck dir mal die offizielle Doku zu ShellExecute an!

ausblenden Delphi-Quelltext
1:
ShellExecute(Handle, PChar('open'), PChar('Java\bin\javaw'), PChar('-Dfile.encoding=UTF-8 -jar bin\wiki.in.a.jar 3003'), nil, SW_SHOWMINIMIZED);					


Wichtig ist, die Parameter nicht als String, sondern als PChar zu übergeben und die Parameter die das gestartet Programm erwartet müssen separat übergeben werden!
BTW: Zu ShellExecute gibt es genügend Threads, die das schon erklärt haben ;)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 04.10.08 15:38 
Außerdem fehlt die Pfadangabe, wenn es so funktioniert, dann nur mit Glück.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 04.10.08 15:38 
user profile iconLexXis hat folgendes geschrieben Zum zitierten Posting springen:
Wichtig ist, die Parameter nicht als String, sondern als PChar zu übergeben

IMHO ist das bei String-Konstanten nicht notwendig. Die werden automatisch als PChar übergeben.

user profile iconLexXis hat folgendes geschrieben Zum zitierten Posting springen:
die Parameter die das gestartet Programm erwartet müssen separat übergeben werden!

Das ist wohl eher der Fehler.
LexXis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: Sa 04.10.08 15:40 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
IMHO ist das bei String-Konstanten nicht notwendig. Die werden automatisch als PChar übergeben.


Werden sie? Man lernt nie aus... :gruebel:
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 04.10.08 15:43 
Ja, werden sie, deshalb gibt es ja auch keine Fehlermeldung an der Stelle, ein Typecast ist nur dann nötig, wenn du eine Stringvariable benutzt oder deine konstanten Zeichenketten mit einer verkettest. Denn dann ist das Ergebnis wirklich ein String und damit der falsche Typ.

Eine konstante Zeichenkette im Code hat ja keinen speziellen Typ wie String oder PChar und wird daher automatisch entsprechend des benötigten Typs interpretiert.