admin管理员组

文章数量:1516870

Python调用QQ截图工具

昨天听同事说想不打开QQ就使用QQ提供的截图功能,虽然只是一说,我倒是很感兴趣,于是从昨天下午到刚才用Python实现了一下。只实现了对截屏功能的调用,且不太实用,就当是玩了。

到QQ安装目录下找找,有个Camera.dll,看起来和截图有关,搜索一下,发现网上提到的应为CameraDll.dll,可能是后来改版了,用工具查看一下Camera.dll,如图所示:

import ctypes
import os
#截屏方法
def capture():
    try:
        dll = ctypes.cdll.LoadLibrary('CameraDll.dll')
    except Exception:
        print("Dll load error!")
        try:
             #如果dll加载失败,则换种方法使用,直接运行,如果还失败,退出
             os.system("Rundll32.exe CameraDll.dll, CameraSubArea")
         except Exception:
             return    
    else:
        try:
            dll.CameraSubArea(0)
        except Exception:
            print("Sth wrong in capture!")
            return
#获取计算机名
def getname():
    pcName = ctypes.c_char_p(''.encode('utf-8'))
    pcSize = 16
    pcName = ctypes.cast(pcName, ctypes.c_char_p)
    try:
        ctypes.windll.kernel32.GetComputerNameA(pcName, ctypes.byref(ctypes.c_int(pcSize)))
    except Exception:
        print("Sth wrong in getname!")
    print(pcName.value.decode('utf-8'))
def main():
    getname()
    #调用截屏
    capture()
    os.system("pause")
if __name__ == "__main__":
    main()

加载完DLL后调用CameraSubArea即可,虽然不清楚里面应该传入什么参数,不过不影响使用。
另外一个方法是练习载入系统DLL获取计算机名。

使用效果如图所示:

本文标签: 机名获取计算系统