美文网首页「河许人」Autohotkey
AutoHotKey技巧3:保存截图为bmp文件

AutoHotKey技巧3:保存截图为bmp文件

作者: 雷霆同学 | 来源:发表于2018-10-21 11:59 被阅读138次

    在我的另外一篇文章《C/C++:保存剪贴板截图为bmp文件(编译成dll供python调用)》中,讲到了怎么利用windows API来读取剪贴板中的内容并保存成bmp文件(如果剪贴板中是图片)。这里还是借用这篇文章中生成的exe文件,配合autohotkey脚本,来便捷地将剪贴板中的图片保存为bmp文件。

    exe文件下载链接:点击跳转

    脚本内容

    SaveBmp()
    {
        InputBox, file_name, 输入, 请输入图片完整路径例,,,,,,,, D:\%A_now%.bmp  ;利用inputbox弹出对话框
                                                                                ;指引用户指定bmp文件完整存储路径
                                                                                ;A_now为当前时间
        if ErrorLevel = 1       ;根据inputbox的errorlevel来判断
        {                       ;用户是点了确定还是点了取消(关闭),有或者是操作超时
            MsgBox 取消保存!
            return
        }
        if ErrorLevel = 2
        {
            MsgBox 操作超时!
            return
        }
        if ErrorLevel = 0       ;如果点了确定,则进行保存截图操作
        {
            RunWait SaveBmpFile "%file_name%",, Hide    ;利用runwait执行SaveBmpFile.exe
            if ErrorLevel = ERROR                       ;runwait会自动设置errorlevel,如果是ERROR,则说明exe出现异常错误
                MsgBox 执行SaveBmpFile时发生未知错误!
            else if ErrorLevel = 0                      ;如果exe执行完成,会有返回值,根据返回值弹出提示
                MsgBox %file_name%保存成功!
            else if ErrorLevel = 11
                MsgBox 保存出错,剪贴板内容不是图片!
            else if ErrorLevel = 12
                MsgBox 保存出错,打开剪贴板失败!
            else if ErrorLevel = 13
                MsgBox 保存出错,请检查文件夹权限等!
            else if ErrorLevel = 14
                MsgBox 保存出错,文件路径非法!
            else
                MsgBox 未知错误!
        }
    }
    
    ^!c:: SaveBmp()  ;Ctrl+Alt+C快捷键进行截图
    

    注释已经对关键语句进行了解释,希望刚接触ahk的同学通过autohotkey中文论坛了解一下其中用到的函数,这里主要有InputBoxRunWait,重点是理解这2个函数的ErrorLevel设定,这样才能根据执行结果让程序顺利流入各个分支,增强健壮性。

    使用

    安装AutoHotKey,新建文本贴入上述代码并保存成xxx.ahk,将SaveBmpFile.exe和ahk脚本放在同一文件夹,双击脚本文件,这样就已经在后台运行了。

    效果

    按下组合键,会弹出输入框,提示输入图片存储的完整路径,默认为D盘更目录下以当前时间命名,需要其他位置或者命名格式可以自行更改。

    image.png

    拓展

    可能使用过程中,大家也能发现,想要保存文件需要先手动截图。但是这都不是事儿啊!可以在弹出InputBox之前模拟按下PrtSC按键(截全屏)或者Alt+PrtSc(截当前活动窗口),这就需要大家发挥想象力了,我这里只提供核心功能。

    相关文章

      网友评论

        本文标题:AutoHotKey技巧3:保存截图为bmp文件

        本文链接:https://www.haomeiwen.com/subject/zlqbzftx.html