Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 194

Мониторинг действий приложений

09.03.2016, 12:45. Показов 3688. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Мне хотелось бы узнать имеются ли такие программы которые анализировали команды которые происходят в операционной системы и команды которые отправляют другие программы, чтобы всё это анализировать и с помощью vb net автоматизировать эти действие я имею виду программы типа "http analayzer v7" только для анализ не http а компьютерных или программных команд! Заранее Спасибо)))!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2016, 12:45
Ответы с готовыми решениями:

Мониторинг количества работающих приложений
Всем привет. Ребята, буду признателен, если есть решение по мониторингу количества открытых копий приложения на разных пк.

Мониторинг действий: изменение содержимого корневой папки, запуск приложений и т.д.
Всем привет! Хочу написать программу для мониторинга действий: изменение содержимого корневой папки, запуск приложений, отслеживание...

Мониторинг частоты использования приложений
Доброго вечера (дня, утра, ночи - нужное прочитать) Столкнулся со следующими мыслями - Есть некий пользовательский ПК и установленное на...

26
 Аватар для Winney
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
09.03.2016, 13:07
Цитата Сообщение от AlisherUser Посмотреть сообщение
http analayzer v7
С ним не знаком, но в составе VS есть небольшая программулька. У меня она расположена по адресу
C:\Program Files\Microsoft Visual Studio 11.0\Common7\Tools\spyxx.exe

Это если я вас правильно понял)
0
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 194
09.03.2016, 14:41  [ТС]
Цитата Сообщение от Winney Посмотреть сообщение
spyxx.exe
даже не знаю что это ну у вас есть какие то видеоуроки по использование этой программы или что другое?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18284 / 14207 / 5368
Регистрация: 17.03.2014
Сообщений: 28,887
Записей в блоге: 1
09.03.2016, 14:48
AlisherUser, в операционной системе просходит очень много событий. Поэтому прежде чем спрашивать о каких-то "сниферах" следует определиться какая именно информация тебя интересует. Например, можно анализировать сообщения которые получает и отправляет программа с помощью Spy++, входяшей в состав VS, или аналогичной. Если нужно анализировать API вызовы, то здесь поможет Process Monitor или API Monitor. Дополнительную информацию можно получить путем анализа ETW трейсов. Плюс Process Explorer и стандартный визуализатор счеткиков производительности могут помочь.
1
 Аватар для Winney
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
09.03.2016, 14:52
Цитата Сообщение от AlisherUser Посмотреть сообщение
даже не знаю что это ну у вас есть какие то видеоуроки по использование этой программы или что другое?
Это Spy++, о котором упоминал OwenGlendower. Справка там точно есть)
0
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 194
09.03.2016, 15:06  [ТС]
Я хочу нажать на кнопку определенной программы и получить результат.
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
09.03.2016, 16:40
Цитата Сообщение от AlisherUser Посмотреть сообщение
Я хочу нажать на кнопку определенной программы и получить результат.
Получить какой результат? Вот так можно нажать кнопку "Отмена" в диалоговом окне "Выполнить":
VB.NET
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
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function FindWindow( _
     ByVal lpClassName As String, _
     ByVal lpWindowName As String) As IntPtr
    End Function
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function FindWindowEx(ByVal parentHandle As IntPtr, _
                      ByVal childAfter As IntPtr, _
                      ByVal lclassName As String, _
                      ByVal windowTitle As String) As IntPtr
    End Function
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Boolean
    End Function
 
    Const VK_SPACE = &H20
    Const WM_KEYDOWN = &H100
    Const WM_KEYUP = &H101
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim HWND As IntPtr = FindWindow(vbNullString, "Выполнить")
        If HWND <> 0 Then
            Dim HButton As IntPtr = FindWindowEx(HWND, 0, "Button", "Отмена")
            PostMessage(HButton, WM_KEYDOWN, VK_SPACE, 0)
            PostMessage(HButton, WM_KEYUP, VK_SPACE, 0)
        Else
            MsgBox("Окно не найдено!")
        End If
    End Sub
2
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 194
10.03.2016, 16:22  [ТС]
я новичок в этом и практический нечего не понял. От куда вы всё это анализировали главное как пажалуйста комментируете ваш код.Хотя я нечего не понял я хотел протестировать эту программу но когда я скопировал и вставил этот код у меня появились разные ошибки может потому что для работы надо дабовлять какие то библиотеки.Имеется ли какие то программы типа макроса что бы записать командные действие, смотреть этот записанный код и с использованием vb net автоматизировать.
1.Как анализировали нажатие на клавишу?
2.Какие нужно добавлять библиотеки?
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
10.03.2016, 23:08
В начале кода:
VB.NET
1
2
3
Imports System.Runtime.InteropServices
Public Class Form1
'Код выше
А вообще, наводите на ошибку DllImport (подчеркнут), появится восклицательный знак жмем на него DllImport не определен, жмем импортировать System.Runtime.InteropServices.
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
10.03.2016, 23:35
Лучший ответ Сообщение было отмечено AlisherUser как решение

Решение

Вам говорили о программе Spy++ (в моем случае она находится: Microsoft Visual Studio 10.0\Common7\Tools).
Сначала получаем дескриптор окна, первый параметр имя класса, второй имя окна (ищем по имени окна).
VB.NET
1
Dim HWND As IntPtr = FindWindow(vbNullString, "Выполнить")
Если такое окно найдено, то нужно найти дескриптор кнопки, первый параметр родительское окно, второй дочернее, имя класса, имя кнопки:
VB.NET
1
Dim HButton As IntPtr = FindWindowEx(HWND, 0, "Button", "Отмена")
Имя класса и имя кнопки посмотрел в Spy++:

И собственно посылаем сообщение по этому дескриптору, дескриптор окна (в данном случае кнопки), WM_KEYDOWN (константа нажатия копки), VK_SPACE (константа кнопки пробел).
VB.NET
1
PostMessage(HButton, WM_KEYDOWN, VK_SPACE, 0)
Ну и сообщение на отжатие кнопки (сл. postmessage).
1
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
10.03.2016, 23:43
Вы скажите, что это за приложение, может это какая-то игра и такое уже не выйдет...
0
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 194
11.03.2016, 11:16  [ТС]
Да вот теперь стало понятно. Вообще я сейчас не планирую создать какую нибудь программу типа такого но я просто хотел узнать можно ли сделать такое,да и ещё у меня появился вопрос как заполнить текстовое поля? Вот в этом Окне "Выполнить" и потом нажать на клавишу ОК.
VB.NET
1
2
3
4
'Здесь нужен код для ввода текста например dxdiag
Dim HButton As IntPtr = FindWindowEx(HWND, 0, "Button", "ОК")
            PostMessage(HButton, WM_KEYDOWN, VK_SPACE, 0)
            PostMessage(HButton, WM_KEYUP, VK_SPACE, 0)
Я не понял для чего этот код нужен:
VB.NET
1
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
11.03.2016, 12:47
WM_SETTEXT - отправить текст дескриптору.
VB.NET
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
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function FindWindow( _
     ByVal lpClassName As String, _
     ByVal lpWindowName As String) As IntPtr
    End Function
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function FindWindowEx(ByVal parentHandle As IntPtr, _
                      ByVal childAfter As IntPtr, _
                      ByVal lclassName As String, _
                      ByVal windowTitle As String) As IntPtr
    End Function
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
    End Function
 
    Const WM_SETTEXT = &HC
    Const WM_KEYDOWN = &H100
    Const WM_KEYUP = &H101
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim myCmd As String = "cmd"
        Dim HString As IntPtr = Marshal.StringToHGlobalAuto(myCmd)
        Dim HWND As IntPtr = FindWindow(vbNullString, "Выполнить")
        If HWND <> 0 Then
            'Находим наш ComboBox (так как это именно он):
            Dim HComboBox As IntPtr = FindWindowEx(HWND, 0, "ComboBox", vbNullString)
            If HComboBox <> 0 Then
                'SendMessage тоже самое что и PostMessage, только SendMessage - ждет пока сообщение отработает, а PostMessage просто помещает в очередь.
                'Отправляет сообщение ComboBox'у:
                SendMessage(HComboBox, WM_SETTEXT, IntPtr.Zero, HString)
                'Находим дескриптор кнопки и отпарвляем по нему сообщение:
                Dim HButton As IntPtr = FindWindowEx(HWND, IntPtr.Zero, "Button", "ОК")
                SendMessage(HButton, WM_KEYDOWN, Keys.Space, 0)
                SendMessage(HButton, WM_KEYUP, Keys.Space, 0)
            End If
        Else
            MsgBox("Окно не найдено!")
        End If
    End Sub
Можно конечно попробовать SetWindowText, лучше разберитесь с примером выше.

Цитата Сообщение от AlisherUser Посмотреть сообщение
Я не понял для чего этот код нужен:
Из какой библиотеки будет использоваться функция.
1
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 194
11.03.2016, 13:41  [ТС]
Спасибо вам, а как получить данные из форм программ например вот текст со скриншота "Введите имя программы,папки... "
Миниатюры
Мониторинг действий приложений  
0
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 194
11.03.2016, 14:22  [ТС]
Откуда вы взяли это и для других окон значения изменяются? Комментируете пожалуйста:
VB.NET
1
2
3
4
Const WM_SETTEXT = &HC
Const VK_SPACE = &H20
Const WM_KEYDOWN = &H100
Const WM_KEYUP = &H101
Добавлено через 8 минут
Почему этот код не работает:
VB.NET
1
2
3
4
5
6
7
8
9
10
 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim HWND As IntPtr = FindWindow(vbNullString, "iSendSMS - Отправка SMS/MMS сообщений")
        If HWND <> 0 Then
            Dim HButton As IntPtr = FindWindowEx(HWND, 0, "TCheckBox", "Указать время доставки")
            PostMessage(HButton, WM_KEYDOWN, Keys.Space, 0)
            PostMessage(HButton, WM_KEYUP, Keys.Space, 0)
        Else
            MsgBox("Окно не найдено!")
        End If
    End Sub
Программа вернет True нашему условию но почему-то в TCheckBox не вставляется галочка
Я изменил только код в процедуре button другие коды не были изменены может по этому?
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
11.03.2016, 14:42
Получить текст можно с помощью WM_GETTEXT:
VB.NET
1
2
WM_GETTEXT = &HD
WM_GETTEXTLENGTH = &HE
Но проще и удобнее использовать SetWindowText (передать текст дескриптору), GetWindowText (соответственно получить):
VB.NET
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
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function FindWindow( _
     ByVal lpClassName As String, _
     ByVal lpWindowName As String) As IntPtr
    End Function
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function FindWindowEx(ByVal parentHandle As IntPtr, _
                      ByVal childAfter As IntPtr, _
                      ByVal lclassName As String, _
                      ByVal windowTitle As String) As IntPtr
    End Function
    <DllImport("user32.dll", EntryPoint:="GetWindowText")>
    Private Shared Function GetWindowText(ByVal hwnd As Integer, ByVal lpString As System.Text.StringBuilder, ByVal cch As Integer) As Integer
    End Function
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function GetWindowTextLength(ByVal hwnd As IntPtr) As Integer
    End Function
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim HWND As IntPtr = FindWindow(vbNullString, "Выполнить")
        Dim HLabel As IntPtr = FindWindowEx(HWND, IntPtr.Zero, "Static", "Введите имя программы, папки, документа или ресурса Интернета, которые требуется открыть.") 'Просто пример, сейчас нет времени показывать перебор всех дескрипторов по имени класса, так как там их 3 (с именем Static).
        Dim Length As Integer = GetWindowTextLength(HLabel)
        Dim StrBuilder As StringBuilder = New StringBuilder(Length + 1)
        GetWindowText(HLabel, StrBuilder, StrBuilder.Capacity)
        MsgBox(StrBuilder.ToString)
    End Sub
Добавлено через 2 минуты
Цитата Сообщение от AlisherUser Посмотреть сообщение
Откуда вы взяли это и для других окон значения изменяются? Комментируете пожалуйста:
Нет, не меняются, это константы:
Кликните здесь для просмотра всего текста
VB.NET
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
Public Enum WndMsg
        WM_ACTIVATE = &H6
        WM_ACTIVATEAPP = &H1C
        WM_AFXFIRST = &H360
        WM_AFXLAST = &H37F
        WM_APP = &H8000
        WM_ASKCBFORMATNAME = &H30C
        WM_CANCELJOURNAL = &H4B
        WM_CANCELMODE = &H1F
        WM_CAPTURECHANGED = &H215
        WM_CHANGECBCHAIN = &H30D
        WM_CHANGEUISTATE = &H127
        WM_CHAR = &H102
        WM_CHARTOITEM = &H2F
        WM_CHILDACTIVATE = &H22
        WM_CLEAR = &H303
        WM_CLOSE = &H10
        WM_COMMAND = &H111
        WM_COMPACTING = &H41
        WM_COMPAREITEM = &H39
        WM_CONTEXTMENU = &H7B
        WM_COPY = &H301
        WM_COPYDATA = &H4A
        WM_CREATE = &H1
        WM_CTLCOLORBTN = &H135
        WM_CTLCOLORDLG = &H136
        WM_CTLCOLOREDIT = &H133
        WM_CTLCOLORLISTBOX = &H134
        WM_CTLCOLORMSGBOX = &H132
        WM_CTLCOLORSCROLLBAR = &H137
        WM_CTLCOLORSTATIC = &H138
        WM_CUT = &H300
        WM_DEADCHAR = &H103
        WM_DELETEITEM = &H2D
        WM_DESTROY = &H2
        WM_DESTROYCLIPBOARD = &H307
        WM_DEVICECHANGE = &H219
        WM_DEVMODECHANGE = &H1B
        WM_DISPLAYCHANGE = &H7E
        WM_DRAWCLIPBOARD = &H308
        WM_DRAWITEM = &H2B
        WM_DROPFILES = &H233
        WM_ENABLE = &HA
        WM_ENDSESSION = &H16
        WM_ENTERIDLE = &H121
        WM_ENTERMENULOOP = &H211
        WM_ENTERSIZEMOVE = &H231
        WM_ERASEBKGND = &H14
        WM_EXITMENULOOP = &H212
        WM_EXITSIZEMOVE = &H232
        WM_FONTCHANGE = &H1D
        WM_GETDLGCODE = &H87
        WM_GETFONT = &H31
        WM_GETHOTKEY = &H33
        WM_GETICON = &H7F
        WM_GETMINMAXINFO = &H24
        WM_GETOBJECT = &H3D
        WM_GETTEXT = &HD
        WM_GETTEXTLENGTH = &HE
        WM_HANDHELDFIRST = &H358
        WM_HANDHELDLAST = &H35F
        WM_HELP = &H53
        WM_HOTKEY = &H312
        WM_HSCROLL = &H114
        WM_HSCROLLCLIPBOARD = &H30E
        WM_ICONERASEBKGND = &H27
        WM_IME_CHAR = &H286
        WM_IME_COMPOSITION = &H10F
        WM_IME_COMPOSITIONFULL = &H284
        WM_IME_CONTROL = &H283
        WM_IME_ENDCOMPOSITION = &H10E
        WM_IME_KEYDOWN = &H290
        WM_IME_KEYLAST = &H10F
        WM_IME_KEYUP = &H291
        WM_IME_NOTIFY = &H282
        WM_IME_REQUEST = &H288
        WM_IME_SELECT = &H285
        WM_IME_SETCONTEXT = &H281
        WM_IME_STARTCOMPOSITION = &H10D
        WM_INITDIALOG = &H110
        WM_INITMENU = &H116
        WM_INITMENUPOPUP = &H117
        WM_INPUTLANGCHANGE = &H51
        WM_INPUTLANGCHANGEREQUEST = &H50
        WM_KEYDOWN = &H100
        WM_KEYFIRST = &H100
        WM_KEYLAST = &H108
        WM_KEYUP = &H101
        WM_KILLFOCUS = &H8
        WM_LBUTTONDBLCLK = &H203
        WM_LBUTTONDOWN = &H201
        WM_LBUTTONUP = &H202
        WM_MBUTTONDBLCLK = &H209
        WM_MBUTTONDOWN = &H207
        WM_MBUTTONUP = &H208
        WM_MDIACTIVATE = &H222
        WM_MDICASCADE = &H227
        WM_MDICREATE = &H220
        WM_MDIDESTROY = &H221
        WM_MDIGETACTIVE = &H229
        WM_MDIICONARRANGE = &H228
        WM_MDIMAXIMIZE = &H225
        WM_MDINEXT = &H224
        WM_MDIREFRESHMENU = &H234
        WM_MDIRESTORE = &H223
        WM_MDISETMENU = &H230
        WM_MDITILE = &H226
        WM_MEASUREITEM = &H2C
        WM_MENUCHAR = &H120
        WM_MENUCOMMAND = &H126
        WM_MENUDRAG = &H123
        WM_MENUGETOBJECT = &H124
        WM_MENURBUTTONUP = &H122
        WM_MENUSELECT = &H11F
        WM_MOUSEACTIVATE = &H21
        WM_MOUSEFIRST = &H200
        WM_MOUSEHOVER = &H2A1
        WM_MOUSELAST = &H20D
        WM_MOUSELEAVE = &H2A3
        WM_MOUSEMOVE = &H200
        WM_MOUSEWHEEL = &H20A
        WM_MOUSEHWHEEL = &H20E
        WM_MOVE = &H3
        WM_MOVING = &H216
        WM_NCACTIVATE = &H86
        WM_NCCALCSIZE = &H83
        WM_NCCREATE = &H81
        WM_NCDESTROY = &H82
        WM_NCHITTEST = &H84
        WM_NCLBUTTONDBLCLK = &HA3
        WM_NCLBUTTONDOWN = &HA1
        WM_NCLBUTTONUP = &HA2
        WM_NCMBUTTONDBLCLK = &HA9
        WM_NCMBUTTONDOWN = &HA7
        WM_NCMBUTTONUP = &HA8
        WM_NCMOUSEHOVER = &H2A0
        WM_NCMOUSELEAVE = &H2A2
        WM_NCMOUSEMOVE = &HA0
        WM_NCPAINT = &H85
        WM_NCRBUTTONDBLCLK = &HA6
        WM_NCRBUTTONDOWN = &HA4
        WM_NCRBUTTONUP = &HA5
        WM_NCXBUTTONDBLCLK = &HAD
        WM_NCXBUTTONDOWN = &HAB
        WM_NCXBUTTONUP = &HAC
        WM_NCUAHDRAWCAPTION = &HAE
        WM_NCUAHDRAWFRAME = &HAF
        WM_NEXTDLGCTL = &H28
        WM_NEXTMENU = &H213
        WM_NOTIFY = &H4E
        WM_NOTIFYFORMAT = &H55
        WM_NULL = &H0
        WM_PAINT = &HF
        WM_PAINTCLIPBOARD = &H309
        WM_PAINTICON = &H26
        WM_PALETTECHANGED = &H311
        WM_PALETTEISCHANGING = &H310
        WM_PARENTNOTIFY = &H210
        WM_PASTE = &H302
        WM_PENWINFIRST = &H380
        WM_PENWINLAST = &H38F
        WM_POWER = &H48
        WM_POWERBROADCAST = &H218
        WM_PRINT = &H317
        WM_PRINTCLIENT = &H318
        WM_QUERYDRAGICON = &H37
        WM_QUERYENDSESSION = &H11
        WM_QUERYNEWPALETTE = &H30F
        WM_QUERYOPEN = &H13
        WM_QUEUESYNC = &H23
        WM_QUIT = &H12
        WM_RBUTTONDBLCLK = &H206
        WM_RBUTTONDOWN = &H204
        WM_RBUTTONUP = &H205
        WM_RENDERALLFORMATS = &H306
        WM_RENDERFORMAT = &H305
        WM_SETCURSOR = &H20
        WM_SETFOCUS = &H7
        WM_SETFONT = &H30
        WM_SETHOTKEY = &H32
        WM_SETICON = &H80
        WM_SETREDRAW = &HB
        WM_SETTEXT = &HC
        WM_SETTINGCHANGE = &H1A
        WM_SHOWWINDOW = &H18
        WM_SIZE = &H5
        WM_SIZECLIPBOARD = &H30B
        WM_SIZING = &H214
        WM_SPOOLERSTATUS = &H2A
        WM_STYLECHANGED = &H7D
        WM_STYLECHANGING = &H7C
        WM_SYNCPAINT = &H88
        WM_SYSCHAR = &H106
        WM_SYSCOLORCHANGE = &H15
        WM_SYSCOMMAND = &H112
        WM_SYSDEADCHAR = &H107
        WM_SYSKEYDOWN = &H104
        WM_SYSKEYUP = &H105
        WM_TCARD = &H52
        WM_TIMECHANGE = &H1E
        WM_TIMER = &H113
        WM_UNDO = &H304
        WM_UNINITMENUPOPUP = &H125
        WM_USER = &H400
        WM_USERCHANGED = &H54
        WM_VKEYTOITEM = &H2E
        WM_VSCROLL = &H115
        WM_VSCROLLCLIPBOARD = &H30A
        WM_WINDOWPOSCHANGED = &H47
        WM_WINDOWPOSCHANGING = &H46
        WM_WININICHANGE = &H1A
        WM_XBUTTONDBLCLK = &H20D
        WM_XBUTTONDOWN = &H20B
        WM_XBUTTONUP = &H20C
End Enum


Добавлено через 4 минуты
Цитата Сообщение от AlisherUser Посмотреть сообщение
Программа вернет True нашему условию но почему-то в TCheckBox не вставляется галочка
Я изменил только код в процедуре button другие коды не были изменены может по этому?
Попробуйте передать нажатие левой кнопки мыши:
VB.NET
1
2
SendMessage(HButton, WM_KEYDOWN, Keys.LButton, 0)
SendMessage(HButton, WM_KEYUP, Keys.LButton, 0)
Добавлено через 1 минуту
VB.NET
1
Const VK_SPACE = &H20
Это константа клавиши, но в .NET есть Keys, эквивалент этому:
VB.NET
1
Keys.Space
Добавлено через 4 минуты
Я надеюсь это не новая чудо программа, которая будет работать через другую программу . Это глупость, лучше напишите свою программу для отправки сообщений, используя сервисы операторов:
MEGAFON SMS
MTS SMS
И т.п.
0
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 194
11.03.2016, 14:43  [ТС]
Цитата Сообщение от Jason Посмотреть сообщение
SendMessage(HButton, WM_KEYDOWN, Keys.LButton, 0)
SendMessage(HButton, WM_KEYUP, Keys.LButton, 0)
Не получилось
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
11.03.2016, 14:53
Ваш CheckBox находится в панели, а значит дескриптор не найден -> равен 0.
0
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 194
11.03.2016, 14:53  [ТС]
Цитата Сообщение от Jason Посмотреть сообщение
Я надеюсь это не новая чудо программа, которая будет работать через другую программу .
нет что вы я проста хочу научится работать с другими программами!
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
11.03.2016, 14:53
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.03.2016, 14:53
Помогаю со студенческими работами здесь

Мониторинг запущенных клиентских приложений службой, работающей на сервере
Всем доброго дня! Возник такой вопрос: Есть приложение, работающее с базой MS SQL. Оно подразделяется, как водится, на клиентскую и...

Мониторинг действий пользователей
Несколько пользователей пользуются БД, вводят данные в 4 таблицы из различных форм, также и редактируют их, данные в смысле. Бывают случаи,...

мониторинг действий пользователя
Помогите пожалуйста написать программу мониторинг действий пользователя.Или хотя б код проги скиньте. Задачи. 1) Список запуска...

Мониторинг действий доменного пользователя
Здравствуйте! Подскажите пожалуйста как организовать мониторинг доменного или локального пользователя Что требуется Авторизация \...

Программа-мониторинг для просмотра действий
Подскажите,где можно найти программу, позволяющую с одного компа просматривать действия пользователя на другом компе?Ну,типа следить и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru