本文整理匯總了Python中win32con.VK_SHIFT屬性的典型用法代碼示例。如果您正苦於以下問題:Python win32con.VK_SHIFT屬性的具體用法?Python win32con.VK_SHIFT怎麽用?Python win32con.VK_SHIFT使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類win32con
的用法示例。
在下文中一共展示了win32con.VK_SHIFT屬性的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: click_drag
# 需要導入模塊: import win32con [as 別名]
# 或者: from win32con import VK_SHIFT [as 別名]
def click_drag(x :int, y :int, x2 :int, y2 :int) -> None:
"""Click at pixel xy."""
x += Window.x
y += Window.y
x2 += Window.x
y2 += Window.y
lParam = win32api.MAKELONG(x, y)
lParam2 = win32api.MAKELONG(x2, y2)
# MOUSEMOVE event is required for game to register clicks correctly
win32gui.PostMessage(Window.id, wcon.WM_MOUSEMOVE, 0, lParam)
while (win32api.GetKeyState(wcon.VK_CONTROL) < 0 or
win32api.GetKeyState(wcon.VK_SHIFT) < 0 or
win32api.GetKeyState(wcon.VK_MENU) < 0):
time.sleep(0.005)
win32gui.PostMessage(Window.id, wcon.WM_LBUTTONDOWN,
wcon.MK_LBUTTON, lParam)
time.sleep(userset.LONG_SLEEP * 2)
win32gui.PostMessage(Window.id, wcon.WM_MOUSEMOVE, 0, lParam2)
time.sleep(userset.SHORT_SLEEP)
win32gui.PostMessage(Window.id, wcon.WM_LBUTTONUP,
wcon.MK_LBUTTON, lParam2)
time.sleep(userset.MEDIUM_SLEEP)
示例2: ctrl_click
# 需要導入模塊: import win32con [as 別名]
# 或者: from win32con import VK_SHIFT [as 別名]
def ctrl_click(x :int, y :int) -> None:
"""Clicks at pixel x, y while simulating the CTRL button to be down."""
x += Window.x
y += Window.y
lParam = win32api.MAKELONG(x, y)
while (win32api.GetKeyState(wcon.VK_CONTROL) < 0 or
win32api.GetKeyState(wcon.VK_SHIFT) < 0 or
win32api.GetKeyState(wcon.VK_MENU) < 0):
time.sleep(0.005)
win32gui.PostMessage(Window.id, wcon.WM_KEYDOWN, wcon.VK_CONTROL, 0)
win32gui.PostMessage(Window.id, wcon.WM_LBUTTONDOWN,
wcon.MK_LBUTTON, lParam)
win32gui.PostMessage(Window.id, wcon.WM_LBUTTONUP,
wcon.MK_LBUTTON, lParam)
win32gui.PostMessage(Window.id, wcon.WM_KEYUP, wcon.VK_CONTROL, 0)
time.sleep(userset.MEDIUM_SLEEP)
示例3: click
# 需要導入模塊: import win32con [as 別名]
# 或者: from win32con import VK_SHIFT [as 別名]
def click(x :int, y :int, button :str ="left", fast :bool =False) -> None:
"""Click at pixel xy."""
x += Window.x
y += Window.y
lParam = win32api.MAKELONG(x, y)
# MOUSEMOVE event is required for game to register clicks correctly
win32gui.PostMessage(Window.id, wcon.WM_MOUSEMOVE, 0, lParam)
while (win32api.GetKeyState(wcon.VK_CONTROL) < 0 or
win32api.GetKeyState(wcon.VK_SHIFT) < 0 or
win32api.GetKeyState(wcon.VK_MENU) < 0):
time.sleep(0.005)
if button == "left":
win32gui.PostMessage(Window.id, wcon.WM_LBUTTONDOWN,
wcon.MK_LBUTTON, lParam)
win32gui.PostMessage(Window.id, wcon.WM_LBUTTONUP,
wcon.MK_LBUTTON, lParam)
else:
win32gui.PostMessage(Window.id, wcon.WM_RBUTTONDOWN,
wcon.MK_RBUTTON, lParam)
win32gui.PostMessage(Window.id, wcon.WM_RBUTTONUP,
wcon.MK_RBUTTON, lParam)
# Sleep lower than 0.1 might cause issues when clicking in succession
if fast:
time.sleep(userset.FAST_SLEEP)
else:
time.sleep(userset.MEDIUM_SLEEP)
示例4: send_string
# 需要導入模塊: import win32con [as 別名]
# 或者: from win32con import VK_SHIFT [as 別名]
def send_string(string :str) -> None:
"""Send one or multiple characters to the Window."""
# Ensure it's a string by converting it to a string
if isinstance(string, float):
string = int(string)
for c in str(string):
# Make sure no key modifier is pressed
while (win32api.GetKeyState(wcon.VK_CONTROL) < 0 or
win32api.GetKeyState(wcon.VK_SHIFT) < 0 or
win32api.GetKeyState(wcon.VK_MENU) < 0):
time.sleep(0.005)
vkc = win32api.VkKeyScan(c) # Get virtual key code for character c
# Only one keyup or keydown event needs to be sent
win32gui.PostMessage(Window.id, wcon.WM_KEYDOWN, vkc, 0)
示例5: fire_key_event
# 需要導入模塊: import win32con [as 別名]
# 或者: from win32con import VK_SHIFT [as 別名]
def fire_key_event(self, msg):
key = msg[2]
keyState = 0
if win32api.GetKeyState(win32con.VK_CONTROL) & 0x8000:
keyState = keyState | win32con.RIGHT_CTRL_PRESSED | win32con.LEFT_CTRL_PRESSED
if win32api.GetKeyState(win32con.VK_SHIFT) & 0x8000:
keyState = keyState | win32con.SHIFT_PRESSED
if win32api.GetKeyState(win32con.VK_MENU) & 0x8000:
keyState = keyState | win32con.LEFT_ALT_PRESSED | win32con.RIGHT_ALT_PRESSED
keyinfo = key, keyState
# Special hacks for the dead-char key on non-US keyboards.
# (XXX - which do not work :-(
event = self.keymap.get( keyinfo )
if event is None:
## if key == 220: # Dead key
## return 1
## # Translate the raw scancode into an Ascii character.
## print "translating", key, "(with state)", keyState,
## key = win32ui.TranslateVirtualKey(key)
## print "Got back key", `key`,
#### if key is None:
#### return 1 # Dead-key - don't handle at all!!!
## if key:
## # Then back to a "normalized" scan-code.
## key = keycodes.get_scan_code(key[0])
## keyinfo = key, keyState
## event = self.keymap.get( keyinfo )
## if event is None:
return 1
return self.fire(event, None)
示例6: OnFileRun
# 需要導入模塊: import win32con [as 別名]
# 或者: from win32con import VK_SHIFT [as 別名]
def OnFileRun( self, id, code ):
" Called when a FileRun message is received. "
import scriptutils
showDlg = win32api.GetKeyState(win32con.VK_SHIFT) >= 0
scriptutils.RunScript(None, None, showDlg)
示例7: OnKeyTab
# 需要導入模塊: import win32con [as 別名]
# 或者: from win32con import VK_SHIFT [as 別名]
def OnKeyTab(self, key):
if not self.GetDocument().CheckMakeDocumentWritable(): return 0
start, end = self._obj_.GetSel()
if start==end: # normal TAB key
self.Indent()
return 0 # we handled this.
# Otherwise it is a block indent/dedent.
if start>end:
start, end = end, start # swap them.
startLine = self._obj_.LineFromChar(start)
endLine = self._obj_.LineFromChar(end)
self.BlockDent(win32api.GetKeyState(win32con.VK_SHIFT)>=0, startLine, endLine)
return 0