형관봇
[C#] API 사용시 강제 이벤트 전송 본문
내가 만든 프로그램이 아닌, 다른 API를 이용한 프로그램 개발시 강제 이벤트 전송방법입니다.
( FindWindow, DllImport, user32.dll, SendMessage )
매일 특정시간이 되면 실행되는 증권API 프로그램의 공지사항창 때문에,
프로그램이 정상기동이 안되는 현상을 상황설정하여, 설명 드리겠습니다.
[ 대우증권 API 기동 ]
해당 AniLink의 알림사항을 닫아야지만, API 기동이 시작됩니다.
하여, 닫기버튼의 마우스 클릭 이벤트를 강제로 전송 시키겠습니다.
[ 소스코드 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [DllImport("user32.dll")] public static extern int FindWindow(string IpClassName, string IpWindowName); [DllImport("user32.dll")] public static extern int FindWindowEx(int hWnd1, int hWnd2, string Ipsz1, string Ipsz2); [DllImport("user32.dll")] public static extern int SendMessage(int hwnd, int wMsg, int wParam, int IParam); const int WM_LBUTTONDOWN = 0x0201; const int WM_LBUTTONUP = 0x0202; const int BM_CLICK = 0x00F5; int nhwnd = FindWindow(null, "AnyLink 알림사항"); if(nhwnd > 0) { int hw1 = FindWindowEx(nhwnd, 0, "Button", "닫 기"); if(hw1 > 0) { SendMessage(hw1, BM_CLICK, 0, 1); } } | cs |
간단한 소스코드 이기때문에, 보시면 바로 이해하실 것 같습니다.
이 코드를 활용하면, 다른 상황에도 활용할 수 있을 것 같습니다.
'C#.NET' 카테고리의 다른 글
[C#] 트위터 형태소 분석기(Twitter-Korean) #1 (0) | 2017.03.20 |
---|
Comments