Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо