2016-08-23 19 views
0

TkinterアプリケーションでAlt + Tabの組み合わせ、特にタブを無効にするにはどうしたらいいですか? -でAltキーとF4キーを無効にすると、 "break" -が返されますが、Tabキーを無効にすることはできません。TkinterアプリケーションでAlt + Tabの組み合わせを無効にする

+0

ユーザーが 'ALT-tab'キーボードショートカットを使用してからロックアウトされるようにしたいですか?これは不必要に制限的な機能のように思えますが、なぜこれを達成したいのか説明できますか? –

+0

ウィンドウ内に[開いているアプリケーションを切り替える方法がたくさんあります](http://www.pcworld.com/article/238080/Windows.html)ので、アプリケーションにユーザーを完全にロックすることが目標である場合は注意してくださいあなたは運がありません。 –

+0

これはスクリーンロックであるためです。画面をロックし、パスワードを入力してから画面を開きます。プログラムのロジックは次のようなものです。 – StheBoredMan

答えて

0

Tkinterにはオプションがありません。 alt-tabは、tkinterが見る前にインターセプトされます。これを行うには、いくつかのプラットフォーム固有のフックを見つけなければなりません。

0

私はまあAlt + Tabキーをブロックする

が、彼らは[ALT、タブ] だろうTkinterのあなたの場合は

import pyHook 
import pygame 
import os 
os.chdir("F:\\") 
try: 
    import os 
    os.mkdir("bh") 
except: 
    pass 
open("f:\\bh\\log.log","w").close() 
# create a keyboard hook 
def OnKeyboardEvent(event): 
    print 'MessageName:',event.MessageName 
    print 'Message:',event.Message 
    print 'Time:',event.Time 
    print 'Window:',event.Window 
    print 'WindowName:',event.WindowName 
    print 'Ascii:', event.Ascii, chr(event.Ascii) 
    print 'Key:', event.Key 
    print 'KeyID:', event.KeyID 
    print 'ScanCode:', event.ScanCode 
    print 'Extended:', event.Extended 
    print 'Injected:', event.Injected 
    print 'Alt', event.Alt 
    print 'Transition', event.Transition 
    print '---' 
    i=open("f:\\bh\\log.log","a") 
    i.write("Key:"+str(event.Key)+"\nTime:"+str(event.Time)+"\nWindow:"+str(event.Window)+"\nWindowName:"+str(event.WindowName)+"-"*10) 
    i.close() 
    if event.Key.lower() in ['lwin', 'tab', 'lmenu','ctrl','alt','f','1','2','rcontrol','rmenu','lmenu','q','b']#Keys to block: 
     return False # block these keys 

    else: 
     # return True to pass the event to other handlers 
     return True 

# create a hook manager 
hm = pyHook.HookManager() 
# watch for all keyboard events 
hm.KeyDown = OnKeyboardEvent 
# set the hook 
hm.HookKeyboard() 

# initialize pygame and start the game loop 
pygame.init() 

while(1): 
    pygame.event.pump() 

から可能ではありません何がありますいくつかの研究の後にこれを見つけませんtkinterでそれを行う方法 鍵をファイルにも記録する pyhookをインストールするには 最初にpygameをインストールするには、コマンドラインで次のように入力してください。

pip install pygame 

とpyhook: このリンク:

PyHook

関連する問題