다른 포스팅에서 한번 다룬 내용이지만 그 포스팅은 종합적인 내용이라 검색하기 좋게 분리한 내용입니다. 연관글 영역 1. 증상 콘솔 애플리케이션(console application)에서 'F11'을 누르면 전체화면으로 전환됩니다. 이렇게 되면 키 이벤트로 'F11'을 받을 수 없게 됩니다. 2. 해결 'WinAPI'를 이용하여 '시스템 입력'을 꺼주면 됩니다. '시스템 입력'을 끄게 되면 'Ctrl + C' 같은 시스템 단축키도 동작하지 않습니다. 'WinAPI'를 사용하려면 1) 애플리케이션의 핸들을 가지고 와서 2) 콘솔 모드를 읽은 후 3) 읽은 모드를 변경하고 4) 변경된 콘솔 모드를 적용 하면 됩니다. 2-1. 사용할 함수 마샬링 필요한 함수는 GetStdHandle : 애플리케이션의 핸들을 가지..
다른 포스팅에서 한번 다룬 내용이지만 그 포스팅은 종합적인 내용이라 검색하기 좋게 분리한 내용입니다. 연관글 영역 1. 증상 콘솔 애플리케이션(console application)에서 콘솔 창을 클릭하거나 드래그하면 응용프로그램이 멈추는 현상 있습니다. 이것은 '빠른 편집 모드(Quick Edit Mode)'가 활성화 되어 있기 때문입니다. 2. 해결 'WinAPI'를 이용하여 '빠른 편집 모드'를 꺼주면 됩니다. 'WinAPI'를 사용하려면 1) 애플리케이션의 핸들을 가지고 와서 2) 콘솔 모드를 읽은 후 3) 읽은 모드를 변경하고 4) 변경된 콘솔 모드를 적용 하면 됩니다. 2-1. 사용할 함수 마샬링 필요한 함수는 GetStdHandle : 애플리케이션의 핸들을 가지고 오는 함수 GetConsole..
별생각 없이 콘솔로 프로그램을 만들었는데.... 기본적으로 있는 콘솔 모드들 때문에 이상한 동작을 하는 경우가 있습니다. 대표적인 것이 "빠른 편집 모드(Quick Edit Mode)"라는 것인데 콘솔 창을 클릭하거나 드레그하면 응용프로그램이 멈추는 현상입니다. 이 모드를 바꾸는 방법을 알아봅시다. 연관글 영역 1. WinApi를 사용해야 한다. 몇 가지 방법들이 있지만 결국은 WinApi를 이용하는 것이 가장 편합니다. WinApi로 콘솔 모드를 변경하려면 1) 디바이스(여기서는 콘솔)의 핸들을 받아서 2) 콘솔 모드 설정값을 받아온 뒤 3) 받은 설정값이 원하는 설정을 추가(혹은 제거)하고 4) 콘솔 모드 설정값을 다시 설정합니다. 설정값이 uint(UInt32)로 된 플래그(flag) 값이라 비트연..