이 정보를 찾을 위치를 모르겠지만 마우스 입력 (또는 숨겨진 입력)을 얻는 방법을 알고 싶습니다. c. 표준 라이브러리. 기본적으로 c에서 마우스 (및 다른 입력) 입력에 대해 stdio를 사용할 수 있습니까? 또는 여러 플랫폼에서 최소한의 상호 호환이 가능한 라이브러리가 있습니다. 터미널 창에 마우스 좌표를 인쇄 할 수 있다면 충분할 것입니다.어떻게하면 가장 적은 라이브러리를 사용하여 마우스 입력을 추적 할 수 있습니까
답변
여기에는 0 개의 표준이 아닌 라이브러리 접근 방식이 있습니다./dev/input/event #가있는 곳에서 실행됩니다.
#include <linux/input.h>
#include <fcntl.h>
int main(int argc, char **argv)
{
int fd;
if ((fd = open("/dev/input/mice", O_RDONLY)) < 0) {
perror("evdev open");
exit(1);
}
struct input_event ev;
while(1) {
read(fd, &ev, sizeof(struct input_event));
printf("value %d, type %d, code %d\n",ev.value,ev.type,ev.code);
}
return 0;
}
Windows에서 Win32 API를 사용하여 무시 무시한 작업을 수행하고 메시지 시스템에 연결해야합니다.
간단히 말해, 아니요, C에는 이에 대한 표준이 없습니다.
SDL 내가 믿는 속임수를 사용합니다.
플랫폼 및 운영 체제에 따라 다릅니다. 마우스 (또는 HID) 이벤트를 직접 "추적"하려면 드라이버를 작성하거나 드라이버를 찾아야 할 수 있습니다. 드라이버는 포트를 모니터링하고 마우스 데이터 (메시지)를 수신합니다.
이벤트 구동 시스템에서 은 마우스 이벤트 메시지에을 등록해야합니다. 일부 OS는 메시지를 모든 작업 (예 : Windows)에 브로드 캐스팅하고 다른 사용자는 이벤트를 가입자에게만 보냅니다.
이것은 특정 답변을 받기에는 너무 일반적인 질문입니다.
저는 입력 프로그래밍을 처음 시작하기 때문에 일반적입니다. 어디서부터 시작해야할지 모르겠습니다! 좀 더 구체적으로 말하자면, 필자는 드라이버를 쓰지 않고도 얻을 수있는 수준으로 낮게하고 싶다. 저는 Windows와 Linux에서 tabletPC 입력을 프로그래밍하는 데 관심이 있습니다. 그러나 어디에서나이를 수행 할 수있는 교차 플랫폼 방법을 모색 한 적이 있습니다. 그래서 대신 하나를 쓰고 싶습니다 (존재하지 않는다면). 낮은 수준으로 OS 특정 라이브러리에 덜 의존적 이길 원합니다. 당신이 그것에 대답 할 수 있거나 나 자신을 찾기 위해 옳은 방향으로 나를 안내 할 수 있다면 그것은 놀라 울 것입니다! – TimE
@TimE 크로스 플랫폼 게임 라이브러리는 이미 오랫동안 최고의 정밀도로 마우스 입력을 추적 해 왔습니다. 일부는 원시 마우스 입력에도 액세스 할 수 있습니다. 하나를 사용하고 싶지 않다면 적어도 해결책을 찾을 수있는 좋은 곳입니다. GLUT & SDL은 모두보기에 적합한 장소이며, 둘 다 오픈 소스입니다. 행운을 빕니다. – m0s
- 1. 카메라 입력을 마우스 (동작 추적)로 사용
- 2. 마우스 위치 뒤에 q 추적 할 수 있습니까?
- 3. 어떻게하면 winmo 전화를 제어 할 수 있습니까?
- 4. 어떻게하면 X11을 정적으로 컴파일 할 수 있습니까?
- 5. 어떻게하면 DLL을 통해 호출 할 수 있습니까?
- 6. 사용자 마우스 추적
- 7. 어떻게하면 QtWebView에서 링크를 클릭 할 수 있습니까?
- 8. 어떻게하면 XAML에서이 작업을 수행 할 수 있습니까?
- 9. jQuery 부드러운 마우스 추적
- 10. 어떻게하면 gdbvim을 사용하여 프로세스에 연결할 수 있습니까?
- 11. 엔터프라이즈 라이브러리를 사용하여 .Net에서 Oracle FUNCTION을 호출 할 수 있습니까?
- 12. 어떻게하면 이것을 제거 할 수 있습니까?
- 13. "어떻게하면 C++ 프로젝트에서 vi를 사용하여 함수로 점프 할 수 있습니까?
- 14. 어떻게하면 java.util.Calendar를 사용하여 이슬람 달력을 반환 할 수 있습니까?
- 15. 어떻게하면 델파이를 사용하여 인터넷에서 프로세스를 분리 할 수 있습니까?
- 16. 어떻게하면 파이썬을 사용하여 쉽게 변수를 문자열로 확장 할 수 있습니까?
- 17. 어떻게하면 Google 스프레드 시트를 PHP를 사용하여 플롯 할 수 있습니까?
- 18. 어떻게하면 java.text.NumberFormat을 사용하여 단위를 추가 할 수 있습니까?
- 19. GWT를 사용하여 페이지 위로 마우스 이동 추적
- 20. 어떻게하면 Nhibernate 트랜잭션이 실패 할 수 있습니까?
- 21. 어떻게하면 % d을 C로 인쇄 할 수 있습니까
- 22. 어떻게하면 haskell에서 목록을 인쇄 할 수 있습니까?
- 23. 어떻게하면 SQL을 eSQL로 변환 할 수 있습니까?
- 24. 어떻게하면 CMD.exe에서 Powershell로 전환 할 수 있습니까?
- 25. 어떻게하면 INSERT에서 SELECT를 할 수 있습니까?
- 26. 어떻게하면 Cocoa로 폴더를 모니터링 할 수 있습니까?
- 27. 어떻게하면 ReaderWriterLock을 시작하고 종료 할 수 있습니까?
- 28. 어떻게하면 Windows를 종료 할 수 있습니까?
- 29. 어떻게하면 git에서 "diff -c"할 수 있습니까?
- 30. 어떻게하면 모달보기에서 UITableViewGrouped를 빌드 할 수 있습니까?
실제로 나를 위해 키보드 신호를 캡처하고 있습니다. – LukeN
이것은 크로스 플랫폼이 아닙니다 –
@klez : 저는이 작업을 수행하는 플랫폼이 실제로 존재하지 않는다고 생각합니다. –