Как получить положение мыши?

Я знаю, что могу получить позицию указателя мыши, выполнив xdotool getmouselocation . Мне нужна программа, которая запустится и сообщит мне позицию, на которую нажимает указатель мыши.

2 Solutions collect form web for “Как получить положение мыши?”

Вы можете использовать GNU Xnee для отслеживания событий мыши, а затем grep только события нажатия клавиши мыши. Но поскольку событие щелчка мыши не содержит положения мыши, вы должны сохранить его из предыдущего события или выполнить внешнюю команду (например, xdotool ), чтобы получить текущую позицию мыши.

Пример:

 $ cnee --record --mouse | awk '/7,4,0,0,1/ { system("xdotool getmouselocation") }' 

Он будет захватывать все левые клики. Измените последний номер в awk-команде, чтобы получить другие ключи (1 – левая мышь, 2 – средняя мышь, 3 – правая мышь) или удалите ее, чтобы захватить все из них.

Кроме того, название события, вероятно, может отличаться в вашей системе. Просто запустите $ cnee --record --mouse чтобы узнать его и заменить эту часть командой awk.

 // Set Netscape up to run the "captureMousePosition" function whenever // the mouse is moved. For Internet Explorer and Netscape 6, you can capture // the movement a little easier. if (document.layers) { // Netscape document.captureEvents(Event.MOUSEMOVE); document.onmousemove = captureMousePosition; } else if (document.all) { // Internet Explorer document.onmousemove = captureMousePosition; } else if (document.getElementById) { // Netcsape 6 document.onmousemove = captureMousePosition; } // Global variables xMousePos = 0; // Horizontal position of the mouse on the screen yMousePos = 0; // Vertical position of the mouse on the screen xMousePosMax = 0; // Width of the page yMousePosMax = 0; // Height of the page function captureMousePosition(e) { if (document.layers) { // When the page scrolls in Netscape, the event's mouse position // reflects the absolute position on the screen. innerHight/Width // is the position from the top/left of the screen that the user is // looking at. pageX/YOffset is the amount that the user has // scrolled into the page. So the values will be in relation to // each other as the total offsets into the page, no matter if // the user has scrolled or not. xMousePos = e.pageX; yMousePos = e.pageY; xMousePosMax = window.innerWidth+window.pageXOffset; yMousePosMax = window.innerHeight+window.pageYOffset; } else if (document.all) { // When the page scrolls in IE, the event's mouse position // reflects the position from the top/left of the screen the // user is looking at. scrollLeft/Top is the amount the user // has scrolled into the page. clientWidth/Height is the height/ // width of the current page the user is looking at. So, to be // consistent with Netscape (above), add the scroll offsets to // both so we end up with an absolute value on the page, no // matter if the user has scrolled or not. xMousePos = window.event.x+document.body.scrollLeft; yMousePos = window.event.y+document.body.scrollTop; xMousePosMax = document.body.clientWidth+document.body.scrollLeft; yMousePosMax = document.body.clientHeight+document.body.scrollTop; } else if (document.getElementById) { // Netscape 6 behaves the same as Netscape 4 in this regard xMousePos = e.pageX; yMousePos = e.pageY; xMousePosMax = window.innerWidth+window.pageXOffset; yMousePosMax = window.innerHeight+window.pageYOffset; } } 

Чтобы проверить, работает ли он в порядке или нет, используйте приведенный ниже код:

 window.status = "xMousePos=" + xMousePos + ", yMousePos=" + yMousePos + ", xMousePosMax=" + xMousePosMax + ", yMousePosMax=" + yMousePosMax 
  • Не удалось запустить сеанс Java GUI X11 из контейнера докеров
  • удалить фон с feh?
  • Как запустить эту программу C после запуска X-сервера?
  • конвертировать дисплей в монохромный
  • Как настроить xorg.conf для широкоэкранного VNC на безголовом Linux / Ubuntu?
  • Не удается запустить X-окно, поскольку отчет не может найти действительное устройство фреймбуфера
  • Display Server vs. Window Manager и графический драйвер?
  • Счетные окна
  • Сколько буферов находится в системе?
  • Почему весь текст невидим в Intellij?
  • Не удалось запустить X Server без экранов, no xorg.config для редактирования
  • Linux и Unix - лучшая ОС в мире.