|
답변 감사 드립니다...
단축키 F10, F12등이 다른 프로그램 작동중(프로그램 비활성화중)에도 작동하는 원리를 배우고 싶어 전환을 부탁드렸습니다... 자료를 찾아보니 후킹이라는 것으로 되어 있던데요...
그래서 후킹 관련 자료를 보고 있습니다... 이참에 VC++도 기본적인 것은 공부해 두어야 겠다는 생각이 들고요.
.
아래 부분을 C++ Builder로 전환해 보고 싶어서 요청을 드렸습니다...
--------------------------------------------------------------------
hHook = SetWindowsHookEx(13,(HOOKPROC)::HookMouseProc,GetModuleHandle(NULL), 0);
LRESULT CALLBACK HookMouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
HWND hwnd;
LRESULT lResult = 0;
if(nCode == HC_ACTION)
{
if(((EVENTMSG*)lParam)->message == VK_F10)
{
hwnd=FindWindow(NULL,ProgName);
SendMessage(hwnd,WM_USER+4,1,1);
return 1;
}
else if(((EVENTMSG*)lParam)->message == VK_F12)
{
hwnd=FindWindow(NULL,ProgName);
SendMessage(hwnd,WM_USER+5,1,1);
return 1;
}
else if(((EVENTMSG*)lParam)->message == VK_F8)
{
hwnd=FindWindow(NULL,ProgName);
SendMessage(hwnd,WM_USER+6,1,1);
return 1;
}
}
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
------------------------------------------------------------------------
답변에 거듭 감사 드리며, 나머지는 제가 한번 연구해서 해 보기로 하고요....혹시 간단히 전환되는 거면 리플달아 주시면 저야 좋은데, 넘 무리한 부탁 드리는 것 같아 자제하겠습니다...^^
좋은 하루 되셔요^^
최준호.스페로 님이 쓰신 글 :
: 안녕하세요 스페로 입니다.
:
: 이걸 완전히 C++빌더로 포팅 하느니 대강 만드러 봣습니다. 어짜피 세팅 UI라던지 여러 좌표를 파일로 저장한다던지
: 이런것들은 직접 작성 하시면 될거 같구요.
:
: 오토마우스라는게 어짜피 정해진 좌표로 마우스 이동시키고 누르기만 하면 되는 거라서...
: 아래와 같이 하면 됩니다.
:
: 일단 폼에 Edit를 3개 하나는 X구 하나는 Y그리고 하나는 타이머 인터벌
: 타이머 하나를 올려 놓습니다. 속성에서 Enable을 일단 false로 조정 합니다.
: 버튼을 두개 올려 놓습니다. 하나는 시작, 하나는 중지
:
: 중요한 코드는 마우스 커서의 위치 이동, 그리고 누르게 해주는 함수 두개만 쓰면 됩니다.
: 타이머 이벤트에 코드를 작성 합니다.
:
: 그럼 아래와 같은 코드가 되겠죠.
:
: 그럼 ~~
:
: //---------------------------------------------------------------------------
:
: #include <vcl.h>
: #pragma hdrstop
:
: #include "Unit1.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.dfm"
: TForm1 *Form1;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner)
: : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: Timer1->Interval = Edit3->Text.ToInt();
: Timer1->Enabled = true;
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Timer1Timer(TObject *Sender)
: {
: SetCursorPos(Edit1->Text.ToInt(), Edit2->Text.ToInt());
: mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, GetMessageExtraInfo());
: mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, GetMessageExtraInfo());
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
: Timer1->Enabled = false;
: }
: //---------------------------------------------------------------------------
:
:
:
:
: 해지는아침 님이 쓰신 글 :
: : 오토마우스라는 프로그램을 짜 볼려고 시도하다가 잘 되지 않아 친구한데 프로그램 쏘쓰를 받았습니다.... 그런데 VC++로 짜여 있어서 초보에다 VC는 접해보지 않아 도통 모르겠습니다.
: : 고수분들 첨부한 파일을 BCB에서 쓸 수 있게 점 만들어 주셔요... 부탁드립니다.
|