none
WPF 에서의 가상 키보드 개발 RRS feed

  • 질문

  • 안녕하세요?

    WPF로 키오스크 앱을 개발중인 개발자입니다.

    한국어 입력 가상 키보드를 운영중에 이슈가 있어 문의합니다.

    # 문제

    - 한국어 키보드 입력을 만들었는데, 간혈적으로 아래와 같이 에러가 뜨며 프로그램이 죽습니다. 

    - 솔루션으로 https://stackoverflow.com/questions/24673421/wpf-crashing-by-environment-failfast?noredirect=1#comment38292195_24673421 이 방법을 찾았는데 쓰기가 애매합니다.

    - 왜냐하면 윈도우 기본 가상 키보드를 저희 CS 요원들이 잘 사용중이거든요..

    - 왜 이런 문제가 발생하는 걸까요? 그리고 다른 해결책은 없는 걸까요?

    Faulting application name: Application.exe, version: 2.3.13.271, time stamp: 0xa4726363 Faulting module name: PresentationFramework.ni.dll, version: 4.6.1586.0, time stamp: 0x575a1951 Exception code: 0x80131623 Fault offset: 0x0000000001109170 Faulting process id: 0xbdc Faulting application start time: 0x01d5f1b7e917ff0c Faulting application path: C:\Application.exe Faulting module path: C:\Windows\assembly\NativeImages_v4.0.30319_64\Presentatio5ae0f00f#\a3317d3137e1e1302c5f8f34ffce1622\PresentationFramework.ni.dll Report Id: da4ebd8f-d0ac-49bb-97af-8156847188da Faulting package full name: Faulting package-relative application ID:

    응용 프로그램: Application.exe
    Framework 버전: v4.0.30319
    설명: 응용 프로그램이System.Environment.FailFast(문자열 메시지)를 통해 프로세스 종료를 요청했습니다.
    메시지: 복구할 수 없는 시스템 오류입니다.
    스택:
       위치: System.Environment.FailFast(System.String)
       위치: System.Windows.Documents.TextStore.SetFinalDocumentState(MS.Internal.Documents.UndoManager, System.Collections.Stack, Int32, Int32, Int32, Int32, Int32)
       위치: System.Windows.Documents.TextStore.HandleCompositionEvents(Int32)
       위치: System.Windows.Documents.TextStore.GrantLockWorker(LockFlags)
       위치: System.Windows.Documents.TextStore.RequestLock(LockFlags, Int32 ByRef)
       위치: MS.Win32.UnsafeNativeMethods+ITfKeystrokeMgr.KeyDown(Int32, Int32, Boolean ByRef)
       위치: MS.Win32.UnsafeNativeMethods+ITfKeystrokeMgr.KeyDown(Int32, Int32, Boolean ByRef)
       위치: System.Windows.Input.TextServicesContext.Keystroke(Int32, Int32, KeyOp)
       위치: System.Windows.Input.TextServicesManager.PostProcessInput(System.Object, System.Windows.Input.ProcessInputEventArgs)
       위치: System.Windows.Input.InputManager.RaiseProcessInputEventHandlers(System.Windows.Input.ProcessInputEventHandler, System.Windows.Input.ProcessInputEventArgs)
       위치: System.Windows.Input.InputManager.ProcessStagingArea()
       위치: System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs)
       위치: System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport)
       위치: System.Windows.Interop.HwndKeyboardInputProvider.ReportInput(IntPtr, System.Windows.Input.InputMode, Int32, System.Windows.Input.RawKeyboardActions, Int32, Boolean, Boolean, Int32)
       위치: System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(System.Windows.Interop.MSG ByRef, Boolean ByRef)
       위치: System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(System.Windows.Interop.MSG ByRef, System.Windows.Input.ModifierKeys)
       위치: System.Windows.Interop.HwndSource.OnPreprocessMessage(System.Object)
       위치: System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
       위치: System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
       위치: System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
       위치: System.Windows.Threading.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority, System.Delegate, System.Object)
       위치: System.Windows.Interop.HwndSource.OnPreprocessMessageThunk(System.Windows.Interop.MSG ByRef, Boolean ByRef)
       위치: System.Windows.Interop.ThreadMessageEventHandler.Invoke(System.Windows.Interop.MSG ByRef, Boolean ByRef)
       위치: System.Windows.Interop.ComponentDispatcherThread.RaiseThreadMessage(System.Windows.Interop.MSG ByRef)
       위치: System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
       위치: System.Windows.Application.RunDispatcher(System.Object)
       위치: System.Windows.Application.RunInternal(System.Windows.Window)
       위치: Application.App.Main()


    2020년 3월 4일 수요일 오후 12:09

모든 응답

  • 안녕하세요

    코드를 공유해주실수 있다면 제가 테스트해보겠습니다. 그리고 해당 이슈는 한곡어로 입력할때 발생하는가요?

    MSDN Community Support Ricky

    다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.

    2020년 3월 6일 금요일 오전 8:01
    중재자