अच्छी खबर यह है कि ऐसा करने का एक तरीका है।
मध्यवर्ती समाचार यह है कि यह अच्छी तरह से प्रलेखित नहीं है।
बुरी खबर यह है कि यह केवल कुछ प्लेटफॉर्म पर काम करता है।
अन्य मध्यवर्ती समाचार यह है कि आप कम से कम कुछ प्लेटफार्मों पर कम से कम कदम उठा सकते हैं।
Tcl/टी में यह करने के लिए जिस तरह से -warp 1
के साथ एक <Motion>
घटना पैदा कर रहा है। इस पर प्रलेखन स्पैस है, और कुछ अलग-अलग पृष्ठों के चारों ओर बिखरा हुआ है (bind
पर शुरू करें), लेकिन विवरण here वर्णित हैं। असल में, यह सिर्फ यह है:
event generate . <Motion> -warp 1 -x 50 -y 50
तो, आप टिंकर से यह कैसे करते हैं?
खैर, event_generate
कहीं भी दर्ज है नहीं, और न तो <Motion>
घटना, या warp
पैरामीटर है ... लेकिन यह अगर आप जानते हैं Tkinter के लिए कैसे टी नक्शे यह पता लगाने की बहुत सरल है:
window.event_generate('<Motion>', warp=True, x=50, y=50)
और यह वास्तव में एक घटना उत्पन्न करता है, जैसा कि आप <Motion>
बाध्यकारी द्वारा देख सकते हैं। यहाँ एक सरल परीक्षण कार्यक्रम है:
from tkinter import *
root = Tk()
def key(event):
root.event_generate('<Motion>', warp=True, x=50, y=50)
def motion(event):
print('motion {}, {}'.format(event.x, event.y))
root.bind('<Key>', key)
root.bind('<Motion>', motion)
root.mainloop()
भागो यह, यकीन है कि यह, ध्यान केंद्रित किया है कर्सर चारों ओर ले जाने बनाने के लिए खिड़की पर क्लिक करें, और आप इसे कुछ इस तरह का प्रिंट आउट देखेंगे:
motion 65, 69
motion 65, 70
motion 65, 71
एक कुंजी मारा, और यह इस प्रिंट आउट करेंगे:
motion 50, 50
कौन सा महान कर्सर सोच में सिवाय इसके कि यह वास्तव में अपने कर्सर ले जाने में सक्षम नहीं हो सकता है ... है, ऐसी स्थिति में यह सब करता है चाल टी है ले जाया गया।
मैक के लिए, आप NSMouseMoved
ईवेंट जेनरेट और भेजना चाहते हैं। आसान तरीका यह करने के लिए pyobjc
साथ है (जो आप एप्पल के अजगर उपयोग कर रहे हैं में बनाया गया है, अन्यथा आप इसे स्थापित करने के लिए है):
app = Foundation.NSApplication.sharedApplication()
event = Foundation.NSEvent.mouseEventWithType_location_modifierFlags_timestamp_windowNumber_context_eventNumber_clickCount_pressure_(
Foundation.NSMouseMoved, (50, 50), 0, 0,
app.mainWindow().windowNumber(), None, 0, 0, 0.0)
app.sendEvent_(event)
Windows के लिए, आप SetCursorPos
एपीआई कॉल करें, या उत्पन्न करना चाहते हैं और एक माउस भेजें। पूर्व के साथ काम नहीं करेगा, उदाहरण के लिए, डायरेक्टएक्स गेम्स; उत्तरार्द्ध दूरस्थ डेस्कटॉप के साथ काम नहीं कर सकता है। इस मामले के लिए, आप शायद पूर्व चाहते हैं। किसी भी तरह से, यह करने के लिए सबसे आसान तरीका है pywin32
स्थापित करने के लिए है, और फिर यह सिर्फ है:
win32api.SetCursorPos((50, 50))
सूचक चलती करने के बजाय, शायद सूचक नियंत्रण * गति * जिसके साथ दुनिया घूमता की स्थिति बनाने - केंद्र से आगे तेजी से घूर्णन। – unutbu
यह एक महान सुझाव है, और मैं उस नियंत्रण योजना का उपयोग करता था, लेकिन यह उपयोगकर्ता के अनुकूल नहीं है जैसा कि मैं चाहता था, इसलिए मुझे ऐसा लगता है कि पहले व्यक्ति शूटर गेम को नियंत्रित किया जाता है – sam