No nieco som nasiel na http://programujte.com/index.php?akce=clanek&cl=2007061704-modul-win32com
funguje mi to, ale ked to dam do skriptu ktory som spominal minule (http://timgolden.me.uk/python/win32_how_do_i/catch_system_wide_hotkeys.html), tak mi to ignoruje metodu SendKeys, neviete preco ? ked dam SendKeys samostatne do programu tak to v pohode ide. Myslim ze problem bude niekde v slucke "while user32.GetMessageA (byref (msg), None, 0, 0) != 0:"... ale nie som si isty ... tu je kod: *import ctypes from ctypes import wintypes import win32con import win32com.client byref = ctypes.byref user32 = ctypes.windll.user32 charC = 0x43 charV = 0x56 HOTKEYS = { 1 : (charC, win32con.MOD_WIN), # C + WIN 2 : (charV, win32con.MOD_WIN), # V + WIN } def handle_win_c (): print 'kombinacia win+c ide' def handle_win_v (): shell = win32com.client.Dispatch("WScript.Shell") shell.SendKeys("ABC", 0) print 'kombinacia win+v ide, ale ignoruje predchadzajuce 2 prikazy' HOTKEY_ACTIONS = { 1 : handle_win_c, 2 : handle_win_v, } */# # RegisterHotKey takes: # Window handle for WM_HOTKEY messages (None = this thread) # arbitrary id unique within the thread # modifiers (MOD_SHIFT, MOD_ALT, MOD_CONTROL, MOD_WIN) # VK code (either ord ('x') or one of win32con.VK_*) #/* for id, (vk, modifiers) in HOTKEYS.items (): print "Registering id", id, "for key", vk if not user32.RegisterHotKey (None, id, modifiers, vk): print "Unable to register id", id print '\n\nStlacte WIN+c, alebo WIN+v pre skusku\n' */# # Home-grown Windows message loop: does # just enough to handle the WM_HOTKEY # messages and pass everything else along. #/* try: msg = wintypes.MSG () while user32.GetMessageA (byref (msg), None, 0, 0) != 0: if msg.message == win32con.WM_HOTKEY: action_to_take = HOTKEY_ACTIONS.get (msg.wParam) if action_to_take: action_to_take () user32.TranslateMessage (byref (msg)) user32.DispatchMessageA (byref (msg)) finally: for id in HOTKEYS.keys (): user32.UnregisterHotKey (None, id) * greppi wrote: > greppi wrote: >> Caute, >> >> potreboval by som spravit program, ktory by mi bezal na pozadi, a >> keby som stlacil klavesu napr. WIN + V, tak by docielil to aby si WIN >> XP myslel, ze som stlacil uplne inu kombinaciu skratiek (napr. >> CTRL+ALT+V). >> >> V praxi to znamena, ze napr. pomocou WIN+V, vyvolam akciu (napr. >> spustim program), ktora sa vyvolava CTRL+ALT+V. >> >> /v Pythone som novy, tak prepacte ak sa pytam mozno somarinu, ale ani >> netusim ako by som toto mohol najst na nete, lebo dost tazko sa to >> vysvetluje aj v slovencine./ >> > na internete som nasiel, ako sa daju nastavit globalne skratky > http://timgolden.me.uk/python/win32_how_do_i/catch_system_wide_hotkeys.html > , ale este som neprisiel na to, ako spravit, aby sa po stlaceni > skratky (napr. WIN + V) stlacila "akoze" druha skratka (tu druhu > skratku stlaci python, tak aby si OS myslel ze som ju stlacil ja > manualne) ... > > cize, aby to bolo zrozumitelnejsie: > > chcel by som teraz program, ktory by po spusteni "stlacil" napr > CTRL+ALT+V, a aby si WIN XP myslel ze som stlacil CTRL+ALT+V ja manulane. > _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
