2013-06-13 2 views
2

사전에 검색을 시도했지만 내가 찾고있는 것을 찾지 못했습니다. 사전에 답변을 주시면 미리 사과드립니다.Autohotkey - 단일 명령 대신 전체 매크로 실행 취소 (Windows 7)

나는 일부 웹 작업을하고 Ctrl 키 선택한 텍스트 주위에 굵은 태그를 추가하는 HTML의 상당 + 시프트 + B 결합 AHK에서 매크로를 만들었습니다.

흐름이다 컷 (CTRL + X), 타입 <b> 페이스트 잘라 텍스트 (CTRL + V), 타입 </b>.

매크로가 정상적으로 실행되지만 때로는 실행 취소하려고합니다. 그러나 실행 취소 (ctrl + z)를 누를 때마다 위의 명령 중 하나를 되 돌리는 각 프레스로 4 번 명령을 누릅니다.

내 AHK 매크로를 작성하여 1 개의 키 누르기에서 전체 매크로를 실행 취소 할 수있는 더 좋은 방법이 있습니까? 어떤 조언도 좋을 것입니다. Windows 7의 경우에는 차이가 있습니다.

아래 매크로를 추가했습니다.

^+b:: 
{ 
SendInput ^x 
SendInput <b> 
SendInput ^v 
SendInput </b> 
return 
} 

편집 : & # 60; '<'의 hmtl equiv이지만이 게시물이 문자를 표시하는 대신 HTML 태그를 변환 할까봐 걱정했습니다. 결정된.

죄송합니다. 메모장, 메모장 ++, 인터넷 익스플로러를 사용하여 CMS에 액세스하는 경향이 있습니다. -

지연을 추가하고 AHK 매크로를 다음과 같이 다시 작성하면 문제가 해결되었다고 생각합니다. 도와 주셔서 감사합니다!

^+ B :
클립 보드

=
SendInput을^X
ClipWait, 1
ErrorLevel에
경우 {
있는 MsgBox는 클립 보드에 텍스트를 복사 할 수있는 시도가 실패했습니다.

}
SendInput을 < B> % 클립 보드 % </B 여기서 창

+2

당신이 사용하는 HTML 편집기를 말하면 좋을 것입니다 ... –

+1

그냥 4 번 실행 취소하는 단축키를 만드는 것이 어떻습니까? –

+0

4 번 실행 취소 한 매크로를 만드는 유일한 문제는이 특정 매크로 (또는 4 개의 명령이 포함 된 매크로)로만 제한된다는 것입니다. n 개의 명령을 다양하게 사용하여 더 많은 매크로를 만들 계획 이었지만이 예제는 문제를 쉽게 해결할 수 있다고 느꼈습니다. 그래도 제안에 감사드립니다! – biz79

답변

0


일부 코드> :

^+b:: 
Click, 2 ; Highlight current word 
Send, ^x 
ClipWait, 1 ; ADDED to wait for clipboard 
SendInput, <b>^v<`/b> 
Return 

!b:: 
Send, ^{z 4} 
Return 

또는

!b:: 
Send, "command to search backwards" for </b> 
Send, {Del} 
Send, "command to search backwards" for <b> 
Send, {Del} 
Return 

또는

,
!b:: 
Send, {Home}+{end} ; [Home] then [Shift][End] to highlight current line 
Send, ^h ; Or any other command to start find/replace 
Send, <b>^v<`/b>{Tab}^v{Enter} ; or what is required to replace in current section only... 
Return 
+0

제안 해 주셔서 감사합니다. 나는 두 번째 게시물에 대한 아이디어를 좋아하지만 Windows에서 매크로를 단일 명령으로 해석하도록 초기 초기 태그 인 AHK 스크립트를 작성할 수있는 특정 방법이 있기를 바랬습니다. – biz79

+0

나는 1 개의 줄에서 모든 것을하려고 노력하고 있었고, 1 개의 실행 취소에서 태그가있는 붙여 넣기를 실행 취소 할 수 있기 때문에이 모든 종류의 작업을 수행하려고했지만 클립 보드가 누락 된 이후로 두 번째 또는 2의 업데이트가 필요할 수 있습니다. 내 강조된 텍스트 중 일부. 도움을 받으려면 지연을 추가 할 수 있습니다. ^ + b :: SendInput^x % 클립 보드 % 반환 – biz79

+0

먼저 클립 보드에 지연이 있습니다. 이 문제를 해결하려면 clipwait를 추가해야합니다 (위 참조). 변경 사항을 "실행 취소"하는 다른 방법은 전체 줄을 강조 표시하고 끝 문자열과 원래 문자열의 찾기 바꾸기를 수행하는 것입니다. –

1

대신을 시도해보십시오

^+b:: 
{ 
Clipboard = 
SendInput ^c 
ClipWait, 1 
Clipboard = <b>%Clipboard%</b> 
SendInput ^v 
return 
} 

을 당신이하고있는 유일한 붙여 넣기이기 때문에, 굵은 태그를 모두 취소됩니다이를 취소. 클립 보드 편집 내용은 "실행 취소"작업으로 등록되지 않습니다.

관련 문제