PAnsiChar

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Аватара пользователя
Oleg_Rus
Сообщения: 335
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

граждане форумчане, объясните мне как в программе сделать вызов другого приложения с помощью ShellApi или другой подобной ф-ии.
Проблема в следующем: необходимо сделать запуск другого приложения программно. Моя делфа матюгается, что Char и PAnsiChar несовместимы.
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

[syntax=Delphi]
var
si: TStartupInfo;
pi: TProcessInformation;
begin
FillChar(si, SizeOf(si), 0);
si.cb := SizeOf(si);
CreateProcess(nil, 'my.exe', nil, nil, FALSE, CREATE_NEW_CONSOLE, nil, nil, si, pi);
[/syntax]
.msi немного по другому запускаются..
[syntax=Delphi] [/syntax]
Аватара пользователя
Oleg_Rus
Сообщения: 335
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

CreateProcess(nil, 'my.exe', nil, nil, FALSE, CREATE_NEW_CONSOLE, nil, nil, si, pi);

у меня загвоздка именно в 'my.exe'. суть: пользователь может сам ввести запуск приложения и путь до него.
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Так приведи к типу..
[syntax=Delphi]
PChar('my.exe');
PAnsiChar('my.exe');
[/syntax]
[syntax=Delphi] [/syntax]
Аватара пользователя
Oleg_Rus
Сообщения: 335
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

:o а рази так можна?! сорри, ни знал... )
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

В ObjectPascal тип String (фактически LASCII) является совместимым в PChar (фактически ASCIIZ). Т.е. он дополнен нулем в конце.
При тайпкасте используется указатель на первый символ строки (а перед первым символом, как известно есть еще и длина).
Аватара пользователя
Oleg_Rus
Сообщения: 335
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

В ObjectPascal тип String (фактически LASCII) является совместимым в PChar (фактически ASCIIZ). Т.е. он дополнен нулем в конце.

Вопрос: У меня Delphi 7. Неужели ObjectPascal прародитель Delphi? :0
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Погугли чтоли чють-чють...
[syntax=Delphi] [/syntax]
Ответить