最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python-pywin32庫(kù)的使用高級(jí)操作方法

 更新時(shí)間:2025年11月06日 09:44:56   作者:覓遠(yuǎn)  
文章介紹了Python的pywin32庫(kù),該庫(kù)允許訪問(wèn)Windows?API并執(zhí)行高級(jí)操作,對(duì)Python?pywin32庫(kù)使用方法感興趣的朋友跟隨小編一起看看吧

pywin32庫(kù)可對(duì)Windows API進(jìn)行訪問(wèn)和進(jìn)行一些高級(jí)操作。

win32api模塊

win32api:對(duì)Windows API函數(shù)直接訪問(wèn)。

win32con:定義了各種Windows常量,用于與其他模塊一起使用。

警告提示對(duì)框

通??梢酝ㄟ^(guò)彈出一個(gè)提示窗口,通過(guò)獲取用戶選擇得到返回值后做其他操作,

函數(shù) win32api.MessageBox(hwnd, text, title, type)參數(shù):

hwnd: 父窗口的句柄。如果為0或None,則消息框沒有父窗口。

text: 消息框中顯示的文本內(nèi)容。

title: 消息框的標(biāo)題。

type: 指定消息框的類型和按鈕組合??梢允且韵鲁A炕虺A康慕M合:

  • MB_OK---顯示“確定”按鈕。
  • MB_OKCANCEL---顯示“確定”和“取消”按鈕。
  • MB_YESNO---顯示“是”和“否”按鈕。
  • MB_YESNOCANCEL---顯示“是”、“否”和“取消”按鈕。
  • MB_ICONQUESTION---顯示問(wèn)號(hào)圖標(biāo)。
  • MB_ICONINFORMATION---顯示信息圖標(biāo)。
  • MB_ICONWARNING---顯示警告圖標(biāo)。
  • MB_ICONASTERISK---含圖標(biāo)、固定按鈕 提示信息框。
  • win32con.MB_ICONERROR---顯示錯(cuò)誤圖標(biāo)。
  • MB_HELP---不含圖標(biāo)、可改變按鈕 說(shuō)明信息框。
  • MB_RETRYCANCEL---不含圖標(biāo),重試信息框。
  • MB_ICONSTOP---顯示X號(hào)圖標(biāo)。

type為常量整數(shù),所以可以直接使用數(shù)字:

  • 0: 確定
  • 1: 確定,取消
  • 2: 終止,重試,忽略
  • 3: 是,否,取消
  • 4: 是,否
  • 5: 重試,取消
  • 6: 取消,再試一次,繼續(xù)

函數(shù)返回值:

  • 1: 確定
  • 2: 取消
  • 3: 終止
  • 4: 重試
  • 5: 忽略
  • 6: 是
  • 7: 否
  • 10:再試一次
  • 11:繼續(xù)
import win32api, win32gui
from win32con import *
mes = win32api.MessageBox(None, "這是一個(gè)測(cè)試對(duì)話窗口", "警告", MB_RETRYCANCEL)
print(mes)   # 打印結(jié)果為4

可以使用組合按鈕,如下,

mes = win32api.MessageBox(None, "測(cè)試1", "test", MB_YESNO | MB_ICONQUESTION)
print(mes)

# win32con.IDOK: 用戶點(diǎn)擊了“確定”按鈕。
# win32con.IDCANCEL: 用戶點(diǎn)擊了“取消”按鈕。
# win32con.IDYES: 用戶點(diǎn)擊了“是”按鈕。
# win32con.IDNO: 用戶點(diǎn)擊了“否”按鈕。
mes = win32api.MessageBox(None, "測(cè)試2", "test", IDOK | IDCANCEL)
print(mes)

刪除和復(fù)制文件

win32api.DeleteFile(r'E:\桌面\99\測(cè)試圖片\1.jpg')  # 刪除文件
win32api.CopyFile(r'E:\桌面\測(cè)試文件\23.png', r'E:\桌面\測(cè)試文件\123.png')  # 復(fù)制文件,參數(shù)分別是源文件和目標(biāo)文件

獲取時(shí)間

print(win32api.GetLocalTime())  # 計(jì)算機(jī)時(shí)間(2024, 4, 1, 15, 13, 37, 26, 781)
print(win32api.GetSystemTime())  # 格林尼治時(shí)間(2024, 4, 1, 15, 5, 37, 26, 781)

系統(tǒng)警告提示音

MessageBeep() 函數(shù)用于使計(jì)算機(jī)發(fā)出聲音,通常用于向用戶發(fā)出警告或通知。

win32api.MessageBeep(type=MB_ICONQUESTION)

type 參數(shù)可以設(shè)置為以下幾種預(yù)定義的值,這些值決定了播放哪種聲音:

  • win32con.MB_OK:系統(tǒng)默認(rèn)聲音,通常是一個(gè)短促的“嘟”聲。
  • win32con.MB_ICONASTERISK:一個(gè)連續(xù)的“嘟”聲,直到下一個(gè) MessageBeep() 調(diào)用。
  • win32con.MB_ICONEXCLAMATION:一個(gè)長(zhǎng)“嘟”聲。
  • win32con.MB_ICONHAND:一個(gè)雙“嘟”聲。
  • win32con.MB_ICONQUESTION:一個(gè)“嘟-嘟”聲(兩個(gè)短促的聲音)。

自定義聲音播放

Beep()用于通過(guò)計(jì)算機(jī)的主板揚(yáng)聲器(或聲卡模擬)發(fā)出指定頻率和時(shí)長(zhǎng)的蜂鳴聲。與 MessageBeep()(播放系統(tǒng)預(yù)定義聲音)不同,Beep() 允許自定義聲音的頻率和持續(xù)時(shí)間。

win32api.Beep(frequency, duration)
參數(shù)名類型描述
frequencyint聲音的頻率(單位:赫茲,Hz)。有效范圍:37 Hz 到 32767 Hz。262 Hz (中音C)、440 Hz (標(biāo)準(zhǔn)音A)、1000 Hz (高頻提示音)
durationint聲音的持續(xù)時(shí)間(單位:毫秒,ms)。有效范圍:正整數(shù)(如 500=0.5秒)。

演示一段音符, 

# 定義音符頻率和時(shí)長(zhǎng)(毫秒)
melody = [
    (262, 300),  # C4
    (294, 300),  # D4
    (330, 300),  # E4
    (349, 300),  # F4
    (392, 600),  # G4
]
for freq, dur in melody:
    win32api.Beep(freq, dur)
    time.sleep(0.05)  # 音符間短暫間隔

檢索系統(tǒng)級(jí)度量信息

GetSystemMetrics() 可以返回多種與系統(tǒng)相關(guān)的度量值,比如屏幕尺寸、工作區(qū)尺寸、系統(tǒng)字體大小等。

win32api.GetSystemMetrics() 函數(shù)的一些常用參數(shù)及其含義:

  • 0:返回屏幕寬度(像素)。
  • 1:返回屏幕高度(像素)。
  • SM_CXSCREEN(等同于 0):屏幕寬度(像素)。
  • SM_CYSCREEN(等同于 1):屏幕高度(像素)。
  • SM_CXWORK:工作區(qū)的寬度(像素),即屏幕寬度減去系統(tǒng)任務(wù)欄等區(qū)域的寬度。
  • SM_CYWORK:工作區(qū)的高度(像素),即屏幕高度減去系統(tǒng)任務(wù)欄等區(qū)域的高度。
  • SM_CXFULLSCREEN:全屏窗口的寬度(像素)。對(duì)于多顯示器設(shè)置,這通常是主顯示器的寬度。
  • SM_CYFULLSCREEN:全屏窗口的高度(像素)。
  • SM_CXFIXEDFRAME:窗口邊框的寬度(像素)。
  • SM_CYFIXEDFRAME:窗口邊框的高度(像素)。
  • SM_CXSIZEFRAME:窗口可調(diào)邊框的寬度(像素)。
  • SM_CYSIZEFRAME:窗口可調(diào)邊框的高度(像素)。
  • SM_CXFRAME:等同于 SM_CXSIZEFRAME。
  • SM_CYFRAME:等同于 SM_CYSIZEFRAME
  • SM_CXMIN:窗口的最小寬度(像素)。
  • SM_CYMIN:窗口的最小高度(像素)。
  • SM_CXVSCROLL:垂直滾動(dòng)條的寬度(像素)。
  • SM_CYHSCROLL:水平滾動(dòng)條的高度(像素)。
  • SM_CYCAPTION:標(biāo)題欄的高度(像素)。
  • SM_CXBORDER:窗口邊框的寬度(像素)。
  • SM_CYBORDER:窗口邊框的高度(像素)。
  • SM_CXDLGFRAME:對(duì)話框邊框的寬度(像素)。
  • SM_CYDLGFRAME:對(duì)話框邊框的高度(像素)。
  • SM_CYMENU:菜單的高度(像素)。
  • SM_CXFULLSCREEN、SM_CYFULLSCREEN、SM_CXICON、SM_CYICON 等其他度量值。
# 獲取屏幕寬度和高度
screen_width = win32api.GetSystemMetrics(0)
screen_height = win32api.GetSystemMetrics(1)

打開系統(tǒng)程序

win32api.WinExec('notepad.exe')

win32gui

win32gui:操作Windows圖形用戶界面,包括窗口、菜單、對(duì)話框等。

窗口句柄及參數(shù)

import win32gui
from win32con import *
hwnd = win32gui.FindWindow(None, "釘釘")
if hwnd:
    print(f'窗口句柄:{hwnd}')
    print(f'窗口標(biāo)題:{win32gui.GetWindowText(hwnd)}')
    print(f'窗口類名:{win32gui.GetClassName(hwnd)}')
    rect = win32gui.GetWindowRect(hwnd)
    left, top, right, bottom = rect
    print("窗口位置:(左:{}, 上:{})".format(left, top))
    print("窗口大?。?寬:{}, 高:{})".format(right - left, bottom - top))
    parent_hwnd = win32gui.GetParent(hwnd)
    child_hwnds = []
    win32gui.EnumChildWindows(hwnd, lambda hwnd, param: param.append(hwnd), child_hwnds)
    print("父窗口句柄:", parent_hwnd)
    print("子窗口句柄:", child_hwnds)

向窗口發(fā)送命令

SendMessage 和 PostMessage 函數(shù)用于向窗口發(fā)送消息。SendMessage 會(huì)等待消息處理完成才返回,而 PostMessage 則立即返回。

# 向窗口發(fā)送一個(gè)關(guān)閉消息(WM_CLOSE)
win32gui.SendMessage(hwnd, win32con.WM_CLOSE, 0, 0)

修改窗口標(biāo)題

win32gui.SetWindowText(hwnd, "新的窗口標(biāo)題")   # 修改窗口標(biāo)題

窗口顯示

win32gui.ShowWindow()函數(shù)可以顯示、隱藏或最大化、最小化窗口。

win32gui.ShowWindow(hwnd, SW_HIDE)   # SW_HIDE表示隱藏窗口

其他模塊

win32com:提供了對(duì)COM(Component Object Model)對(duì)象的訪問(wèn),可用于操作如Microsoft Office等應(yīng)用程序。

win32process:用于管理Windows進(jìn)程。

# 進(jìn)程信息獲取
import win32process
processes = win32process.EnumProcesses()
for process_id in processes:
    print(process_id)

到此這篇關(guān)于Python-pywin32庫(kù)的使用的文章就介紹到這了,更多相關(guān)Python pywin32庫(kù)使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python PyGame五子棋小游戲

    python PyGame五子棋小游戲

    大家好,本篇文章主要講的是python PyGame五子棋小游戲,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Django框架首頁(yè)和登錄頁(yè)分離操作示例

    Django框架首頁(yè)和登錄頁(yè)分離操作示例

    這篇文章主要介紹了Django框架首頁(yè)和登錄頁(yè)分離操作,結(jié)合實(shí)例形式分析了Django框架登錄、驗(yàn)證、跳轉(zhuǎn)首頁(yè)等相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • python的ImageTk.PhotoImage大坑及解決

    python的ImageTk.PhotoImage大坑及解決

    這篇文章主要介紹了python的ImageTk.PhotoImage大坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用gpu設(shè)置的方式

    神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用gpu設(shè)置的方式

    這篇文章主要介紹了神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用gpu設(shè)置的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Python中NumPy的線性代數(shù)子模塊linalg詳解

    Python中NumPy的線性代數(shù)子模塊linalg詳解

    這篇文章主要介紹了Python中NumPy的線性代數(shù)子模塊linalg詳解,NumPy 的線性代數(shù)子模塊linalg提供了 20 余個(gè)函數(shù),用于求解行列式、逆矩陣、特征值、特征向量,以及矩陣分解等,需要的朋友可以參考下
    2023-08-08
  • Python實(shí)現(xiàn)隨機(jī)游走的示例代碼

    Python實(shí)現(xiàn)隨機(jī)游走的示例代碼

    隨機(jī)游走是一個(gè)數(shù)學(xué)對(duì)象,稱為隨機(jī)或隨機(jī)過(guò)程,它描述了一條路徑,該路徑由一些數(shù)學(xué)空間上的一系列隨機(jī)步驟組成,下面我們就來(lái)學(xué)習(xí)一下Python如何實(shí)現(xiàn)隨機(jī)游走的吧
    2023-12-12
  • python求一個(gè)字符串的所有排列的實(shí)現(xiàn)方法

    python求一個(gè)字符串的所有排列的實(shí)現(xiàn)方法

    這篇文章主要介紹了python求一個(gè)字符串的所有排列的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • pytorch 準(zhǔn)備、訓(xùn)練和測(cè)試自己的圖片數(shù)據(jù)的方法

    pytorch 準(zhǔn)備、訓(xùn)練和測(cè)試自己的圖片數(shù)據(jù)的方法

    這篇文章主要介紹了pytorch 準(zhǔn)備、訓(xùn)練和測(cè)試自己的圖片數(shù)據(jù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • python字典按照value排序方法

    python字典按照value排序方法

    在本篇文章里小編給各位分享一篇關(guān)于python字典按照value排序方法的相關(guān)文章,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • python中print()函數(shù)的“,”與java中System.out.print()函數(shù)中的“+”功能詳解

    python中print()函數(shù)的“,”與java中System.out.print()函數(shù)中的“+”功能詳解

    python中的print()函數(shù)和java中的System.out.print()函數(shù)都有著打印字符串的功能。接下來(lái)通過(guò)本文給大家分享python中print()函數(shù)的“,”與java中System.out.print()函數(shù)中的“+”功能,需要的朋友參考下吧
    2017-11-11

最新評(píng)論

锡林浩特市| 新宁县| 和林格尔县| 板桥市| 高清| 旺苍县| 石泉县| 洱源县| 米易县| 宜城市| 恩平市| 特克斯县| 沽源县| 偏关县| 襄樊市| 正安县| 平凉市| 宣城市| 咸阳市| 浙江省| 合肥市| 竹山县| 乐昌市| 萍乡市| 衡阳县| 慈利县| 泰宁县| 新晃| 康定县| 临颍县| 山东| 呈贡县| 伊吾县| 基隆市| 同德县| 华坪县| 名山县| 伊春市| 邳州市| 四平市| 合山市|