未处理WPF Xaml分析异常



PresentationFramework.dll 中发生类型为"System.Windows.Markup.XamlParseException"的未处理异常

其他信息:"对与指定绑定约束匹配的类型"JustSnap.MainWindow"的构造函数的调用引发了异常。"行号"3"和行位置"9"。

如果我点击查看详细信息:

{System.ComponentModel.Win32Exception (0x80004005): The specified module could not be found
   at JustSnap.UserActivityHook.Start(Boolean InstallKeyboardHook) in c:UsersTagonDocumentsVisual Studio 2013ProjectsJustSnapJustSnapUserActivityHook.cs:line 67
   at JustSnap.UserActivityHook.Start() in c:UsersTagonDocumentsVisual Studio 2013ProjectsJustSnapJustSnapUserActivityHook.cs:line 42
   at JustSnap.UserActivityHook..ctor() in c:UsersTagonDocumentsVisual Studio 2013ProjectsJustSnapJustSnapUserActivityHook.cs:line 38
   at JustSnap.MainWindow..ctor() in c:UsersTagonDocumentsVisual Studio 2013ProjectsJustSnapJustSnapMainWindow.xaml.cs:line 29}

我该如何找到问题并解决它?你需要知道什么来帮助我?

谨致问候,Tagon

编辑

public void Start(bool InstallKeyboardHook)
        {
            if (hKeyboardHook == 0 && InstallKeyboardHook)
            {
                KeyboardHookProcedure = new HookProc(KeyboardHookProc);
                hKeyboardHook = SetWindowsHookEx(
                    WH_KEYBOARD_LL,
                    KeyboardHookProcedure,
                    Marshal.GetHINSTANCE(
                    Assembly.GetExecutingAssembly().GetModules()[0]),
                    0);
                if (hKeyboardHook == 0)
                {
                    int errorCode = Marshal.GetLastWin32Error();
                    Stop(true, false);
                    throw new Win32Exception(errorCode);
                }
            }
        }
public void Stop(bool UninstallKeyboardHook, bool ThrowExceptions)
        {
            if (hKeyboardHook != 0 && UninstallKeyboardHook)
            {
                int retKeyboard = UnhookWindowsHookEx(hKeyboardHook);
                hKeyboardHook = 0;
                if (retKeyboard == 0 && ThrowExceptions)
                {
                    int errorCode = Marshal.GetLastWin32Error();
                    throw new Win32Exception(errorCode);
                }
            }
        }

更改:

Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0])

至:

System.Diagnostics.Process.GetCurrentProcess().MainModule.BaseAddress

这对我有帮助:))

最新更新