<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 67  文章 - 79  trackbacks - 0
    <2008年9月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    常用鏈接

    留言簿(1)

    隨筆檔案

    文章檔案

    相冊

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    使用win32 native api 來向窗口發(fā)送鍵盤消息,主要是為了做his程序的自動登陸腳本  來方面測試程序
    把程序傳上來留個筆記
    set_foreground_window 根據(jù)標(biāo)題來設(shè)定目標(biāo)窗口
    key_press 一次發(fā)送一個按鍵信息 包括key_down 和key_up
     1 #coding=gbk
     2 import win32gui,win32con,win32api,win32process
     3 import string,os
     4 
     5 
     6 __keys={ }
     7 for key in dir(win32con):
     8     if key.startswith('VK_'):
     9         __keys[key[3:].capitalize()]=getattr(win32con,key)
    10         
    11 def sleep(ms):
    12     win32api.Sleep(ms)
    13     
    14 def run(exe_file):
    15 
    16     win32api.ShellExecute(0,"",exe_file,'','',0)    
    17     
    18 def set_foreground_window(win):
    19     try:
    20         win32gui.SetForegroundWindow(win)
    21         win32api.Sleep(50)
    22     except TypeError:
    23         hwnd=win32gui.FindWindow(0,win)
    24         win32gui.SetForegroundWindow(hwnd)
    25         win32api.Sleep(50)
    26         print hwnd
    27         
    28 def dump_keys():
    29     ks=[k for k in __keys.keys()]
    30     ks.sort()
    31     print "\n".join( "%s=0x%x"%(k,__keys[k]) for k in ks )
    32 
    33 def keyboard_event(key,flag=0):
    34     value=None
    35     if isinstance (key,int):
    36         value=key
    37     else:
    38         if len(key)==1:
    39             value=win32api.VkKeyScan (key)
    40         else:
    41             key=key.capitalize()
    42             if key in __keys:
    43                 value=__keys[key]               
    44 
    45     if value != None:
    46         win32api.keybd_event(value,0,flag,0)
    47     else:
    48         raise TypeError()
    49     
    50 def key_down(key):
    51     keyboard_event(key)
    52     
    53 def key_up(key):
    54     keyboard_event(key,flag=win32con.KEYEVENTF_KEYUP)
    55     
    56     
    57 
    58 def key_press(key):  
    59     if  len(key)==1:
    60         v=win32api.VkKeyScan (key)
    61         
    62         c=v&0xff00
    63 
    64         if c==1:
    65             key_down('Shift')
    66                 
    67         key_down(v)
    68         key_up(v)
    69 
    70         if c==1:
    71             key_up('Shift')            
    72     else:
    73         key_down(key)
    74         key_up(key)
    75         
    76 if __name__=='__main__':
    77     set_foreground_window('系統(tǒng)登錄')
    78 
    79     for i in '8888p':
    80         key_press(i)
    81     key_press('Return')
    82 


    八月份發(fā)生了太多事情,技術(shù)上,工作上,生活上都有。本來可以寫很多,想想還是算了, 太私人的東西不好意思放上來曬
    posted on 2008-09-03 14:14 zarra 閱讀(811) 評論(1)  編輯  收藏

    FeedBack:
    # re: 發(fā)送鍵盤消息[未登錄] 2008-09-04 10:22 apple
    喵嗚~~
    這些代碼看看很熟悉,可是依然讀不懂每句語句的意思
      回復(fù)  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 毛片免费视频播放| 国产精一品亚洲二区在线播放 | 亚洲精品国产福利片| 免费A级毛片无码免费视| 国产成人高清精品免费观看| 久久久亚洲裙底偷窥综合| 国产美女无遮挡免费视频 | 最近2019免费中文字幕视频三| 国产精品亚洲片夜色在线| 亚洲一级特黄大片无码毛片| 99久久99热精品免费观看国产| 亚洲av无码专区国产不乱码| 亚洲VA中文字幕无码毛片| 成全视频在线观看免费高清动漫视频下载| 人妻18毛片a级毛片免费看| 亚洲国产精品综合久久久| 亚洲午夜无码AV毛片久久| 青苹果乐园免费高清在线| 精品免费视在线观看| 国产精品亚洲专区在线播放| 久久久久久久亚洲Av无码| 亚洲精品乱码久久久久久不卡| 久久久久久久91精品免费观看| 日韩电影免费在线观看网站| 亚洲AV无码男人的天堂| 亚洲免费观看在线视频| 久久亚洲精品中文字幕三区| gogo全球高清大胆亚洲| 99久久免费国产精品特黄| 国产情侣久久久久aⅴ免费 | 色吊丝性永久免费看码| 学生妹亚洲一区二区| 亚洲精品视频免费在线观看| 亚洲精品乱码久久久久久| 亚洲成av人片不卡无码久久| 免费无码又爽又刺激高潮的视频| 最近新韩国日本免费观看| 免费无码作爱视频| 久久高潮一级毛片免费| 特级毛片A级毛片免费播放| 久久亚洲国产成人影院|