1、準備工做:html
安裝pywin32,後面開發須要pywin32的支持,不然沒法完成與windows層面相關的操做。python
pywin32的具體安裝及注意事項:shell
一、總體開發環境:windows
基於windows7操做系統;api
提早安裝python(由於篇幅問題,在此不詳細講解python環境的安裝,你們能夠自備樓梯);瀏覽器
你們能夠在cmd中測試下python環境是否安裝好:app
你們能夠看到我電腦上已經安裝好了Python,並顯示版本與是V 3.6.2。ide
注:本身電腦上的Python版本號必定要知道,後面安裝pywin32是要與python的版本相對應才行。函數
二、具體安裝方法及詳細的步驟:測試
首先下載pywin32安裝包
①.訪問pywin32下載地址:https://sourceforge.net/projects/pywin32/files/pywin32/
②.務必要下載與本身電腦上已安裝的python版本對應的pywin32安裝包,例如python3.6.2 64位對應的安裝包爲pywin32-221.win-amd64-py3.6.exe
點擊第一項:Build 221進入(pywin32-221.win-amd64-py3.6.exe在這裏面下面)
選擇pywin32-221.win-amd64-py3.6.exe文件下載到本地,大小是9.5M,不是很大,下載很快的。
3.安裝剛下載好的pywin32-221.win-amd64-py3.6.exe安裝包,雙擊運行,以後就是一路的點下一步就能夠安裝完成。
須要注意的是:安裝目錄是不能本身亂改變的,系統會根據你電腦上的python安裝路徑自動填寫,
個人電腦上的python安裝在C:\Users\lenovo\AppData\Local\Programs\Python\Python36;
因此係統會自動根據我安裝的Python安裝目錄將pywin32安裝在C:\Users\lenovo\AppData\Local\Programs\Python\Python36\Lib\site-packages\目錄中。
若是說你安裝過程當中系統沒有自動給你填寫pywin32的安裝目錄,說明你的python安裝有問題,請檢查本身的python安裝那裏出問題。(提示下:安裝完Python後注意配置環境變量)
若是你一切還勝利的話,那麼恭喜你能夠繼續日後看。
④爲了肯定安裝pywin32成功,你必定要檢查下安裝結果,能夠在python命令行輸入import win32api。
也能夠在python shell中測試下pywin32是否成功。
成功的話,在開始菜單中的python3.6目錄下會有PythonWin這項。
若是上面測試沒有報錯,開始菜單也有PythonWin,則說明安裝Pywin32成功了。
若是報錯的話說明PYTHONPATH環境變量沒有配置好。
⑤如何配置PYTHONPATH環境變量,這時你須要將python安裝目錄下lib目錄中的site-packages路徑添加到PYTHONPATH環境變量中。
注意:PYTHONPATH是用戶變量。若是沒有這項能夠新建。
能夠在CMD中查看下path。
⑥你們必定要保證pywin32版本和python版本一致,對32位和64位的支持也要和python一致,64位的系統就安裝64位的pywin32,32位的就安裝32位的pywin32。
若是有問題的話,請重複步驟⑤再次檢驗安裝配置結果再檢查測試下。
2、開始開發:
一、從開始菜單打開pythonwin
二、在pythonWin中新建.py文件:
新建文件時,在彈出窗中選擇Python Script,再點擊OK就好了。
三、開始編碼:直接上代碼了。
## _*_ coding:UTF-8 _*_ import win32api import win32con import win32gui from ctypes import * import time
在Python程序中導入win32api,win32con,win32gui,其次引入ctypes模塊,載入動態連接庫(後面會用到C函數)。
你們想要對Python調用ctypes如何使用C函數想更多瞭解的,能夠去看看Python調用ctypes使用C函數printf
VK_CODE = { 'backspace':0x08, 'tab':0x09, 'clear':0x0C, 'enter':0x0D, 'shift':0x10, 'ctrl':0x11, 'alt':0x12, 'pause':0x13, 'caps_lock':0x14, 'esc':0x1B, 'spacebar':0x20, 'page_up':0x21, 'page_down':0x22, 'end':0x23, 'home':0x24, 'left_arrow':0x25, 'up_arrow':0x26, 'right_arrow':0x27, 'down_arrow':0x28, 'select':0x29, 'print':0x2A, 'execute':0x2B, 'print_screen':0x2C, 'ins':0x2D, 'del':0x2E, 'help':0x2F, '0':0x30, '1':0x31, '2':0x32, '3':0x33, '4':0x34, '5':0x35, '6':0x36, '7':0x37, '8':0x38, '9':0x39, 'a':0x41, 'b':0x42, 'c':0x43, 'd':0x44, 'e':0x45, 'f':0x46, 'g':0x47, 'h':0x48, 'i':0x49, 'j':0x4A, 'k':0x4B, 'l':0x4C, 'm':0x4D, 'n':0x4E, 'o':0x4F, 'p':0x50, 'q':0x51, 'r':0x52, 's':0x53, 't':0x54, 'u':0x55, 'v':0x56, 'w':0x57, 'x':0x58, 'y':0x59, 'z':0x5A, 'numpad_0':0x60, 'numpad_1':0x61, 'numpad_2':0x62, 'numpad_3':0x63, 'numpad_4':0x64, 'numpad_5':0x65, 'numpad_6':0x66, 'numpad_7':0x67, 'numpad_8':0x68, 'numpad_9':0x69, 'multiply_key':0x6A, 'add_key':0x6B, 'separator_key':0x6C, 'subtract_key':0x6D, 'decimal_key':0x6E, 'divide_key':0x6F, 'F1':0x70, 'F2':0x71, 'F3':0x72, 'F4':0x73, 'F5':0x74, 'F6':0x75, 'F7':0x76, 'F8':0x77, 'F9':0x78, 'F10':0x79, 'F11':0x7A, 'F12':0x7B, 'F13':0x7C, 'F14':0x7D, 'F15':0x7E, 'F16':0x7F, 'F17':0x80, 'F18':0x81, 'F19':0x82, 'F20':0x83, 'F21':0x84, 'F22':0x85, 'F23':0x86, 'F24':0x87, 'num_lock':0x90, 'scroll_lock':0x91, 'left_shift':0xA0, 'right_shift ':0xA1, 'left_control':0xA2, 'right_control':0xA3, 'left_menu':0xA4, 'right_menu':0xA5, 'browser_back':0xA6, 'browser_forward':0xA7, 'browser_refresh':0xA8, 'browser_stop':0xA9, 'browser_search':0xAA, 'browser_favorites':0xAB, 'browser_start_and_home':0xAC, 'volume_mute':0xAD, 'volume_Down':0xAE, 'volume_up':0xAF, 'next_track':0xB0, 'previous_track':0xB1, 'stop_media':0xB2, 'play/pause_media':0xB3, 'start_mail':0xB4, 'select_media':0xB5, 'start_application_1':0xB6, 'start_application_2':0xB7, 'attn_key':0xF6, 'crsel_key':0xF7, 'exsel_key':0xF8, 'play_key':0xFA, 'zoom_key':0xFB, 'clear_key':0xFE, '+':0xBB, ',':0xBC, '-':0xBD, '.':0xBE, '/':0xBF, '`':0xC0, ';':0xBA, '[':0xDB, '\\':0xDC, ']':0xDD, "'":0xDE, '`':0xC0}
鍵盤上符號對應的VK_CODE的具體值。參考
test.py
# # _*_ coding:UTF-8 _*_ import win32api import win32con import win32gui from ctypes import * import time VK_CODE = { 'backspace':0x08, 'tab':0x09, 'clear':0x0C, 'enter':0x0D, 'shift':0x10, 'ctrl':0x11, 'alt':0x12, 'pause':0x13, 'caps_lock':0x14, 'esc':0x1B, 'spacebar':0x20, 'page_up':0x21, 'page_down':0x22, 'end':0x23, 'home':0x24, 'left_arrow':0x25, 'up_arrow':0x26, 'right_arrow':0x27, 'down_arrow':0x28, 'select':0x29, 'print':0x2A, 'execute':0x2B, 'print_screen':0x2C, 'ins':0x2D, 'del':0x2E, 'help':0x2F, '0':0x30, '1':0x31, '2':0x32, '3':0x33, '4':0x34, '5':0x35, '6':0x36, '7':0x37, '8':0x38, '9':0x39, 'a':0x41, 'b':0x42, 'c':0x43, 'd':0x44, 'e':0x45, 'f':0x46, 'g':0x47, 'h':0x48, 'i':0x49, 'j':0x4A, 'k':0x4B, 'l':0x4C, 'm':0x4D, 'n':0x4E, 'o':0x4F, 'p':0x50, 'q':0x51, 'r':0x52, 's':0x53, 't':0x54, 'u':0x55, 'v':0x56, 'w':0x57, 'x':0x58, 'y':0x59, 'z':0x5A, 'numpad_0':0x60, 'numpad_1':0x61, 'numpad_2':0x62, 'numpad_3':0x63, 'numpad_4':0x64, 'numpad_5':0x65, 'numpad_6':0x66, 'numpad_7':0x67, 'numpad_8':0x68, 'numpad_9':0x69, 'multiply_key':0x6A, 'add_key':0x6B, 'separator_key':0x6C, 'subtract_key':0x6D, 'decimal_key':0x6E, 'divide_key':0x6F, 'F1':0x70, 'F2':0x71, 'F3':0x72, 'F4':0x73, 'F5':0x74, 'F6':0x75, 'F7':0x76, 'F8':0x77, 'F9':0x78, 'F10':0x79, 'F11':0x7A, 'F12':0x7B, 'F13':0x7C, 'F14':0x7D, 'F15':0x7E, 'F16':0x7F, 'F17':0x80, 'F18':0x81, 'F19':0x82, 'F20':0x83, 'F21':0x84, 'F22':0x85, 'F23':0x86, 'F24':0x87, 'num_lock':0x90, 'scroll_lock':0x91, 'left_shift':0xA0, 'right_shift ':0xA1, 'left_control':0xA2, 'right_control':0xA3, 'left_menu':0xA4, 'right_menu':0xA5, 'browser_back':0xA6, 'browser_forward':0xA7, 'browser_refresh':0xA8, 'browser_stop':0xA9, 'browser_search':0xAA, 'browser_favorites':0xAB, 'browser_start_and_home':0xAC, 'volume_mute':0xAD, 'volume_Down':0xAE, 'volume_up':0xAF, 'next_track':0xB0, 'previous_track':0xB1, 'stop_media':0xB2, 'play/pause_media':0xB3, 'start_mail':0xB4, 'select_media':0xB5, 'start_application_1':0xB6, 'start_application_2':0xB7, 'attn_key':0xF6, 'crsel_key':0xF7, 'exsel_key':0xF8, 'play_key':0xFA, 'zoom_key':0xFB, 'clear_key':0xFE, '+':0xBB, ',':0xBC, '-':0xBD, '.':0xBE, '/':0xBF, '`':0xC0, ';':0xBA, '[':0xDB, '\\':0xDC, ']':0xDD, "'":0xDE, '`':0xC0} class POINT(Structure): _fields_ = [("x", c_ulong),("y", c_ulong)] def get_mouse_point(): po = POINT() windll.user32.GetCursorPos(byref(po)) return int(po.x), int(po.y) def mouse_click(x=None,y=None): if not x is None and not y is None: mouse_move(x,y) time.sleep(0.05) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) def mouse_dclick(x=None,y=None): if not x is None and not y is None: mouse_move(x,y) time.sleep(0.05) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) def mouse_move(x,y): windll.user32.SetCursorPos(x, y) def key_input(str=''): for c in str: win32api.keybd_event(VK_CODE[c],0,0,0) win32api.keybd_event(VK_CODE[c],0,win32con.KEYEVENTF_KEYUP,0) time.sleep(0.01) if __name__ == "__main__": mouse_click(500,280) str1 = 'python' key_input(str1) mouse_click(1000,280)
當運行test.py時,會模擬在360瀏覽器的搜索框自動輸入python,同時點擊搜索按鈕開始搜索。