2016-09-16 2 views
3

키보드 입력 (CTRL PrntSc)을 마우스 클릭 (배치 파일 실행)으로 교체하려고합니다. 내가 거기에 SEND 및 SENDKEY 코드 있지만 코드를단축키를 입력 할 배치 파일 : CTRL Printscreen

보내기를 할 수 없었던 것을 알고있다 ("^ {PRINTSCREEN}")

트리거 권리 효과.

AutoIT 및 AutoHotKey가이를 수행 할 수는 있지만 위와 같이 작동하면 더 간단 해 보입니다.

Press Keyboard keys using a batch file 이 포럼, 즉 배치 파일 먼저 프로그램을 열고 다음에 키 입력을 보내 게와 비슷한 문제를 다루고 있지만, 복잡한 모양과 나는 단지 배치 파일의 핫키 명령을 보내는 코드를 추출에 대한 지침이 필요합니다.

https://www.donationcoder.com/forum/index.php?topic=25389.0 AutoHotKey 및 Macro Express뿐만 아니라 NirCMD 및 AutoIT의 사용을 제안합니다. 나는 지난 두 사람과 경험이 있지만 네 사람 모두에게 도움이 필요합니다.

첫 번째 댓글 (Daniel Wisehart 출신) Windows 10을 사용 중입니다. PLATFORM 쿼리에 대한 답변을 드리겠습니다. 나는 이미 내 batchfile의 (비효율적 인) 코드를 인용했다. 오류 메시지가 없습니다. 그러나 마우스 커서가 Greenshot-cross-hairs가되는 원하는 효과가 발생하지 않았습니다. . 두 번째 메모 (Aacini 출신) - 수정 해 주셔서 감사합니다. "^ {Printscreen}"을 "^ PRTSC"로 바꾸면 필요한 차이가 발생하지 않습니다. 마우스 커서는 여전히 십자형으로 바뀌지 않습니다.

제 3의 코멘트 (Hackoo에 의해)에서 샘플 배치 파일을 시도했습니다. 단축키에서 마우스 클릭으로 변환하는 것은 매우 복잡해 보입니다. 그것은 "(검은 색이 아닌 파란색)"DOS 창에 "화면을 지정된 줄 수와 열 수로 설정할 수 없습니다."라는 메시지를 표시합니다. 그런 다음 텍스트가 사라지고 잠시 후에 창을 닫습니다. 다른 그 코드? VB, 비주얼 베이직, VBS, 일이 무엇입니까?

+1

어떤 플랫폼에서 작업하고 있습니까? 자신의 배치 파일을 가지고 여기에 포함시키고보고있는 문제점을 오류 메시지와 함께 추가하는 것이 가장 좋습니다. http://stackoverflow.com/help/mcve –

+1

올바른 문자열은 다음과 같습니다. Ctrl-PrintSc는 첫 번째 링크의 질문에 제공된 링크에 따라''^ PRTSC ''입니다 ... – Aacini

답변

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 
+1

지시 사항을 잘못 이해했기 때문에 제안 사항에 대한 답글을 편집본에 올렸습니다. 답장. –

관련 문제