|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.08.2013, 14:11 | #1 |
Регистрация: 30.07.2010
Сообщений: 7
|
Ошибка ShellExecute: Параметр задан неверно
Доброго времени суток!
Сделал на Делфи AutoRun (автозагрузчик для дисков) . Доступ к папкам и экзешникам на диске осуществляется через ShellExecute: ShellExecute(handle, 'open', 'Документация', nil, nil, sw_show); ShellExecute(handle, 'open', 'install.exe', nil, nil, sw_show); При тестировании программы на компе, все отлично. Все папки открываются без проблем. Запускаю программу с диска. На окне появляется мое окно с выбором того что можно сделать: «установить программу», «обновить», «документация» и так далее. При выборе, например «Документация», открывается папка с документацией. Закрываю папку, пробую еще раз, выдается ошибка Explorer.EXE: «Параметр задан неверно». В обработчике кнопки «Документация» только ShellExecute. Причем, это ошибка возникает, только если пытаешься открыть папки, при открытии экзешников все нормально. Опытным путем определил, что если зайти в компьютер под администратором или запустить программу от имени администратора, то такой ошибки не возникает. Таким образом, это ошибка ShellExecute связанная с правами доступа. Подскажите, как можно решить данную задачку |
08.08.2013, 15:44 | #2 |
Пользователь
Регистрация: 28.05.2011
Сообщений: 99
|
Поставить манифест на права администратора? Чтобы сразу запускалась от имени админа и без проблем?
OS - [||-----------------------------------------------] забил, дойдя до драйвера памяти
|
08.08.2013, 18:10 | #3 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,872
|
Цитата:
Замените Код:
Код:
Последний раз редактировалось northener; 08.08.2013 в 18:15. |
|
12.08.2013, 17:45 | #4 | |
Регистрация: 30.07.2010
Сообщений: 7
|
Цитата:
Добавил определения пути к .exe (PChar(ExtractFilePath(Application. ExeName)+'Документация') результат тот же. Вероятно, нужно все таки делать автоматический запуск программы от имени администратора. |
|
13.08.2013, 11:33 | #5 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Так тоже не заработает у вас?
Код:
|
24.08.2013, 15:10 | #6 |
Регистрация: 30.07.2010
Сообщений: 7
|
// v1. Просто открыть папку
ShellExecute(Handle, nil, PChar(S), nil, nil, SW_NORMAL); Результат такой же - не работает! (с нулем тоже) // v 2. Открывается двухпанельное окно Explorer ShellExecute(Handle, nil, PChar('Explorer'), PChar(Format('/e,/root,"%s"', [S])), nil, SW_NORMAL); Ошибка explorer.exe: "Этому файлу не сопоставлена программа для выполнения этого действия. Установите программу или, если она уже установлена, создайте сопоставление с помощью компонента панели управления "Программы по умолчанию" // v3. Выделяем папку в проводнике ShellExecute(Handle, nil, PChar('Explorer'), PChar(Format('/e,/select,"%s"', [S])), nil, SW_NORMAL); В общем то так можно обойти данную ошибку (ошибка не возникает), т.к., тут не происходит открытие конкретной папки, а открывается только текущая папка где лежит exe файл и выделяется нужная папка. Но это не особо удобно! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка в VBA.Type-mismatch. Где я неверно указала тип переменной? | mozart2012 | Помощь студентам | 4 | 28.01.2013 15:33 |
Посмотрите, где ошибка! Пусть задан текст до точки. Поменяйте все строчные латинские буквы,которые встречаются в тексте, на проп | Lalalako3 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 29.11.2012 13:28 |
неверно считает? | штохл | Microsoft Office Excel | 3 | 17.05.2010 22:24 |
ShellExecute - параметр не работает? | heart | Win Api | 2 | 12.03.2009 15:45 |
параметр ShowCmd в ShellExecute | Евгений_k | Общие вопросы Delphi | 9 | 16.04.2008 16:37 |