Как из VB запустить exe файл?
Dummy = Shell("путь", параметр)
Но вот проблема, большие программы(типа GTA III, Mafia, Counter strike и тп.) не запускает, ругается и все. Кто знает, может можно как-нибудь по другому запускать?
зы: не в тему :D , при регистации заметил ощибку(буква Р в слове опция)) Легкий ввод vbCode?
Если вы включите эту оРцию, то на страницах создания сообщения будет выведен интерфейс простого использования vbCode.
Я вот код резал и единственным необходимым оказалась SetCurrentDirectory. Абсолютно все остальное можно убрать и получается
в модуле:
Public Declare Function SetCurrentDirectory _
Lib "kernel32" Alias "SetCurrentDirectoryA" _
(ByVal lpPathName As String) As Long
и при вызове программы(можно использовать обычный шелл):
SetCurrentDirectory (Path)' ставить надо перед вызовом exeшника
dummy = shell(FilePath as String, параметр)
всё что писалось остального можно опустить и нормально работает без него(по крайней мере на VB, в Excel'e и тп не проверял)
ps: я вобщето еще вчера говорил что все получилось вот тока чтото я своего поста не вижу...
Твой пост был, я его видел (сейчас тоже не вижу)..
...может ты там нецензурно выразил свою радость?:D
Ну а если серьезно, то рад что смог помочь...
...и сам по ходу узнал кое-что...
...эту API вставил и в свои проги (вместо ChDir), работает верочно, и это есть хорошо...:}
Привет Снчез.
Твой пост был, я его видел (сейчас тоже не вижу)..
...может ты там нецензурно выразил свою радость?:D
Ну а если серьезно, то рад что смог помочь...
...и сам по ходу узнал кое-что...
...эту API вставил и в свои проги (вместо ChDir), работает верочно, и это есть хорошо...:}
Честно говоря, я не помню, чтобы я мат втирал на этом форуме вообще когда-то... Разве что кефира напился, и то маловероятно %)))
Главное, что все работает! И зер гуд типа!
Массаракж, уважаемые!
Shell ("ПолныйПуть+ИмяФайла")
или передаю управление командной строке
Shell ("cmd /R:ПолныйПуть+ИмяCMDФайла.cmd")
Cmd-файл - текстовой файл, аналог BAT файлов доса, в него и записываю то, что нужно запустить.
Если Вы найдете исполняемый файл, который выполняет файл *.lnk, то задача будет решена.
Кажется я догадываюсь что это за файл такой...
Кажется я догадываюсь что это за файл такой...
%) Надеюсь, Вы имеете ввиду не Win.exe... его просто нет на NT платформе %). Я смотрел в Folder options, там он ни за кем не зарегин вроде...
О! нашел! надо было лишь в реестре покопаться секунд 20 подряд!...
rundll32.exe appwiz.cpl,NewLinkHere %1
- это создание нового ярлыка. Полезная вещь! однажды была задачка... Я думаю, если что-то тут поменять, то выйдет загрузить *.lnk файл.
Чем он нам поможет? А все предельно просто! Когда программа (игра) загружается с помощью shell, то директория, откуда она загружается, становится директорией нашей программы. То есть если поместить исполняемый сэмпл программки загрузки в ту же директорию, что и загружаемая программа, то все заработает. Понятно, что мы не можем экзэшник наплодить и поочередно загружать - это безумие! Но *.lnk файл имеет параметр - директорию загрузки - который обычно тот, где лежит исполняемый файл. Понятно, что, загружая с ярлыка, от этого путь, прописанный в нем, не изменится, а значит все загрузится нормально, ч.с.о.!
Причина вообще этого бага заключается в небольшой кривости функции shell и некоторых недостатков при разработке игр и создании в них ресурсов, которые и ориентируются на этот злополучный AppPath (по крайней мере это именно он в ВБ, можете проверить %))
Рад был помочь!
Теперь если что, будем посылать всех сюда.
%)) Если делаешь сам игру или что-то ориентируещееся на это, то лучше отрывать имя экзешника от полного пути (там вроде есть и такое свойство). У меня моментами возникали такого рода проблемы, когда я пытался открыть.
Я, кстати, глянул - это не баг функции, такое же происходит и в других местах в винде...
P.S если написал не в ту тему сори