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