Страница: 1 |
Вопрос: Shell | Добавлено: 06.04.08 22:10 |
Автор вопроса: ![]() |
Помогите решить проблему: я запускаю программу через Shell или ShellExecute, но она запускается не полностью: например у справочника запускается только оболочка, а база отсутствует. Если создать bat и запускать через него то всё нормально. Что мне делать? |
Ответы | Всего ответов: 10 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8068014 Вопросов: 18 Ответов: 817 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 06.04.08 22:17 |
телепаты в отпуске. код вставляй. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 06.04.08 22:49 |
после такого описания, вопросом "Что мне делать?" можно легко превратить тему во флуд с элементами офтопа![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 32 Ответов: 167 |
Профиль | Цитата | #3 | Добавлено: 07.04.08 00:16 |
![]() P.S for P.S: флуд с элементами офтопа ![]() ![]() |
Номер ответа: 4 Автор ответа: ![]() ![]() ICQ: 303-304-826 Вопросов: 24 Ответов: 103 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 07.04.08 00:18 |
Вот весь код: Shell "![]() Shell "sprav.exe" и запускать из той папки где лежит справочник то запускается без проблем. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8068014 Вопросов: 18 Ответов: 817 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 07.04.08 00:25 |
мб currentdirectory сбито. запускать приложения все таки лучше через апи CreateProcess или ShellExecute с указанием нужных параметров. Если должна база открыться - значит это внешний файл. значит его нада указать в параметрах командной строки. если нет - значит ситуация описана опять хреново. учимся выражать свои мысли точнее |
Номер ответа: 6 Автор ответа: ![]() ![]() ICQ: 303-304-826 Вопросов: 24 Ответов: 103 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 07.04.08 00:29 |
ShellExecute тоже не работает, так ведут себя не все программы, только некоторые |
Номер ответа: 7 Автор ответа: ![]() ![]() ICQ: 303-304-826 Вопросов: 24 Ответов: 103 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 07.04.08 00:49 |
У меня такая ситуация: в своей программе я сделал возможность создания ссылок на любые программы и столкнулся с такой проблемой. Есть конечно вариант создавать временный батник для каждой программы и запускать через него, но это слишком громоздко |
Номер ответа: 8 Автор ответа: ![]() ![]() ICQ: 303-304-826 Вопросов: 24 Ответов: 103 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 07.04.08 01:03 |
и правда CurrentDirectory было сбито, спасибо Ra$cal ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8068014 Вопросов: 18 Ответов: 817 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 07.04.08 01:06 |
хм. если программы запускать руками, мышкой, прямо из папки, не через какие либо ярлыки, и они будут работать - то будут работать они и при запуске через ShellExecute, CreateProcess. если же программы ты запускаешь руками через ярлыки, а в своей тулзе запускаешь ехе - то вполне вероятно ты теряешь какие то параметры, передавамые в командной строке. просто так. но видимо копать нада в сторону currentdirectory.
простой эксперимент подтвердил выводы. при запуске через ShellExecute и передаче Directory = 0, GetCurrentDirectory возвращает папку той программы, которая запустила целевую. Поэтому нужно помимо пути к файлу указывать параметр Вшкусещкнб равный пути к папке, в которой лежит запускаемый exe |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8068014 Вопросов: 18 Ответов: 817 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 07.04.08 01:07 |
заставил напрячься и написать 2 программы ![]() |
Страница: 1 |
|