なんかいろいろこんぴゅーたかんけいのなぐりがき

なんか勉強しているこんぴゅーた関係のことのメモやそれ以外のことを書こうかなあ...

logs

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

日曜プログラミング with python

 土日にpythonでwindowsアプリケーションを作ってみたんでソースを保存メモっときます

クリップボードカタパルト:クリップボードの文字列を Alt+o でスタックしていって Alt + p でクリップボードにポップする 終了はAlt + q

あとぜんぜん関係ないがメモ python では !variable -> not variable という風に否定にはnotを使う
ちなみにCでいう && は and に || は or  という風に記述する

#-*- coding: utf-8 -*-
import pythoncom,pyHook,sys,ctypes,time
import win32clipboard as CB
#import SendKeys

stack = []
str=""
def happen(event):
global hm
if event.IsAlt()==32 and event.Key=="Q":
hm.UnhookKeyboard()
ctypes.windll.user32.MessageBoxA(0,"CBCatapult was exit","CBCatapult",0x10000)
sys.exit()
if event.IsAlt()==32 and event.Key=="O":
push()
if event.IsAlt()==32 and event.Key=="P":
catapult()
return True

def push():
CB.OpenClipboard()
str = CB.GetClipboardData(1)
if str == stack[len(stack) -1]:
print "equal : not pushed"
else:
stack.append(str)
print "pushed"

CB.CloseClipboard()
print stack

def catapult():
if len(stack) <= 1:
print "cant pop"
return
CB.OpenClipboard()
CB.EmptyClipboard()
del stack[len(stack)-1:]
if len(stack) <=1:
str = stack[0]
CB.SetClipboardText(str)
ctypes.windll.user32.keybd_event(0x11,0,0,0)
ctypes.windll.user32.keybd_event(0x56,0,0,0)
time.sleep(2)
ctypes.windll.user32.keybd_event(0x56,0,0x2,0)
ctypes.windll.user32.keybd_event(0x11,0,0x2,0)
else:
str = stack.pop()
CB.SetClipboardText(str)
ctypes.windll.user32.keybd_event(0x11,0,0,0)#以下4行はCtrl + v を入力して貼り付けをするコードだが、なぜかうまくいかない 0x11がCtrl 0x56が v の仮想コードのはず
ctypes.windll.user32.keybd_event(0x56,0,0,0)
ctypes.windll.user32.keybd_event(0x56,0,0x2,0)
ctypes.windll.user32.keybd_event(0x11,0,0x2,0)

CB.CloseClipboard()
print "pop"


hm = pyHook.HookManager()
hm.KeyDown = happen
hm.HookKeyboard()

CB.OpenClipboard()
stack.append(CB.GetClipboardData(1))
CB.CloseClipboard()

pythoncom.PumpMessages()

マウスって何喰えんの?(プログラム名(仮)):十字キーでマウスカーソルを移動 Alt + A でクリック、Alt+Qで終了 Alt+Lでほかのプログラムにキー入力を送らなくすることをトグルする

import pythoncom,pyHook,win32api,sys,win32con,win32gui,ctypes
from ctypes import *
#import SendKeys

point = [0,0]
get_point = 0,0
a = 1
pow = 4
xv = 0
yv = 0
window=0
lock = False

user32 = windll.user32

def keyEvent(event):
global a,xv,yv,pow,lock
if event.IsAlt()==32 and event.Key=="Q":
hm.UnhookKeyboard()
ctypes.windll.user32.MessageBoxA(0,"CBCatapult was exit","CBCatapult",0x10000)
sys.exit()
if event.IsAlt()==32 and event.Key=="A":
user32.mouse_event(0x2,0,0,0,0)
user32.mouse_event(0x4,0,0,0,0)
return not lock
if event.IsAlt()==32 and event.Key=="L":
if lock:
lock = False
else:
lock = True

if event.IsAlt()==32 and event.Key=="Down":
if pow > 1:
pow -= 3
print pow
else :
pow = 1

return not lock
if event.IsAlt()==32 and event.Key=="Up":
if pow < 500:
pow += 3
print pow
return not lock

if event.Key=="Left":
if xv <0 :
a +=1*pow
else :
a = pow
xv = -a
yv = 0

move()
return not lock
if event.Key=="Right":
if xv >0 :
a +=1*pow
else :
a = pow
xv = a
yv = 0

move()
return not lock
if event.Key=="Up":
if yv <0 :
a +=1*pow
else :
a = pow
xv = 0
yv = -a

move()
return not lock
if event.Key=="Down":
if yv >0 :
a +=1*pow
else :
a = pow
xv = 0
yv = a
move()
return not lock

return not lock

def mouseEvent(event2):
global window
window = event2.Window
return True

def move():
global xv,yv
get_point = win32api.GetCursorPos()
point[0] = xv + get_point[0]
point[1] = yv + get_point[1]
win32api.SetCursorPos(point)



hm = pyHook.HookManager()
hm.KeyDown = keyEvent
hm.HookKeyboard()
hm2 = pyHook.HookManager()
hm2.MouseAll = mouseEvent
hm2.HookMouse()

pythoncom.PumpMessages()
スポンサーサイト

Paging Navigation

Navigations, etc.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。