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


Автор: Voldemar2004 12.11.2005, 10:51
Есть такая задача: имеется ДОС-прога с единственным полем для ввода цифр, каким образом можно из VB ввести в это поле число? Я думаю о получении фокуса ДОС-окном и имитации нажатых цифровых клавиш из VB.

Автор: Akina 12.11.2005, 23:22
Цитата(Voldemar2004 @ 12.11.2005, 11:51)
Я думаю о получении фокуса ДОС-окном и имитации нажатых цифровых клавиш из VB.

Проще забить нужное в буфер обмена и передать окну нажатие Ctrl-V. Хендл окна получить или мессагу ему передать - несложно.

Автор: Voldemar2004 14.11.2005, 09:07
Цитата(Akina @ 12.11.2005, 23:22)
Хендл окна получить
Даже для ДОС-программы?

Автор: Akina 14.11.2005, 10:56
ручное нажатие Ctrl-V вставляет, значит и программное вставит. не нравится получение хендла - дай фокус.

Автор: Voldemar2004 14.11.2005, 11:58
http://forum.vingrad.ru/index.php?showtopic=4340&hl=%ED%E0%E6%E0%F2%E8%E5+%EA%EB%E0%E2%E8%F8

http://forum.vingrad.ru/index.php?showtopic=8958&hl=%ED%E0%E6%E0%F2%E8%E5+%EA%EB%E0%E2%E8%F8

http://forum.vingrad.ru/index.php?showtopic=43250&unread=1&hl=%F5%FD%ED%E4%EB

Автор: Voldemar2004 14.11.2005, 12:31
Код
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String)
Private Declare Function FindWindowEx& Lib "user32" Alias "FindWindowExA" (ByVal hWndParrent As Long, ByVal hWndChildren As Long, ByVal lpClassName As String, ByVal lpWindowName As String)
Private Const WM_LBUTTONUP = &H202
Private Const WM_LBUTTONDOWN = &H201

'Private Declare Function PostMessage Lib "user32" _
'         Alias "PostMessageA" (ByVal hwnd As Long, _
'               ByVal wMsg As Long, ByVal wParam As Long, _
'                    ByVal lParam As Long) As Long


Private Sub Command1_Click()
Dim sCaption As String, hW As String

sCaption = "Form1"

hW = FindWindow(vbNullString, sCaption)

MsgBox "Хэндл окна = " & hW

End Sub
Получил хэндл, а отправлять надо с помощью SendMessage? Как отправить число хэндла например в Text1.Text ?

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