मैं एक खिड़की पर एक माउस क्लिक अनुकरण करने की कोशिश कर रहा हूँ। मैं वर्तमान में सफलता के रूप में इस प्रकार है ऐसा करने के लिए है (मैं अजगर का उपयोग कर रहा है, लेकिन यह सामान्य Win32 पर लागू होना चाहिए):win32: माउस आंदोलन अनुकरण किए बिना एक क्लिक अनुकरण करें?
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)
यह ठीक काम करता है। हालांकि, अगर क्लिक मैन्युअल रूप से माउस को ले जा रहा है, तो कर्सर की स्थिति फेंक दी जाती है। माउस को घुमाने के बिना किसी दिए गए (x,y)
समन्वय पर सीधे क्लिक भेजने का कोई तरीका है? मैं बहुत ज्यादा नहीं भाग्य के साथ निम्नलिखित की तरह कुछ की कोशिश की है:
nx = x*65535/win32api.GetSystemMetrics(0)
ny = y*65535/win32api.GetSystemMetrics(1)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN | \
win32con.MOUSEEVENTF_ABSOLUTE,nx,ny)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | \
win32con.MOUSEEVENTF_ABSOLUTE,nx,ny)
मेरे पास निर्देशांक पूर्ण निर्देशांक हैं, हालांकि, खिड़की की स्थिति के सापेक्ष समन्वय नहीं करते हैं .. क्या पोस्टमेसेज उन्हें पूर्ण रूप से या खिड़की से संबंधित लोगों के रूप में प्रेषित करेगा? मैं वास्तव में पहले से ही hwnd प्राप्त कर सकता था, लेकिन सिर्फ मेरे coords का अनुवाद '(एक्स - बाएं, वाई - शीर्ष) ', जहां मुझे' GetWindowRect' से' बाएं 'और' शीर्ष 'मिला है, सही स्थान पर क्लिक नहीं किया गया था। – Claudiu
आह, वास्तव में। आपको एक पूर्ण क्लिक स्थिति को रिश्तेदार में बदलने की जरूरत है। PostMessage – Andrew
ah ty से पहले ScreenToClient (hWnd, lpPoint) का उपयोग करें, मैं कोशिश करूँगा! क्या इस मामले में पोस्टमेसेज और प्रेषण के बीच कोई अंतर है? – Claudiu