|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.06.2011, 19:24 | #1 |
Форумчанин
Регистрация: 03.01.2011
Сообщений: 233
|
Научите юзать ShellExecute
Здравствуйте. Возникла проблема с использованием функции ShellExecute.
немогу открыть ею файлы ярлыков игр, причем только игр. пишу так: ShellExecute(0,'Open','C:\Game.exe. lnk',nil, nil, SW_RESTORE); - критует причем не проект, а сама игра! чем ярлыки файлов игр отличаются от ярлыков файлов программ или папок и как их открывать?
пыжок
Последний раз редактировалось maloun; 22.06.2011 в 19:59. |
22.06.2011, 20:14 | #2 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
Цитата:
|
||
22.06.2011, 20:20 | #3 |
Форумчанин
Регистрация: 03.01.2011
Сообщений: 233
|
в качестве какого параметра мне её указывать ?
делаю так ShellExecute(0,'open','WorldOfGoo.e xe','C:\Program Files\World of Goo\WorldOfGoo.exe','C:\Program Files\World of Goo',SW_RESTORE); что-то явно не то...
пыжок
Последний раз редактировалось maloun; 22.06.2011 в 20:32. |
22.06.2011, 20:53 | #4 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Функция ShellExecute
Функция ShellExecute не только запускает программы, а открывает, редактирует или печатает файл, с учетом зарегестрированного типа, а также открывает указанную папку проводником. Возвращает Handle ссылку на открытое окно. Используемый модуль ShellAPI. Его нужно не забыть указать в разделе Uses. Описание: ShellExecute (hWnd: HWND; Operation: PChar; FileName: PChar; Parametrs: PChar; Directory: PChar; CmdShow: Integer): HINST; где: hWnd – Handle родительского окна, в который будут передаваться сообщения запускаемого приложения. Можно указывать Handle-ссылку окна вашего приложения. Operation – производимая операция. Open – открыть, print – напечатать, explore – открыть папку. По умолчанию open, если указать nil. FileName – имя файла или документа, интернет ссылка, e-mail адрес. Parametrs – параметры, передаваемые приложению в командной строке. Directory – каталог по умолчанию. CmdShow – стиль окна. Показывает, в каком состоянии будет отображаться окно при запуске. Подробно рассказано выше. Вместо параметров Operation, Parametrs и Directory можно ставить nil. Они являются не обязательными параметрами для запуска. В случае успешного запуска возвращает Handle окна, в случае неудачи возвращает код ошибки меньше или равное 32. Список возможных ошибок можно прочитать в справке по этой команде. Пример использования команды ShellExecute в программе: ShellExecute (Form1.Handle, nil, 'http://programming.dax.ru', nil, nil, SW_RESTORE); //запуск нашей странички ShellExecute (Form1.Handle, nil, PChar (Application.ExeName), nil, nil, SW_RESTORE); //запуск второй копии этой программы ShellExecute (Form1.Handle, nil, 'iexplore', 'http://programming.dax.ru', nil, SW_RESTORE); //запуск в отдельном окне ShellExecute (Form1.Handle, nil, 'mailto:semen@krovatka.net?subject= delphi', nil, nil, SW_RESTORE); //написать мне письмо ShellExecute (Form1.Handle, nil, 'c:\1.doc', nil, nil, SW_RESTORE); //открыть документ Последний раз редактировалось Shouldercannon; 22.06.2011 в 20:55. |
22.06.2011, 21:04 | #5 | |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Пример загрузки программы через ярлык
Цитата:
|
|
22.06.2011, 21:44 | #6 |
Форумчанин
Регистрация: 03.01.2011
Сообщений: 233
|
не знаю почему но когда я указал так
ShellExecute(0,'open','WorldOfGoo.e xe',nil,'C:\Program Files\World of Goo',SW_RESTORE); всё заработало как мне нужно
пыжок
|
22.06.2011, 21:46 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вам стоит узнать что такое текущая директория и её отношение к относительному пути.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
23.06.2011, 07:19 | #8 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Можно ли юзать OpenTK в С++ | samouelson | Visual C++ | 1 | 05.06.2011 16:53 |
Как можно юзать WinAPI в C# ? | Lemo | Общие вопросы .NET | 6 | 16.07.2010 11:35 |
BinToHex из Classes. Как юзать и скормить ей большой String | Alex Cones | Общие вопросы Delphi | 5 | 05.11.2009 17:18 |
Маршрутизация.Как юзать локальные ресурсы? | Zerone | Свободное общение | 10 | 06.10.2009 19:27 |
как юзать библиотеку time в с++ ? | Познающий | Общие вопросы C/C++ | 1 | 11.06.2009 17:22 |