![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
String -> PChar [D6, WinXP]
Incognito © (2002-11-05 00:04:00)Здравстыуйте!
Проблема такая:
Моей проге нужно открыть приложение, которое находтся в той же директории, что и моя прога.
...
var
h : HWND;
path : ????;
begin
path:=ExtractFilePath(paramstr(0))+"About.exe";
ShellExecute(h,"open",path,0,0,SW_SHOW);
...
Но проблемма в том, что функция ExtractFilePathвозвращает строковое выражение типа String,
Процедуре ShellExecuteтребуется PChar
Подскажите функцию для преобразования String -> PChar.
Или скажите, как по-другому решить эту проблему.
Заранее блогодарю
Separator (2002-11-07 11:19:00) [1]
> Севостьянов Игорь © (07.11.02 11:07)
Все правильно Alex4444444444говорит, текущий каталог моджет не совпадать с каталогом проги
Севостьянов Игорь (2002-11-07 11:07:00) [2]
> Alex4444444444 (05.11.02 11:16)
Автор вопроса ясно сказал же
Incognito © (05.11.02 00:04)
Здравстыуйте!
Проблема такая:
Моей проге нужно открыть приложение, которое находтся в той же директории, что и моя прога.
Alex4444444444 (2002-11-05 11:16:00) [3]Net, ya imel v vidu, chto proga mozhet byt" zapushena iz drugogo cataloga. Razve ne verno, chto ShellExecute dlya .exe file"a budet iskat" file standartnym obrazom: tekushij dir + path? A proga mozhet byt" zapushena linkom, v kotorom v kachestve rabochego cataloga stoit chto-nibud" drugoe? (Ili proga menyaet rabochij catalog, liba sama, libo kakim-nibud" dialogom.)
Song (2002-11-05 08:46:00) [4]Ничего не будет - запуститься без проблем.
^Sanya (2002-11-05 01:21:00) [5]
> Alex4444444444 (05.11.02 00:49)
> Mozhet ne srabotat", t.k. programma mozhet byt" zapushena
> iz drugogo mesta.
В смысле, если по локалке запустить её с другого копма?
И что будет (самому интересно)?
Alex4444444444 (2002-11-05 00:49:00) [6]Mozhet ne srabotat", t.k. programma mozhet byt" zapushena iz drugogo mesta.
^Sanya (2002-11-05 00:40:00) [7]А вообще, подумай, что будет, если написать:
...
var
h: HWND;
begin
ShellExecute(h,"open","About.exe",0,0,SW_SHOW);
...
Обязательно подумай.
Incognito (2002-11-05 00:36:00) [8]ну я уж понял.
Спасибо
^Sanya (2002-11-05 00:28:00) [9]....да..
причём тут...
Короче:
PCharParametersProcedure - это я к примеру написал.
В твоём случае будет:
...
var
h : HWND;
path : PChar;
begin
path := PChar(ExtractFilePath(paramstr(0))+"About.exe");
ShellExecute(h,"open",path,0,0,SW_SHOW);
...
или:
...
var
h : HWND;
path : string;
begin
path := ExtractFilePath(paramstr(0))+"About.exe";
ShellExecute(h,"open",PChar(path),0,0,SW_SHOW);
...
Incognito (2002-11-05 00:24:00) [10]Спасибо. Вроде работает.
Alex4444444444 (2002-11-05 00:18:00) [11]Eto byla figura rechi.
ShellExecute(h,"open",PChar(path),0,0,SW_SHOW);
Incognito (2002-11-05 00:13:00) [12]Чего-то не понял.
Если так:
var
h : HWND;
path : pChar;
s : String;
begin
s:=ExtractFilePath(paramstr(0))+"About.exe";
path:=PCharParametersProcedure(PChar(s));
ShellExecute(h,"open",path,0,0,SW_SHOW);
то не работает.
Пишет, что не знает он никаких PCharParametersProcedure
^Sanya (2002-11-05 00:07:00) [13]Явное преобразование типов:
var
s: string;
ps: pchar;
begin
...
PCharParametersProcedure(PChar(s))
...
end;