Страница: 1 |
|
Вопрос: VB.NET - Делегировать или нет ?
|
Добавлено: 05.06.11 21:11
|
|
Автор вопроса: Wlad | ICQ: 6977577
|
Попытался выудить дескрипторы всех главных окон =\.Получилось следующее:
Public Class Form1
Declare Auto Function fw Lib "user32.dll" Alias "FindWindow" (ByVal lpClassName As String,ByVal lpWindowName As String) As Integer
Declare Auto Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal nMaxCount As Integer) As String
Declare Auto Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Integer
Public Function EnumWindowsProc(ByVal hwnd As Integer, ByVal lParam As Integer) As Boolean
Dim capt As String
Dim lenC As Integer
capt = Space(255)
lenC = GetWindowText(hwnd, capt, 255)
MsgBox(lenC)
EnumWindowsProc = True
End Function
Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Form1.EnumWindows(AddressOf EnumWindowsProc, 0)
End Sub
End Class
Пробую в Visual Studio...Перечитал много постов по поводу,что надо делегировать здесь,но здесь парень решил проблему в своем контексте(правда,в VBA):
http://www.aptem.net.ru/programming/vb/vb/other/callback.htm
Но у меня не работает...Заменил разве что String на Space.Помогите разобраться,делегированием-то не занимался ещё даже...
Ответить
|
Номер ответа: 1 Автор ответа: Ким Чен Ир
Вопросов: 0 Ответов: 140
|
Профиль | | #1
|
Добавлено: 05.06.11 21:41
|
Курим?
- Declare Auto Function GetWindowText Lib "user32.dll" Alias "GetWindowTextW" (ByVal hwnd As Integer, ByVal lpString As String, ByVal nMaxCount As Integer) As Integer
- Declare Auto Function EnumWindows Lib "user32" (ByVal lpEnumFunc As EWProc, ByVal lParam As Integer) As Integer
- Delegate Function EWProc(ByVal hwnd As Integer, ByVal lParam As Integer) As Boolean
-
-
- Function EnumWindowsProc(ByVal hwnd As Integer, ByVal lParam As Integer) As Boolean
- Dim capt As New String(New Char, 255)
- Dim lenC As Integer
- lenC = GetWindowText(hwnd, capt, 255)
- MsgBox(capt)
- EnumWindowsProc = True
- End Function
-
- Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Form1.EnumWindows(AddressOf EnumWindowsProc, 0)
- End Sub
Ответить
|
Страница: 1 |
Поиск по форуму