diff --git a/Windows/Utils.vb b/Windows/Utils.vb
deleted file mode 100644
index c6c197c1..00000000
--- a/Windows/Utils.vb
+++ /dev/null
@@ -1,96 +0,0 @@
-Imports System.Text
-Imports System.ComponentModel
-
-Public Class Utils
- Private Shared GetControlNameMessage As Integer = 0
-
- Public Shared Function GetWinFormsId(ByVal hWnd As IntPtr) As String
- GetControlNameMessage = NativeMethods.RegisterWindowMessage("WM_GETCONTROLNAME")
- Return XProcGetControlName(hWnd, GetControlNameMessage)
- End Function
-
- Protected Shared Function XProcGetControlName(ByVal hwnd As IntPtr, ByVal msg As Integer) As String
- Dim bytearray As Byte() = New Byte(65535) {}
- Dim bufferMem As IntPtr = IntPtr.Zero
- Dim written As IntPtr = IntPtr.Zero
- Dim retHandle As IntPtr = IntPtr.Zero
- Dim retVal As Boolean
- Dim processHandle As IntPtr = IntPtr.Zero
- Dim fileHandle As IntPtr = IntPtr.Zero
-
- If Not (Environment.OSVersion.Platform = PlatformID.Win32Windows) Then
-
- Try
- Dim size As UInteger
- size = 65536
- processHandle = NativeMethods.OpenProcess(NativeMethods.PROCESS_VM_OPERATION Or NativeMethods.PROCESS_VM_READ Or NativeMethods.PROCESS_VM_WRITE, False, GetProcessIdFromHWnd(hwnd))
-
- If processHandle.ToInt64() = 0 Then
- Throw New Win32Exception()
- End If
-
- bufferMem = NativeMethods.VirtualAllocEx(processHandle, IntPtr.Zero, New UIntPtr(size), NativeMethods.MEM_RESERVE Or NativeMethods.MEM_COMMIT, NativeMethods.PageProtection.ReadWrite)
-
- If bufferMem.ToInt64() = 0 Then
- Throw New Win32Exception()
- End If
-
- retHandle = NativeMethods.SendMessage(hwnd, msg, New IntPtr(size), bufferMem)
- retVal = NativeMethods.ReadProcessMemory(processHandle, bufferMem, bytearray, New UIntPtr(size), written)
-
- If Not retVal Then
- Throw New Win32Exception()
- End If
-
- Finally
- retVal = NativeMethods.VirtualFreeEx(processHandle, bufferMem, New UIntPtr(0), NativeMethods.MEM_RELEASE)
-
- If Not retVal Then
- Throw New Win32Exception()
- End If
-
- NativeMethods.CloseHandle(processHandle)
- End Try
- Else
-
- Try
- Dim size2 As Integer
- size2 = 65536
- fileHandle = NativeMethods.CreateFileMapping(New IntPtr(NativeMethods.INVALID_HANDLE_VALUE), IntPtr.Zero, NativeMethods.PageProtection.ReadWrite, 0, size2, Nothing)
-
- If fileHandle.ToInt64() = 0 Then
- Throw New Win32Exception()
- End If
-
- bufferMem = NativeMethods.MapViewOfFile(fileHandle, NativeMethods.FILE_MAP_ALL_ACCESS, 0, 0, New UIntPtr(0))
-
- If bufferMem.ToInt64() = 0 Then
- Throw New Win32Exception()
- End If
-
- NativeMethods.MoveMemoryFromByte(bufferMem, bytearray(0), size2)
- retHandle = NativeMethods.SendMessage(hwnd, msg, New IntPtr(size2), bufferMem)
- NativeMethods.MoveMemoryToByte(bytearray(0), bufferMem, 1024)
- Finally
- NativeMethods.UnmapViewOfFile(bufferMem)
- NativeMethods.CloseHandle(fileHandle)
- End Try
- End If
-
- Return ByteArrayToString(bytearray)
- End Function
-
- Private Shared Function GetProcessIdFromHWnd(ByVal hwnd As IntPtr) As UInteger
- Dim pid As UInteger
- NativeMethods.GetWindowThreadProcessId(hwnd, pid)
- Return pid
- End Function
-
- Private Shared Function ByteArrayToString(ByVal bytes As Byte()) As String
- If Environment.OSVersion.Platform = PlatformID.Win32Windows Then
- Return Encoding.[Default].GetString(bytes).TrimEnd(vbNullChar)
- Else
- Return Encoding.Unicode.GetString(bytes).TrimEnd(vbNullChar)
- End If
- End Function
-End Class
diff --git a/Windows/Window.vb b/Windows/Window.vb
index 1d390fb2..7898fa24 100644
--- a/Windows/Window.vb
+++ b/Windows/Window.vb
@@ -1,4 +1,5 @@
-Imports System.Drawing
+Imports System.ComponentModel
+Imports System.Drawing
Imports System.Runtime.InteropServices
Imports System.Text
Imports System.Windows.Forms
@@ -474,4 +475,98 @@ Public Class Window
Catch ex As ArgumentException
End Try
End Sub
+
+ Public Class Utils
+ Private Shared GetControlNameMessage As Integer = 0
+
+ Public Shared Function GetWinFormsId(ByVal hWnd As IntPtr) As String
+ GetControlNameMessage = NativeMethods.RegisterWindowMessage("WM_GETCONTROLNAME")
+ Return XProcGetControlName(hWnd, GetControlNameMessage)
+ End Function
+
+ Protected Shared Function XProcGetControlName(ByVal hwnd As IntPtr, ByVal msg As Integer) As String
+ Dim bytearray As Byte() = New Byte(65535) {}
+ Dim bufferMem As IntPtr = IntPtr.Zero
+ Dim written As IntPtr = IntPtr.Zero
+ Dim retHandle As IntPtr = IntPtr.Zero
+ Dim retVal As Boolean
+ Dim processHandle As IntPtr = IntPtr.Zero
+ Dim fileHandle As IntPtr = IntPtr.Zero
+
+ If Not (Environment.OSVersion.Platform = PlatformID.Win32Windows) Then
+
+ Try
+ Dim size As UInteger
+ size = 65536
+ processHandle = NativeMethods.OpenProcess(NativeMethods.PROCESS_VM_OPERATION Or NativeMethods.PROCESS_VM_READ Or NativeMethods.PROCESS_VM_WRITE, False, GetProcessIdFromHWnd(hwnd))
+
+ If processHandle.ToInt64() = 0 Then
+ Throw New Win32Exception()
+ End If
+
+ bufferMem = NativeMethods.VirtualAllocEx(processHandle, IntPtr.Zero, New UIntPtr(size), NativeMethods.MEM_RESERVE Or NativeMethods.MEM_COMMIT, NativeMethods.PageProtection.ReadWrite)
+
+ If bufferMem.ToInt64() = 0 Then
+ Throw New Win32Exception()
+ End If
+
+ retHandle = NativeMethods.SendMessage(hwnd, msg, New IntPtr(size), bufferMem)
+ retVal = NativeMethods.ReadProcessMemory(processHandle, bufferMem, bytearray, New UIntPtr(size), written)
+
+ If Not retVal Then
+ Throw New Win32Exception()
+ End If
+
+ Finally
+ retVal = NativeMethods.VirtualFreeEx(processHandle, bufferMem, New UIntPtr(0), NativeMethods.MEM_RELEASE)
+
+ If Not retVal Then
+ Throw New Win32Exception()
+ End If
+
+ NativeMethods.CloseHandle(processHandle)
+ End Try
+ Else
+
+ Try
+ Dim size2 As Integer
+ size2 = 65536
+ fileHandle = NativeMethods.CreateFileMapping(New IntPtr(NativeMethods.INVALID_HANDLE_VALUE), IntPtr.Zero, NativeMethods.PageProtection.ReadWrite, 0, size2, Nothing)
+
+ If fileHandle.ToInt64() = 0 Then
+ Throw New Win32Exception()
+ End If
+
+ bufferMem = NativeMethods.MapViewOfFile(fileHandle, NativeMethods.FILE_MAP_ALL_ACCESS, 0, 0, New UIntPtr(0))
+
+ If bufferMem.ToInt64() = 0 Then
+ Throw New Win32Exception()
+ End If
+
+ NativeMethods.MoveMemoryFromByte(bufferMem, bytearray(0), size2)
+ retHandle = NativeMethods.SendMessage(hwnd, msg, New IntPtr(size2), bufferMem)
+ NativeMethods.MoveMemoryToByte(bytearray(0), bufferMem, 1024)
+ Finally
+ NativeMethods.UnmapViewOfFile(bufferMem)
+ NativeMethods.CloseHandle(fileHandle)
+ End Try
+ End If
+
+ Return ByteArrayToString(bytearray)
+ End Function
+
+ Private Shared Function GetProcessIdFromHWnd(ByVal hwnd As IntPtr) As UInteger
+ Dim pid As UInteger
+ NativeMethods.GetWindowThreadProcessId(hwnd, pid)
+ Return pid
+ End Function
+
+ Private Shared Function ByteArrayToString(ByVal bytes As Byte()) As String
+ If Environment.OSVersion.Platform = PlatformID.Win32Windows Then
+ Return Encoding.[Default].GetString(bytes).TrimEnd(vbNullChar)
+ Else
+ Return Encoding.Unicode.GetString(bytes).TrimEnd(vbNullChar)
+ End If
+ End Function
+ End Class
End Class
diff --git a/Windows/Windows.vbproj b/Windows/Windows.vbproj
index 9a4b1ab0..92b0b6dd 100644
--- a/Windows/Windows.vbproj
+++ b/Windows/Windows.vbproj
@@ -88,7 +88,6 @@
-