|
|
|
Нажать кнопку меню в другой программе?
|
|||
|---|---|---|---|
|
#18+
Значит заголовок окна неправильно записываешь. У меня все прекрасно находит. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Можно также найти блокнот по классу окна, Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Вызываешь так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 13:06 |
|
||
|
Нажать кнопку меню в другой программе?
|
|||
|---|---|---|---|
|
#18+
Может, лучше искать по классу? Вроде у Блокнота класс окна "Notepad" Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 13:23 |
|
||
|
Нажать кнопку меню в другой программе?
|
|||
|---|---|---|---|
|
#18+
Пользователь2Можно также найти блокнот по классу окна, Опоздал я :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 13:24 |
|
||
|
Нажать кнопку меню в другой программе?
|
|||
|---|---|---|---|
|
#18+
Я пошел другим путем, но и тут вопросы!!! '--------------------------------------------------- Private Sub Command1_Click() Dim RetVal '--------------------------------------------------- RetVal = Shell("Notepad.exe", vbNormalFocus) ' AppActivate RetVal '----------------------------------------------------- SetCursorPos 30, 40 Нажать левую кнопку на мышке-как это записать? End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 15:12 |
|
||
|
Нажать кнопку меню в другой программе?
|
|||
|---|---|---|---|
|
#18+
vallot Нажать левую кнопку на мышке-как это записать? Краткое описание - получить hwnd top-most окна по этим координатам, послать ему (окну) сообщение WM_LBUTTONDOWN, потом WM_LBUTTONUP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 15:42 |
|
||
|
Нажать кнопку меню в другой программе?
|
|||
|---|---|---|---|
|
#18+
Public Declare Function GetMenu Lib "user32" (ByVal Hwnd As Long) As Long Public Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long Public Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public 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 Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long '========================================================================== Public Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long '--------------------------------- Private Sub Command1_Click() Dim Hwnd As Long Dim RetVal Const MK_LBUTTON = &H1 Const MK_LBUTTONUP = нету числа Const WM_LBUTTONDOWN = &H201 '--------------------------------------------------- RetVal = Shell("Notepad", vbNormalFocus) SetCursorPos 30, 40 - установить курсор Hwnd = FindWindow(vbNullString, "Untitled - Notepad") - найти хэндл SendMessage Hwnd, WM_LBUTTONDOWN(MK_LBUTTON, 30, 40) SendMessage Hwnd, WM_LBUTTONDOWN(MK_LBUTTONUP, 30, 40)--тоже непонятно как записать правильно, вроде все эти параметры нужны??? End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 19:30 |
|
||
|
Нажать кнопку меню в другой программе?
|
|||
|---|---|---|---|
|
#18+
Ну вот как мне самоучке не запутаться, судите сами. Мне нужно кликнуть левой кнопкой мышки (курсор установлен), мне предлагают использовать команду WM_LBUTTONDOWN. Отлично, иду на сайт MSDN, нахожу синтаксис: авторWM_LBUTTONDOWN fwKeys = wParam; xPos = LOWORD(lParam); yPos = HIWORD(lParam); fwKeys=MK_LBUTTON Вроде все понятно, но идем дальше: Public 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 PostMessage Hwnd, WM_LBUTTONDOWN, MK_LBUTTON, lParam А параметр lParam состоит еще из двух параметров- x,y ! Получается лишнее количество параметров по сравнению с обьявлеными параметрами!!!А примеров нет, вот методом тыка и бьюсь, результата нет!!! Поэтому я и прошу с примерами!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2005, 09:37 |
|
||
|
Нажать кнопку меню в другой программе?
|
|||
|---|---|---|---|
|
#18+
Все, что хотел сделать в Металиксе, я сделал в Notepad и все сработало, но в самом Металиксе не идет! ------------------------------------------------------ Потому что в Notepad можно найти хэндлы меню,кнопок,вообщем все, что находится на главном окне Notepad, а в Металиксе нет! --------------------------------------------------- Проверил с помощью Winspector окно Металикса - не отражается хэндл меню и кнопок! Есть только хэндл главного окна и тулбаров, что делать не знаю! (Кстати Solid Edge так же построен). Что делать, не знаю!? Как кнопки или меню нажимать,какими командами? Как их определить? Можно с SetcursorPos установить курсор прямо на кнопку, но как потом нажать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 00:16 |
|
||
|
Нажать кнопку меню в другой программе?
|
|||
|---|---|---|---|
|
#18+
Наконец то я сделал то, что хотел! Сейчас то я уже понял, что Andres 1 прямо "на тарелочке" все выложил, но у меня сразу не получилось и я начал метаться, прочел по этой теме все что мог, но зато теперь мне все понятно (так я думаю :) )! Всем кто помогал большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 09:42 |
|
||
|
|

start [/forum/topic.php?fid=61&gotonew=1&tid=2177018]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
326ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 598ms |

| 0 / 0 |
