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

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

ShellExecute [D7, 2000, XP]


susergey ©   (2006-07-28 00:37:00) 

Мастера, здравствуйте!

Возникла проблема

ShellExecute (Handle, nil, PAnsiChar(CasPolPath), '/?', nil, SW_SHOWNORMAL);

На сколько я понял именно четвертый параметр передает в командную строку ключи запуска программы. В данном случае я хочу добиться выполнения Caspol.exe /?


KilkennyCat   (2006-07-28 02:10:00) [1]

можно перенаправить в файл,
или http://www.codenet.ru/progr/bcb/pipes.php


susergey   (2006-07-28 01:58:00) [2]

Еще один вопросик, после запуска с нужными мне ключами, консоль возвращает результат или положительный или отрицательный, как мне его скопировать в Memo?


susergey   (2006-07-28 01:55:00) [3]

Спасибо, да действительно, лучше.


KilkennyCat   (2006-07-28 01:54:00) [4]

точку я тож нашел ;) Но Вы - первее. Эт хорошо.


KilkennyCat   (2006-07-28 01:52:00) [5]

procedure TForm1.BitBtn1Click(Sender: TObject);
var
 WinDirP: PChar;
 Res: Cardinal;
 CasPolPath: string;
begin
   WinDirP := StrAlloc(MAX_PATH);
   Res := GetWindowsDirectory(WinDirP, MAX_PATH);
   if Res > 0 then begin
      CasPolPath := StrPas(WinDirP) + '\Microsoft.Net\Framework\v.1.1.4322\CasPol.exe';
      if ShellExecute(Handle, nil, PAnsiChar(CasPolPath), ' /?', nil, SW_SHOWNORMAL)< 32 then ShowMessage('Не могу выполнить ShellExecute!')
   end;
end;


так лучше.


susergey   (2006-07-28 01:51:00) [6]

Спасибо
KilkennyCat ©  & Германн © Я нашел ошибку.
\Microsoft.Net\Framework\v.1.1.4322\CasPol.exe'
Точка после v не нужна, Спасибо, за участие!


susergey   (2006-07-28 01:38:00) [7]

Вот процедура целиком:

var
   WinDir: string;
   WinDirP: PChar;
   Res: Cardinal;
   CasPolPath: string;
 begin
    WinDirP := StrAlloc(MAX_PATH);
    Res := GetWindowsDirectory(WinDirP, MAX_PATH);
     if Res > 0 then
       WinDir := StrPas(WinDirP);
       CasPolPath := WinDir + '\Microsoft.Net\Framework\v.1.1.4322\CasPol.exe';
       if ShellExecute (Handle, nil, PAnsiChar(CasPolPath), ' /?', nil, SW_SHOWNORMAL)< 32 then
       begin
               ShowMessage('Не могу выполнить ShellExecute !')
       end;

Выдает ShowMessage, я проверял значения переменных пути правильные.


KilkennyCat   (2006-07-28 01:37:00) [8]

> [10] susergey   (28.07.06 01:34)


а что получается-то? Как именно "не идет"?


KilkennyCat   (2006-07-28 01:36:00) [9]

> А что значит
> > если зарегистрировано.


1. прописаны пути, см. [5]
2. расширение файла ассоциировано с исполняемым файлом.


susergey   (2006-07-28 01:34:00) [10]

Ну я просто теряюсь, у меня не идет!


KilkennyCat   (2006-07-28 01:33:00) [11]

> [8] susergey   (28.07.06 01:30)

ShellExecute(Handle, nil, 'caspol.exe', '/?', nil, SW_SHOWNORMAL);
проверено тоже. работает.


susergey   (2006-07-28 01:30:00) [12]

В переменной PAnsiChar(CasPolPath) я и определил путь к CasPol.exe
А что значит
> если зарегистрировано.


Германн   (2006-07-28 01:28:00) [13]


> KilkennyCat ©   (28.07.06 01:21) [6]
> ну, под зарегистрировано я и имел ввиду, что система знает,
>  куды идти.

Я понял, но прошу не зачислять меня в разрад "буквоедов"! :-)
Более всего меня изумило, что и меня есть вышеупомянутый файл!
Ну отстал от жизни. Со мной это часто бывает. :-(
Но я умею догонять! Что тоже часто бывало! :-)


KilkennyCat   (2006-07-28 01:21:00) [14]

ну, под зарегистрировано я и имел ввиду, что система знает, куды идти.


Германн   (2006-07-28 01:17:00) [15]


> к тому же, может у него CasPolPath содержит все.

Я среагировал на
>  я хочу добиться выполнения Caspol.exe /?
и на то, что я, лично, не знаю что такое Caspol.exe.
И, кстати, что значит
> если зарегистрировано.
?
Я до сих пор знал только два способа "вызова" файла без указания пути к нему: либо файл находится в текущей директории, либо в директории прописанной в системной переменной PATH.

Ууу блин! пока писАл ответ ТС искал сей файл у меня на компе и таки нашел! d:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CasPol.exe
Ну раз "Microsoft.NET\Framework", наверно "зарегистрировано". :-)


KilkennyCat   (2006-07-28 01:05:00) [16]

к тому же, может у него CasPolPath содержит все.


KilkennyCat   (2006-07-28 01:04:00) [17]

> [1] Германн ©   (28.07.06 00:59)

нормально. если зарегистрировано.


KilkennyCat   (2006-07-28 01:04:00) [18]

у меня работает.


Германн   (2006-07-28 00:59:00) [19]

Вроде бы да. Но смущает отсутствие пути к файлу Caspol.exe в вызове функции.


Наверх

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