Помогите с запуском EXE

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DastElves
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 03.03.2006 (Пт) 22:37

Помогите с запуском EXE

Сообщение DastElves » 03.03.2006 (Пт) 22:51

Здравствуйте !
Помогите пожалуйста с проблемкой :)
Проблема следующего плана, нужно что бы при нажатии на кнопку запускалась игра, есть код
#######
Dim FileName As String
FileName = "C:\windows\explorer.exe"
X=Shell ("rundll32.exe url.dll,FileProtocolHandler" & " " & FileName, vbMaximizedFocus)
#######
При нажатии на кнопу Explorer запускается, и не которые игры тоже, но большинство нет, пиште что ненайден путь к папке, скажем в случае с игрой Quake3 в окне появляется надпись что ненайдена папка baseq3 по адресу c:\...\...\...\рабочий стол\baseq3
на рабочем столе находится мой exe файл с кнопкой на запуск Q3..
Т.е. он пытается рабочую папку для Q3 взять с того места где находится мой exe'шник :))
Подскажите как привильно написать!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.03.2006 (Пт) 22:58

Боже милостивый... А что, просто "Shell FileName" вместо этого чуда уже не работает? :roll:


По существу: перед запуском нужно перейти (оператором ChDir) в папку программы.
Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.03.2006 (Пт) 23:08

Переношу в Новичковый.

Dex
Постоялец
Постоялец
 
Сообщения: 346
Зарегистрирован: 09.08.2004 (Пн) 16:11

Сообщение Dex » 03.03.2006 (Пт) 23:09

А я когда столкнулся с подобной проблемой заюзал ShellExecute вот так примерно:
Код: Выделить всё
ShellExecute hwnd, "Open", FileName, vbNullString, directory, 1

FileName - имя файла
directory - директория соответственно
hwnd - хэндл твоей формы
Объява если незнаешь делается так:
Код: Выделить всё
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Если, что спрашивай помогу :)
А с тем что ты написал, уж жёстко ты намудрил :)

DastElves
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 03.03.2006 (Пт) 22:37

Сообщение DastElves » 03.03.2006 (Пт) 23:27

Поробовал написал

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub Command6_Click()
ShellExecute hwnd, "Open", QUAKE3.EXE, vbNullString, "d:\games\q3", 1
End Sub

С объявой пишет "Only comments may appear after EndSub, EndFunction, or EndProperty"

Совсем не понимаю что делать ..
Извените за мою тупость, VB запускаю всего раз 10 :) Практически ничего не рублю в нем... Но очень надо написать это !

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 03.03.2006 (Пт) 23:43

Попробуй запусить, как тебе tyomitch посоветовал.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

DastElves
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 03.03.2006 (Пт) 22:37

Сообщение DastElves » 04.03.2006 (Сб) 9:35

Через Shell FileName тоже пробовал запускаются далеко не все игры проблема точно такая же...
и что за функция ChDir как она работает ?? говорят с помощью нее можно сделать !

DastElves
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 03.03.2006 (Пт) 22:37

Сообщение DastElves » 04.03.2006 (Сб) 13:32

Все.
Всем спасибо нашел решение :)

ChDrive "D"
ChDir ("D:\games\...\...")
Shell "*.exe", vbMaximizedFocus

так все работает :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 118

    TopList