![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
$ad!st |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
мне надо чтоб моя прога в определённое время запускала файл с локального диска, подкажите как это сделать....
я пытаюсь юзать апи функцию ShellExecut ShellExecute(HANDLE, 0, '"C:\Program Files\Winamp\winamp.exe"', но мне нужна возможность выбора открываемого файла ShellExecute(HANDLE, 0, '"C:\Program Files\Winamp\winamp.exe"', а FileName недопустимо в данном случае..... может есть другая возможность запуска внешнего файла, если да то какая??? -------------------- когда в руках молоток, все кажутся гвоздями
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
ShellExecute или WinExec ...
http://forum.pascalnet.ru/index.php?showt...indpost&p=37611 |
$ad!st |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
мне нужна возможность выбора открываемого файла с помощью OpenDialog
-------------------- когда в руках молоток, все кажутся гвоздями
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата($ad!st @ 10.05.05 13:31) а FileName недопустимо в данном случае..... Цитата($ad!st @ 10.05.05 14:47) мне нужна возможность выбора открываемого файла с помощью OpenDialog Не пора ли выбрать что-то одно... Эти 2 условия друг другу просто противоречат... Почему недопустимо использование FileName? Это же просто строка, что ее нельзя передать в ShellExecute? |
$ad!st |
![]()
Сообщение
#5
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Почему недопустимо использование FileName? Это же просто строка, что ее нельзя передать в ShellExecute? нельзя, вот что оно мне пишет: [Error] runner.pas(49): Incompatible types: 'String' and 'PChar' такаяже фигня с WinExec..... Сообщение отредактировано: $ad!st - 10.05.2005 15:35 -------------------- когда в руках молоток, все кажутся гвоздями
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Ну, так переведи String в PChar:
Pchar(s) ... и передавай в процедуру |
$ad!st |
![]()
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
УРААААААА!!!!!!!работает, только не так как надо...но всёравно спасибо
-------------------- когда в руках молоток, все кажутся гвоздями
|
kominet |
![]()
Сообщение
#8
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Запарился уже с этим ShellExecute... в общем проблемма в следущем... на форме есть кнопа которая отвечает за открытие документа в ворде(путь до документа в переменной) есть ещё опенДиалог который никакого отношения к этой всей фигне отношения не имеет НО ShellExecute начинает возвращать значение 2(что меньше 32 и говорит об ошибке если я правильно понимаю) как только я хотябы раз воспользуюс опен диалогом... а до этого всё ОК... Гуру подскажите в чём могут быть грабли?
вот кусок проги:
переменная ResumeImage:string; если что... |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Цитата в чём могут быть грабли? Скорее всего - в том, что пользование OpenDialog-ом изменяет текущую папку, и все относительные пути, естественно, оказываются неправильными, что подтверждает и Code = 2 (ERROR_FILE_NOT_FOUND) ...Как вариант - используй пятым параметром ShellExecute не относительный, а абсолютный путь (ExtractFileDir(ParamStr(0)) вернет тебе папку, в которой находится EXE-файл твоего приложения, от него и надо перейти в папку \ResumeFolder) |
kominet |
![]()
Сообщение
#10
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
volvo
Сенькью вери матч... как раз в этом прикол и был... просто добавил SetCurrentDir(ExtractFileDir(Application.ExeName)); перед вызовом ShellExecute |
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 23:51 |