2014-03-04 3 views
0

내가 파이썬으로 마우스 클릭을 시뮬레이션하기 위해 노력하고있어이win32api 이동 마우스 사실상

내 코드는 다음 그러나이

mouse = Mouse() 
win32api.Sleep(2000) 
x = 2520 
y = 414 
mouse.leftClick(x, y) 

:

class Mouse(object): 

    def __init__(self): 
     self.x_res = win32api.GetSystemMetrics(0) 
     self.y_res = win32api.GetSystemMetrics(1) 

    def rightClick(self, x, y): 
     nx = x*65535/self.x_res 
     ny = y*65535/self.y_res 
     win32api.mouse_event(win32con.MOUSEEVENTF_ABSOLUTE|win32con.MOUSEEVENTF_MOVE,nx,ny) 
     win32api.Sleep(200) 
     win32api.mouse_event(win32con.MOUSEEVENTF_ABSOLUTE|win32con.MOUSEEVENTF_RIGHTDOWN,x,y,0,0) 
     win32api.Sleep(200) 
     win32api.mouse_event(win32con.MOUSEEVENTF_ABSOLUTE|win32con.MOUSEEVENTF_RIGHTUP,x,y,0,0) 
     win32api.Sleep(700) 

이 같은 코드를 사용 실제 마우스를 움직이게하여 사용자를 방해합니다. 그들은 마우스를 움직이지 않고 이벤트를 보낼 수있는 방법입니까?

+0

나는 "이것은 실제 마우스를 움직인다"고 시각화 한 유일한 사람입니까? 사용자가 마우스를 손에 쥐고 마우스 패드를 가로 질러 다른 위치로 움직이는 것을 의미합니까? – mhlester

+2

즉, 원래 위치를 기록하고 커서를 이동하고 클릭 한 다음 뒤로 이동해야한다고 생각합니다. – mhlester

+0

Windows에는 대개 하나의 마우스 만 있습니다. 그래서 @mhlester에 동의합니다. 하지만 두 번째 마우스를 추가 할 수 있습니다. – User

답변

1

입력을 위조하여이 작업을 자동화하면 현재 문제가 발생합니다. 가짜 입력을하면 시스템은 실제 입력과 같이 응답합니다. 커서를 원래 위치로 되돌릴 수는 있지만 사용자는 그것이 원래의 위치로 돌아가는 것을 보게 될 것입니다. 정말 좋은 일이 아닙니다.

가짜 입력을 포함하지 않는 문제에 대한 해결책이 필요합니다. 물론, 당신은 문제를 정교하게하지 않았고 단지 당신의 해결책만을 설명했기 때문에 문제를 짐작해야합니다. 일부 외부 응용 프로그램을 자동화하려고하는 것 같습니다. 플랫폼은 UIAutomation을 통해 플랫폼을 지원합니다.

+0

그래, 나는 30 분 정도 더 구체적인 신청을 요구하기보다는 실제 문제를 게시 할 것이다 – edi9999

+0

여기있다 : http://stackoverflow.com/questions/22198792/create-a-poker-table-scanner – edi9999

+0

우리는 먼저이 질문을 다루겠습니까? –

0

Windows MultiPoint Mouse SDK을 참조하는 Multiple mouse/mice/cursor?을 참조하십시오. CPNMouse 프로젝트가 더 이상 존재하지 않습니다. AFAICT.

+0

누가 downvoted 이유를 설명 할 수 있습니까? 두 개의 마우스 커서가있는 경우 필요에 따라 버튼을 클릭하여 이동시킬 수 있으며 사용자의 마우스 포인터는 그 자리에 놓습니다. 따라서 다른 대답이 더 나을 지 모르지만 나는 내 대답이 잘못되었다고 생각하지 않습니다. – Schollii