컴퓨터잡담

AutohotKey Postmessage(SendMessage)로 CTRL+C 전송하기

by 디케 posted Jul 11, 2010
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

simulate CTRL+C

AutoHotKey Postmessage(SendMessage)로 Ctrl+C 전송하기

ASCII CODE에서 십진수 : Ctrl-A ~~~ 26 : Ctrl-Z


postmessage, 0x100, 3, 0, Edit1,  제목 없음 - 메모장  => ctrl+c 동작을 확인하였습니다. 



간편한 복사, 붙여넣기는 

postmessage, 0x300, 1, 0, Edit1,  제목 없음 - 메모장 
잘라내기 
postmessage, 0x301, 1, 0, Edit1,  제목 없음 - 메모장 
복사 
postmessage, 0x302, 1, 0, Edit1,  제목 없음 - 메모장 
붙여넣기 


1. PostMessage로 WM_KEYDOWN, WM_KEYUP을 잘 조합해서 보내기
2. 해당 어플리케이션을 최상위로 올린 후 Keybd_Event, SendInput 사용하기
3. SendMessage로 WM_PASTE 보내기



Hi,
I have an application and I want to simulate CTRL+C in a window, the application is in VC++.
I think that I have to write something like that, but it doesn't copy

::PostMessage(win,WM_KEYDOWN,VK_CONTROL,0x10FF);
::PostMessage(win,WM_KEYDOWN,VkKeyScan('c'),0);
::PostMessage(win,WM_KEYUP,VkKeyScan('c'),0);
::PostMessage(win,WM_KEYUP,VK_CONTROL,0x10FF);



I'm working on an automation application for a proprietary windows-based host emulator in Windows XP.  The application is written in VB6 and works well at passing keys to the host emulator using WM_KEYDOWN messages via PostMessage API calls.  The problem that I have is that I don't know how to send keys that have a Shift/Ctrl/Alt component.  For example, the following works great:

     PostMessage hWnd, WM_KEYDOWN, vbKeyC, &H1&                    '  Lowercase "c"
     PostMessage hWnd, WM_KEYDOWN, vbKeyUp, &H1&                  '  Up Arrow key
     PostMessage hWnd, WM_KEYDOWN, vbKeyPageDown, &H1&       '  Page Down key

How do I do the same for Shift-c (Capital C), Shift-ArrowUp, Ctrl-PgDn, or Alt-c?  Posting a WM_KEYDOWN message for vbKeyShift/vbKeyControl has no effect before any of the above.  The result is the same (unshifted).

Before anyone asks, I do not wish to change the focus from my application to the host when sending each key.  (The application controls several host windows at the same time.)  PostMessage does exactly what I want, except I can't figure out how to Shift/Ctrl/Alt the keys.

Any help would be appreciated...


http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20757153.html