|
@@ -734,14 +734,13 @@ namespace fis.Win
|
|
|
HTHELP = 21
|
|
|
}
|
|
|
|
|
|
- [DllImport("kernel32.dll")]
|
|
|
- private static extern IntPtr GetModuleHandle(
|
|
|
- string lpModuleName
|
|
|
- );
|
|
|
+
|
|
|
+ [DllImport("kernel32", SetLastError = true)]
|
|
|
+ private static extern IntPtr LoadLibrary(string lpFileName);
|
|
|
|
|
|
private delegate int HookProc(int nCode, int wParam, IntPtr lParam);
|
|
|
|
|
|
- [DllImport("user32.dll")]
|
|
|
+ [DllImport("user32.dll", SetLastError=true)]
|
|
|
private static extern IntPtr SetWindowsHookEx(
|
|
|
int idHook,
|
|
|
HookProc lpfn,
|
|
@@ -757,16 +756,16 @@ namespace fis.Win
|
|
|
IntPtr lParam
|
|
|
);
|
|
|
|
|
|
- [DllImport("user32.dll")]
|
|
|
+ [DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|
|
private static extern bool UnhookWindowsHookEx(IntPtr hHook);
|
|
|
|
|
|
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|
|
private static extern bool GetCursorPos(out POINT pt);
|
|
|
|
|
|
- [DllImport("user32.dll")]
|
|
|
+ [DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|
|
private static extern bool GetWindowRect(IntPtr hwnd, out RECT lpRect);
|
|
|
|
|
|
- [DllImport("user32.dll")]
|
|
|
+ [DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|
|
private static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
|
|
|
|
|
|
private static readonly Dictionary<string, IntPtr> _windowHandles = new Dictionary<string, IntPtr>();
|
|
@@ -793,7 +792,8 @@ namespace fis.Win
|
|
|
public static void StartMouseMonitor()
|
|
|
{
|
|
|
_hookProc = OnMouseHookProc;
|
|
|
- _mouseHookHandle = SetWindowsHookEx((int)HookType.WH_MOUSE_LL, _hookProc, Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]), 0);
|
|
|
+ var hModule = LoadLibrary("user32.dll");
|
|
|
+ _mouseHookHandle = SetWindowsHookEx((int)HookType.WH_MOUSE_LL, _hookProc, hModule, 0); //Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]), 0);
|
|
|
if (_mouseHookHandle == IntPtr.Zero)
|
|
|
{
|
|
|
var errorCode = Marshal.GetLastWin32Error();
|
|
@@ -846,8 +846,9 @@ namespace fis.Win
|
|
|
//Stop drag the window.
|
|
|
public static void EndWindowDrag(string windowName)
|
|
|
{
|
|
|
- if(_windowHandles.TryGetValue(windowName, out var windowHandle)){
|
|
|
- if(windowHandle == _dragingWindowHandle)
|
|
|
+ if (_windowHandles.TryGetValue(windowName, out var windowHandle))
|
|
|
+ {
|
|
|
+ if (windowHandle == _dragingWindowHandle)
|
|
|
{
|
|
|
_dragingWindowHandle = IntPtr.Zero;
|
|
|
}
|