Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Открыть игру и нажать на клавишу


Автор: eldar22 2.5.2010, 19:15
Здравствуйте!
Есть код 

Код

Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Command1_Click()
Dim ReturnValue, i
  ReturnValue = Shell("notepad.exe", 1)  
  AppActivate ReturnValue
Const VK_ALT = 101

    keybd_event VK_ALT, 0, 0, 0   ' press Alt

    
    
End Sub



По нажатие кнопки программа открывает  блокнот и вводит цифру 5.
А как сделать чтобы можно было открыть текстовый файл зная его путь (D:\1.txt) ?

Автор: Akina 2.5.2010, 23:39
добавить имя файла в комстроку запуска

Автор: eldar22 3.5.2010, 13:32
 Вопрос решенsmile 

Автор: eldar22 3.5.2010, 15:00
Здравствуйте!

Код

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowsName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal cCmdShow As Long) As Long
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Command1_Click()
Dim lFoundWindow As Long
lFoundWindow = FindWindow(vbNullString, "Counter-Strike")
Call SetForegroundWindow(lFoundWindow)
Call ShowWindow(lFoundWindow, 9)
Call ShowWindow(lFoundWindow, 10)

Const VK_esc = 27


keybd_event VK_esc, 0, 0, 0   ' press esc
   
End Sub


По идеи программа должна найти заголовок игры Counter-Strike открыть ее и нажать на кнопку Esc
Программа находит окно открывает его, но не нажимает кнопку Esc

Автор: ProgramerForever 3.5.2010, 15:05
Попробуйте код поставить не в кнопку, а в таймер. Секунд на 5-10. Чтобы можно было открыть окно и проверить не спеша.

Автор: eldar22 3.5.2010, 16:15
Нет с таймером не помогло 

Автор: eldar22 4.5.2010, 22:05
Ответ нашел

Автор: vbCrLf 11.5.2010, 10:53
Возможно оффтоп, но мне казалось, что при нахождении решения проблемы можно было поделиться решением.

Автор: eldar22 11.5.2010, 12:56
Конечно если надо вот решение 

Код

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowsName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal cCmdShow As Long) As Long
Private Sub Command1_Click()
Dim lFoundWindow As Long
lFoundWindow = FindWindow(vbNullString, "Counter-Strike")
Call SetForegroundWindow(lFoundWindow)
Call ShowWindow(lFoundWindow, 9)
Call ShowWindow(lFoundWindow, 10)         
       
SendKeys "{ESC}", True           

End Sub

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)