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

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

будь так добр, кинь пример кода.
...
Рейтинг: 0 / 0
Помогите заслать команду в приложение
    #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
Помогите заслать команду в приложение
    #37104104
ponyto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

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

Код: plaintext
ret = SendMessage(hwnd, WM_COMMAND, ???,  0 )
...
Рейтинг: 0 / 0
Помогите заслать команду в приложение
    #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
Помогите заслать команду в приложение
    #37104157
ponyto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

Блин ни фига не получается...
Есть окно RETRA, а как в него F5 заслать? вроде все так делаю, а не засылает...
...
Рейтинг: 0 / 0
Помогите заслать команду в приложение
    #37104201
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
показывай свой код
...
Рейтинг: 0 / 0
Помогите заслать команду в приложение
    #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
Помогите заслать команду в приложение
    #37104277
ponyto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

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

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

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

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


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