奇怪的WPF错误 - ITf Keystroke Mgr.Test KeyUp

时间:2009-06-11 01:32:22

标签: wpf

更新:我已经构建了一个没有代码的WPF应用程序,只需放入一个TextBox和一个按钮并构建它。运行此应用程序时,我可以在此用户的计算机中看到相同的错误。您可以单击该按钮,它可以正常工作,但只要您按下键盘上的某个键,应用程序就会抛出相同的错误。我应该重新安装.Net Framework吗?还有其他建议吗?

原始问题: 我在企业环境中通过ClickOnce分发了WPF应用程序。数十名用户正在运行我的应用程序而没有问题。但是,有1个用户无法运行该应用程序。如果我在他的机器中登录,我也会收到错误。发生任何异常时,用户的错误是标准错误消息。所以我需要远程调试它。

程序加载没有问题,只要TextBox失去焦点或用户按下某个键,它就会将焦点放在TextBox上,程序崩溃。

我已经将我的visual studio连接到我在有问题的机器上运行的应用程序,并设法捕获以下堆栈跟踪。

“在MS.Win32.UnsafeNativeMethods.ITfKeystrokeMgr.TestKeyUp(Int32 wParam,Int32 lParam,Boolean& eaten)    在System.Windows.Input.TextServicesContext.Keystroke(Int32 wParam,Int32 lParam,KeyOp op)    在System.Windows.Input.TextServicesManager.TextServicesKeystroke(TextServicesContext context,KeyEventArgs keyArgs,Boolean test)    在System.Windows.Input.TextServicesManager.PreProcessInput(Object sender,PreProcessInputEventArgs e)    System.Windows.InputManager.InputManager.ProcessInput(InputEventArgs输入)中的System.Windows.Input.InputManager.ProcessStagingArea()\ r \ n    在System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)    at System.Windows.Interop.HwndKeyboardInputProvider.ReportInput(IntPtr hwnd,InputMode mode,Int32 timestamp,RawKeyboardActions actions,Int32 scanCode,Boolean isExtendedKey,Boolean isSystemKey,Int32 virtualKey)    在System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(MSG& msg,布尔和处理)    在System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(MSG& msg,ModifierKeys修饰符)    在System.Windows.Interop.HwndSource.OnPreprocessMessage(Object param)    在System.Windows.Threading.ExceptionWrapper.InternalRealCall(委托回调,对象args,布尔isSingleParameter)    at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source,Delegate callback,Object args,Boolean isSingleParameter,Delegate catchHandler)    在System.Windows.Threading.Dispatcher.WrappedInvoke(委托回调,Object args,Boolean isSingleParameter,Delegate catchHandler)    在System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority,TimeSpan timeout,Delegate方法,Object args,Boolean isSingleParameter)    在System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority,Delegate方法,Object arg)    在System.Windows.Interop.HwndSource.OnPreprocessMessageThunk(MSG& msg,布尔和处理)    在System.Windows.Interop.HwndSource.WeakEventPreprocessMessage.OnPreprocessMessage(MSG& msg,布尔和处理)    在System.Windows.Interop.ComponentDispatcherThread.RaiseThreadMessage(MSG& msg)    在System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame框架)    在System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame框架)    在System.Windows.Threading.Dispatcher.Run()    在System.Windows.Application.RunDispatcher(Object ignore)    在System.Windows.Application.RunInternal(窗口窗口)    在System.Windows.Application.Run(窗口窗口)   在System.Windows.Application.Run()    在TIS.SamSeek.WpfClient.App.Main()“

我得到一个System.Argument异常,其描述为:“值不在预期范围内。”。

InnerException:null
来源:WindowsBase
TargetSite:{Void TestKeyUp(Int32,Int32,Boolean ByRef)} DeclaringType:{Name =“ITfKeystrokeMgr”FullName =“MS.Win32.UnsafeNativeMethods + ITfKeystrokeMgr”}
    汇编:{WindowsBase,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35}
    声明方法:'((System.Type)(((System.Reflection.MemberInfo)(((System.Exception)($ exception))。TargetSite))。DeclaringType))。DeclaringMethod'抛出类型为'System'的异常。出现InvalidOperationException“
    消息:“只能在Type.IsGenericParameter为true的Type上调用方法。”
    来源:“mscorlib”

我在代码中添加了各种跟踪,我很确定我的代码不会直接导致此异常。我的代码中没有任何KeyUp事件。

你有什么建议?

非常感谢

2 个答案:

答案 0 :(得分:1)

My Psychic Debugger表示这与平板电脑输入服务有关。 Office倾向于安装它的奇怪版本,这会导致问题。它是什么版本的Windows?

答案 1 :(得分:0)

保罗,你给了我一个很好的暗示。 Windows语言栏启用了手写和语音识别选项。当我关闭这些选项我的应用程序工作正常! 怎么了????!?!?!