Entwickler-Ecke
Windows API - shellexecute öffnen
anno - Sa 04.10.08 14:51
Titel: shellexecute öffnen
hallo zusammen.
ich habe versucht folgendes batchscript in Delphi umzuschreiben.
allerdings funktioniert der aufruf nicht richtig.
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 |
Delphi-Quelltext
1: 2: 3:
| ShellExecute(Handle, 'open', 'Java\bin\javaw -Dfile.encoding=UTF-8 -jar bin\wiki.in.a.jar 3003', nil, nil, SW_SHOWMINIMIZED);
ShellExecute(Handle, 'open', 'http://localhost:3003/wiki', nil, nil, SW_SHOWMINIMIZED); |
Bei diesem Aufruf wird zwar irgednwas gemacht, allerdings wird der java server nicht gestartet.
gruß anno
LexXis - Sa 04.10.08 15:06
Guck dir mal die offizielle
Doku [
http://msdn.microsoft.com/en-us/library/bb762153.aspx] zu ShellExecute an!
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 - Sa 04.10.08 15:38
Außerdem fehlt die Pfadangabe, wenn es so funktioniert, dann nur mit Glück.
Yogu - Sa 04.10.08 15:38
LexXis hat folgendes geschrieben : |
| 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.
LexXis hat folgendes geschrieben : |
| die Parameter die das gestartet Programm erwartet müssen separat übergeben werden! |
Das ist wohl eher der Fehler.
LexXis - Sa 04.10.08 15:40
Yogu hat folgendes geschrieben : |
| IMHO ist das bei String-Konstanten nicht notwendig. Die werden automatisch als PChar übergeben. |
Werden sie? Man lernt nie aus... :gruebel:
jaenicke - 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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!