Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите заслать команду в приложение / 17 сообщений из 17, страница 1 из 1
08.02.2011, 11:50
    #37103853
ponyto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
Добрый день! Други помогите заслать команду sendkeys "{F5}" в запущенное приложение, да так что бы оно оставалось свернутым (не активируя окна с этой программой).
...
Рейтинг: 0 / 0
08.02.2011, 12:52
    #37104044
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
Не поможем.
SendKeys отправляет нажатия активному окну, а свернутое окно не является активным.
...
Рейтинг: 0 / 0
08.02.2011, 13:04
    #37104070
ponyto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
Antonariy,

Может есть какой другой способ (не Sendkey) чтобы приложения послать команду на обновление??
...
Рейтинг: 0 / 0
08.02.2011, 13:09
    #37104083
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
активируй окно приложения и посылай команду
...
Рейтинг: 0 / 0
08.02.2011, 13:11
    #37104088
ponyto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
Konst_One,

будь так добр, кинь пример кода.
...
Рейтинг: 0 / 0
08.02.2011, 13:16
    #37104097
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
восстановление окна (активация)
http://vbnet.mvps.org/code/helpers/restorehwnd.htm
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
'-----------------------------------------------------------------------------------------
' Copyright ©1996-2008 VBnet, Randy Birch. All Rights Reserved Worldwide.
'        Terms of use http://vbnet.mvps.org/terms/pages/terms.htm
'-----------------------------------------------------------------------------------------

Public Type RECT
  Left    As Long
  Top     As Long
  Right   As Long
  Bottom  As Long
End Type

Public Type POINTAPI
  x       As Long
  y       As Long
End Type

Public Type WINDOWPLACEMENT
  Length            As Long
  flags             As Long
  showCmd           As Long
  ptMinPosition     As POINTAPI
  ptMaxPosition     As POINTAPI
  rcNormalPosition  As RECT
End Type

Public Const SW_SHOWNORMAL =  1 
Public Const SW_SHOWMINIMIZED =  2 
Public Const SW_SHOWMAXIMIZED =  3 
Public Const SW_SHOWNOACTIVATE =  4 

Public Declare Function BringWindowToTop Lib "user32" _
  (ByVal hwnd As Long) As Long

Public Declare Function FindWindow Lib "user32" _
   Alias "FindWindowA" _
  (ByVal lpClassName As String, _
   ByVal lpWindowName As String) As Long
   
Public Declare Function GetWindowPlacement Lib "user32" _
   (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long

Public Declare Function SetForegroundWindow Lib "user32" _
   (ByVal hwnd As Long) As Long

Public Declare Function SetWindowPlacement Lib "user32" _
   (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long


Public Sub RestoreWindow(sWindowTitle As String)

   Dim hWndCtlApp As Long
   Dim currWinP As WINDOWPLACEMENT
    
  'obtain the handle to the control app
   hWndCtlApp = FindWindow(vbNullString, sWindowTitle)
   
   If hWndCtlApp Then
   
     'prepare the WINDOWPLACEMENT type
      currWinP.Length = Len(currWinP)
   
      If GetWindowPlacement(hWndCtlApp, currWinP) >  0  Then
      
        'determine the window state
         If currWinP.showCmd = SW_SHOWMINIMIZED Then
      
           'minimized, so restore
            currWinP.Length = Len(currWinP)
            currWinP.flags =  0 &
            currWinP.showCmd = SW_SHOWNORMAL
            Call SetWindowPlacement(hWndCtlApp, currWinP)
         
         Else
           
           'on screen, so assure visible
            Call SetForegroundWindow(hWndCtlApp)
            Call BringWindowToTop(hWndCtlApp)
         
         End If
      
      End If
   
   End If
   
End Sub
...
Рейтинг: 0 / 0
08.02.2011, 13:19
    #37104104
ponyto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
Konst_One,

Вот спасибо огромное!
...
Рейтинг: 0 / 0
08.02.2011, 13:21
    #37104115
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
отправка команды окну:

Код: plaintext
ret = SendMessage(hwnd, WM_COMMAND, ???,  0 )
...
Рейтинг: 0 / 0
08.02.2011, 13:25
    #37104127
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
Код: plaintext
1.
2.
3.
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

развлекайся дальше. не забудь про EnumChildWindows() , если нужно будет добраться до внутренних окон
...
Рейтинг: 0 / 0
08.02.2011, 13:42
    #37104157
ponyto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
Konst_One,

Блин ни фига не получается...
Есть окно RETRA, а как в него F5 заслать? вроде все так делаю, а не засылает...
...
Рейтинг: 0 / 0
08.02.2011, 13:58
    #37104201
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
показывай свой код
...
Рейтинг: 0 / 0
08.02.2011, 14:09
    #37104243
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Const VK_F5 = &H74
Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101
...
        ret = SendMessage(hWnd, WM_SETFOCUS,  0 &,  0 &)
        ret = SendMessage(hWnd, WM_KEYDOWN, key,  0 &)
        ret = SendMessage(hWnd, WM_KEYUP, key, 0 &)
...
Рейтинг: 0 / 0
08.02.2011, 14:19
    #37104277
ponyto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
Konst_One,

Объявлять кнопки надо в General?
SendMessage он в какое окно будет закидывать?? можно по названию окна?
...
Рейтинг: 0 / 0
08.02.2011, 14:21
    #37104283
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
выше давал код поиска по заголовку окна
отправка сообщений идёт уже по дескриптору окна
...
Рейтинг: 0 / 0
08.02.2011, 14:25
    #37104301
ponyto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
Konst_One,

)все ясно теперь норм получилось, спасибо!
...
Рейтинг: 0 / 0
08.02.2011, 14:28
    #37104307
ponyto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
Konst_One,

только скажи какой переменной дискриптор описывается ( где происходит поиск заголовка)?
...
Рейтинг: 0 / 0
08.02.2011, 14:31
    #37104318
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите заслать команду в приложение
у тебя же всё получилось =)

hwnd - дескриптор
Findwindow() - поиск окна
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите заслать команду в приложение / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]