Bizar WPF ошибка - ITfKeystrokeMgr.TestKeyUp - PullRequest
0 голосов
/ 11 июня 2009

ОБНОВЛЕНИЕ: я создал приложение WPF без кода, просто вставил TextBox и кнопку и собрал его. При запуске этого приложения я вижу ту же ошибку на компьютере этого пользователя. Вы можете нажать на кнопку, и она работает нормально, но как только вы нажимаете клавишу на клавиатуре, приложение выдает ту же ошибку. Должен ли я переустановить .Net Framework? Любые другие рекомендации?

Оригинальный вопрос: У меня есть приложение WPF, распространяемое через ClickOnce в корпоративной среде. Десятки пользователей запускают мое приложение без проблем. Однако есть один пользователь, который не может запустить приложение. Если я вхожу в его машину, я также получаю сообщение об ошибке. Ошибка для пользователя - стандартное сообщение об ошибке, когда происходит любое исключение. Поэтому мне нужно было отладить его удаленно.

Программа загружается без проблем и помещает фокус на TextBox, как только TextBox теряет фокус или пользователь нажимает клавишу, программа вылетает.

Я подключил свою визуальную студию к приложению, работающему на проблемной машине, и мне удалось записать следующую трассировку стека.

"в 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, KeyEventArgs keyArgs, логический тест) в System.Windows.Input.TextServicesManager.PreProcessInput (Отправитель объекта, PreProcessInputEventArgs e) в System.Windows.Input.InputManager.ProcessStagingArea () \ r \ n в System.Windows.Input.InputManager.ProcessInput (вход InputEventArgs) в System.Windows.Input.InputProviderSite.ReportInput (InputReport inputReport) в System.Windows.Interop.HwndKeyboardInputProvider.ReportInput (IntPtr hwnd, режим InputMode, временная метка Int32, действия RawKeyboardActions, Int32 scanCode, логический isExtendedKey, логический isSystemKey, Int32 virtualKey) в System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction (MSG & msg, Boolean & handled) в System.Windows.Interop.HwndSource.CriticalTranslateAccelerator (MSG & msg, модификаторы ModifierKeys) в System.Windows.Interop.HwndSource.OnPreprocessMessage (Object param) в System.Windows.Threading.ExceptionWrapper.InternalRealCall (обратный вызов делегата, аргументы объекта, логическое значение isSingleParameter) в System.Windows.Threading.ExceptionWrapper.TryCatchWhen (источник объекта, обратный вызов делегата, аргументы объекта, логический isSingleParameter, делегат catchHandler) в System.Windows.Threading.Dispatcher.WrappedInvoke (обратный вызов делегата, аргументы объекта, логическое значение isSingleParameter, делегат catchHandler) в System.Windows.Threading.Dispatcher.InvokeImpl (приоритет DispatcherPriority, время ожидания TimeSpan, метод Delegate, аргументы объекта, логический isSingleParameter) в System.Windows.Threading.Dispatcher.Invoke (приоритет DispatcherPriority, метод делегата, объектный аргумент) в System.Windows.Interop.HwndSource.OnPreprocessMessageThunk (MSG & msg, Boolean & handled) в System.Windows.Interop.HwndSource.WeakEventPreprocessMessage.OnPreprocessMessage (MSG & msg, Boolean & handled) в 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 (игнорирование объекта) в 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, версия = 3.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35}
Метод объявления: '((System.Type) (((System.Reflection.MemberInfo) (((System.Exception) ($ exception)). TargetSite)). DeclaringType)). DeclaringMethod' вызвал исключение типа 'System. InvalidOperationException '
Сообщение: «Метод может быть вызван только для типа, для которого Type.IsGenericParameter имеет значение true».
источник: "mscorlib"

Я поместил в код все виды трассировок, и я почти уверен, что мой код напрямую не вызывает это исключение. В моем коде нет событий KeyUp.

Что вы предлагаете?

Большое спасибо

Ответы [ 2 ]

1 голос
/ 11 июня 2009

My Psychic Debugger говорит, что это как-то связано со службой ввода с планшета. Office имеет тенденцию устанавливать странные версии, которые вызывают проблемы. Какая версия Windows это?

0 голосов
/ 11 июня 2009

Пол, ты дал мне отличный намек. В языковой панели Windows были включены параметры рукописного ввода и распознавания голоса. Когда я выключил эти опции, мое приложение работало нормально! Что с этим ??!?!?!?!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...