我想用鼠标点击替换键盘输入(CTRL PrntSc)(启动批处理文件)。我知道有SEND和SENDKEY代码,但无法生成代码
发送(" ^ {Printscreen}")
触发正确的效果。
AutoIT和AutoHotKey可能会这样做,但如果上述方法可行,则看起来更简单。
Press Keyboard keys using a batch file 在这个论坛中处理一个类似的问题,即让批处理文件首先打开一个程序然后向它发送键击,但这看起来很复杂,我需要指导提取代码只是发送批处理文件热键命令。
https://www.donationcoder.com/forum/index.php?topic=25389.0 建议使用NirCMD和AutoIT以及AutoHotKey和Macro Express。我有最后两个经验 - 但需要四个人的帮助。
第一条评论(来自Daniel Wisehart) 我正在使用Windows 10 - 我希望能够回答PLATFORM查询。我已经引用了我的批处理文件的(无效)代码。没有错误消息。然而,鼠标光标成为Greenshot-cross-hairs的期望效果并未最终发生。 。 第二条评论(来自Aacini) - 感谢您的纠正。更换" ^ {Printscreen}"用" ^ PRTSC"没有达到要求的差异。鼠标光标仍然不会变成十字准线。
我在第3条评论(Hackoo)中尝试过样本批处理文件 - 这对于从热键到鼠标点击的转换似乎非常复杂。它会触发(蓝色,非黑色),DOS'窗口说"屏幕无法设置为指定的行数和列数。'然后文本消失,稍后窗口关闭。 这段代码是什么? VB,Visual Basic,VBS,还有什么?
答案 0 :(得分:2)
试试这个批处理文件(-_°)
/*
@echo off & cls & color 1E
Mode con Cols=14 lines=1
::Autor Delmar Grande
::http://bbat.forumeiro.com/t248-bat-exe-printscreen-usando-vb-net
::Data Qui 11 Jul 2013
:: Modified by Hackoo on 09/09/2016 to save image with system date
title PrintScreen by Delmar Grande and modified by Hackoo
Rem Just adding a little timeout to organise our screenshot
Timeout /T 4 /Nobreak>nul
findstr "'%skip%VB" "%~f0" > "%tmp%\%~n0.vb"
for /F %%i in ('dir /B /S ^"%WinDir%\Microsoft.NET\Framework\vbc.exe^"') do set "vbc=%%i"
if /i "%vbc%"=="" cls & color 1c & echo This script needs the framework & pause & Exit
cls
%vbc% /nologo /out:"%tmp%\%~n0.exe" "%tmp%\%~n0.vb"
"%tmp%\%~n0.exe"
del "%tmp%\%~n0.vb" >NUL 2>&1
del "%tmp%\%~n0.exe" >NUL 2>&1
exit
*/
Imports System.Windows.Forms 'VB
Module ModulePrintscreen 'VB
Sub Main() 'VB
Dim MaDate As String 'VB
SendKeys.SendWait("{%}({PRTSC})") 'VB
If My.Computer.Clipboard.ContainsImage() Then 'VB
MaDate = Format(Now,"dd-MM-yyyy_hh-mm-ss") 'VB
My.Computer.Clipboard.GetImage.Save(MaDate & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg) 'VB
End If 'VB
End Sub 'VB
End Module 'VB