2008-09-26 7 views
4

나는 CodeProject.com for a low-level keyboard hook에서 찾은 코드를 사용하고 있습니다. 유일한 문제는 모노로 동작하지 않는 외부 DLL 호출을 사용한다는 것입니다. 누군가가 그 코드와 같은 것을 수행하는 방법을 알고 있지만, .net을 사용하는 Windows와 모노를 사용하는 리눅스에서 모두 실행되는지 궁금합니다.C# 모노 - 로우 레벨 키보드 후크

편집 : 내가 뭘하려고하는지 명확히 해두 자. 나는 Dashboard like application을 만들고있다. 이 프로그램은 시스템 트레이에 있으며 사용자가 단축키를 누르면 모든 가젯이 나타납니다. 따라서 프로그램에는 포커스가 없으므로 일반적으로 키 입력을받지 않으므로 저수준 키보드 후크를 사용하고 사용자가 핫키로 정의한 두 개의 키를 연결합니다. 하지만 난 그것을 사용하여 Linux에서 모노를 사용하여 작동하지 않는 Windows DLL 호출을 사용하고 있습니다. 그래서 같은 일을 할 수있는 방법이 있는지 궁금하지만, 모노로 리눅스에서 돌아갈 것인가?

+0

왜 이것을 사용 하시겠습니까? – Bernard

+0

Linux에서 저수준 키보드 후크를 추가하는 방법에 대한 답변이 실제로 없기 때문에 대답을 삭제했습니다. –

+0

나는 약간의 설명을 편집하고 추가했다. – Joel

답변

3

그것은 단지 닷넷을 사용하여이 동작을 얻을 수 없습니다. (Windows, Linux, Mac OS)에서 실행되는 각 플랫폼에 대해 바이너리 드라이버를 사용해야합니다. "추가"dll/so/dylib를 배포 할 필요가 없도록 P/Invoke (실행중인 OS 검색, 적절한 시스템 라이브러리 호출) 만 사용하는 것이 가능할 수 있습니다.

+2

그래서 나는 윈도우즈와 리눅스에서 한가지해야 할 일이 있을까요? 좋아, 나는 그것을해야 할 것 같았다. 그렇다면 리눅스에서 어떻게 할 수 있습니까? – Joel

4

캡처하려는 것을 알지 못하면 무엇이 효과가 있을지 확신하기 어렵습니다. Application.AddMessageFilter를 사용하여 보길 원할 수 있습니다.

은 여기에 있습니다 : http://dn.codegear.com/article/30129