
泚æïŒ
ãã®èšäºãè¡åã®æåŒããšããŠåãåããªãã§ãã ããããã¹ãŠã®ããŒã«ãŒã«ãŒã ã§ã®ãããã®äœ¿çšã¯çŠæ¢ãããŠãããã¢ã«ãŠã³ãå ã®ãã¹ãŠã®ãéã®åŒãåºãã«ããã¢ã«ãŠã³ãããã¯ã¢ãŠããå¿ èŠã§ãã ãã®èšäºã«ã¯ããã«äœ¿ããã³ãŒãã¯ãããŸããã®ã§ãã¹ã¯ãªããããã£ã®ç掻ã楜ã«ããªãããã«ããããã®åºæ¬åçãšã¢ã«ãŽãªãºã ãæ€èšããŸãã ããã°ã©ãã³ã°ã«ç²ŸéããŠãã人ã¯ãå¿ èŠã«å¿ããŠããã®ãããªããã°ã©ã ãäœæã§ããŸãã
åè ã®ããŒã«ãŒãããã®ååšã¯åžžã«çåèŠãããŠãããäžéšã®ããŒã«ãŒã«ãŒã ã§ã¯ããã®ãããªãœãããŠã§ã¢ã䜿çšãããšäžè¬çã«ãã®ãããªããã°ã©ã ã䜿çšã§ããªãå¯èœæ§ããããšäž»åŒµããŠããŸãã ããããããã°ã©ãã³ã°ã«ç²ŸéããŠãã人ãªã誰ã§ãããããèªäœãæžãããšã¯é£ãããªãããšãç解ããŠãããã©ããªä¿è·ã«å¯ŸããŠãåžžã«å察ããã§ãããã æãé£ããïŒãããã£ãŠãæãéèŠãªïŒåé¡ã¯ãææ決å®ã¢ã«ãŽãªãºã ã§ãã å®éããã©ã¹ãããããã¢ã«ãŽãªãºã ã®éçºã¯ããã»ã©åçŽã§ã¯ãããŸããããå¿ ãããå¿ èŠã§ã¯ãããŸããã ããŒã«ãŒã«ãŒã ããã®ããŸããŸãªããŒãã¹ãã¬ãŒãããã¯ãããã³ãã®ä»ã®ãªãã¡ãŒã«ããããããã¯ãŒããŸãã¯åŒ±ããã€ãã¹ããã¬ã€ããã®ã«ååã§ãããããã¯å°ããªå¶éã«å¯ŸããŠéåžžã«çŸå®çã§ãã
äžè¬ã«ãæåã®ãããïŒãŸãã¯ã ããŒã«ãŒããã¬ã€ããããã°ã©ã ïŒã¯ããæ話ããšããæ¬ã®èè ã§ããæåãªããŒã«ãŒãã¬ãŒã€ãŒã§ãããã€ã¯ã«ãã«ãã£ãŠ80幎代åæã«éçºãããããªã©ãã¯ããšèŠãªãããŸãã ãã®ããã°ã©ã ã®ç¹åŸŽã®1ã€ã¯ãã¿ã€ãã³ã°ããŒã«ã䜿çšã§ããããšã§ããã察æŠçžæãé·ãéèããŠããå Žåã圌ã®è¡åã¯çŽ æ©ãè¡åããããããã©ããšèŠãªãããå¯èœæ§ãé«ããªããŸããã
ã€ã³ã¿ãŒãããäžã§ã¯ãå€ãã®æ¢è£œã®ããããèŠã€ããããšã¯ããã»ã©é£ãããããŸããã æãåçŽãªç¡æã®ã€ã³ã¹ã¿ã³ã¹ãããå€æ°ã®æ©èœã»ãããåãããããããããŒã ã$ 200ã®äŸ¡æ Œã§è€æ°ã®ã¢ã«ãŠã³ãã§ãã¬ã€ã§ããå¯èœæ§ããããŸãã ãŸããããã¯å ¬éãããŠãããœãŒã¹ã«ã®ã¿ååšããç¹å®ã®ã¯ããŒãºãããã«ãŒãã©ãŒã©ã ããµã€ãã§äœãèŠã€ãããã¯ããããŸããã åã«ãããšãè¯ããããã®ã³ã¹ãã¯1000ãã«ããã§ãã³ããŒãšãããã5000ãã«ããããŸãã ãã®ãããªããã°ã©ã ã¯ãããããèªåèªèº«ãé衚瀺ã«ããŠäººéã®è¡åãå¯èœãªéãæš¡å£ããããšãã§ããŸãããã¥ãŒã©ã«ãããã¯ãŒã¯ã䜿çšããŠæ±ºå®ãäžãããšã¯éåžžã«å¯èœã§ãã ãã®èšäºã§ã¯ããããã500ãã«ã§æžãã®ã§ã¯ãªããããã°ã©ã ãããç°¡åã«æ©èœããããã®åºæ¬ååãç解ããããšããŠããŸãã ãããŠããããªãæ¹åã«å¶éã¯ãããŸããã
ãããã®åºæ¬
ãããã®äž»ãªã¢ãžã¥ãŒã«ïŒ
- æ å ±ã®åä¿¡-ææ決å®ã«å¿ èŠãªã¯ã©ã€ã¢ã³ãããã®æ å ±ã®åä¿¡ã å«ãŸãããã®-ã«ãŒãã察æŠçžæã®ããããã¹ã¿ãã¯ãµã€ãºããã¿ã³ã®äœçœ®ãªã©ã
- ææ決å®ã¯ããããã®ã¢ã¯ã·ã§ã³ã決å®ããããã®ã¢ã«ãŽãªãºã ã§ãããè«ççãªã¿ã¹ã¯ãšåå¥ã®ãããã¯ã§ããããããã®ã·ãªãŒãºã®æ¬¡ã®èšäºã§æ€èšããŸãã
- ãŠãŒã¶ãŒã®è¡åã®ã·ãã¥ã¬ãŒã·ã§ã³-ãŠãŒã¶ãŒããã¿ã³ãæŒãããšã®æš¡å£ãããŠã¹ã®åãã®æš¡å£ã
ãã®èšäºã§ã¯ãæ å ±ã®å ¥å/åºå-ããŒã«ãŒãããã®äž»èŠãªãœãããŠã§ã¢ã¢ãžã¥ãŒã«ã«ã€ããŠèª¬æããŸãã
æ å ±ãåãåã
äž»ãªæ å ±æºã¯æ¬¡ã®ãšããã§ãã
- ãã°ãã¡ã€ã«-ã¯ã©ã€ã¢ã³ãããšã«åå¥ã§ãããå€ãã®å Žåãã¢ã¯ã·ã§ã³ïŒãã«ãã«ãŒãããã¬ãŒã€ãŒã¢ã¯ã·ã§ã³ïŒããã°ãã¡ã€ã«ã«èšé²ãããŸãããã°ãã¡ã€ã«ã¯ãã£ã¹ã¯ããåžžã«åèªã¿èŸŒã¿ãããå¿ èŠãªæ å ±ãå³åº§ã«åä¿¡ã§ããŸãã
- APIã¡ãã»ãŒãž-ããã§ã¯å€ãã®æçšãªæ
å ±ãèŠã€ããããšãã§ããŸããæãèå³æ·±ãéšåã¯ããã¹ãã®åºåã§ãã ã»ãšãã©ãã¹ãŠã®ããŒã«ãŒã¯ã©ã€ã¢ã³ãã®ããŒãã«ã«ã¯ããã£ãããšæ
å ±ãŠã£ã³ããŠã®æ©èœãçµã¿åãããããã¹ãèŠçŽ ããããŸãã å¿
èŠã«å¿ããŠããã£ã¹ããªãã¥ãŒã·ã§ã³ã«é¢ãããã¹ãŠã®æ
å ±ïŒãã¬ãŒã€ãŒã®ã¢ã¯ã·ã§ã³ãã«ãŒããããŒãã«ã«ãŒããªã©ïŒã衚瀺ã§ããŸãã 次ã®ããã«ãªããŸãã
- ãã³ãå±¥æŽ-ã¯ã©ã€ã¢ã³ãã§ãªãã·ã§ã³ãæå¹ã«ãªã£ãŠããå Žåããã¬ãŒã€ãŒãåå ããŠãããã¹ãŠã®ãã³ãã®å±¥æŽãå¥ã®ãã¡ã€ã«ã«èšé²ãããŸãã åé¡ã¯ããã®æ å ±ã¯ãé åžèªäœã®çµäºåŸã«ã®ã¿èšé²ããããããäºå®ã®åŸã«ããååŸã§ããªãããšã§ãã
- ã¯ã©ã€ã¢ã³ãã®ã¹ã¯ãªãŒã³ã·ã§ãã-ããã¹ãïŒãããããã¬ã€ã€ãŒã®ããã¯ããŒã ïŒãšã°ã©ãã£ãã¯æ å ±ïŒã«ãŒãããã¿ã³ã®äœçœ®ïŒã®äž¡æ¹ãèªèããããã«äœ¿çšã§ããŸãã
éåžžããã¹ãŠã®é ä¿¡æ å ±ããã°ãã¡ã€ã«ã«åé¡ãããããã§ã¯ãããŸãããããšãã°ãPokerstarsã¯ã©ã€ã¢ã³ãã®ãã°ãã¡ã€ã«ïŒCïŒ\ Program Files \ PokerStars \ PokerStars.log.0ïŒããã¯ãç§ãã¡ã«äžããããã«ãŒããšãã£ãŒã©ãŒã®äœçœ®ã®ã¿ãèŠã€ããããšãã§ããŸãïŒ
MSG_TABLE_SUBSCR_ACTION
MSG_TABLE_SUBSCR_DEALPLAYERCARDS
sit0
nCards=2
sit1
nCards=2
sit2
nCards=2
sit3
nCards=2
sit4
nCards=2
sit5
nCards=2
dealerPos=3
TableAnimation::dealPlayerCards
MSG_TABLE_PLAYERCARDS 000C0878
::: 11c
::: 11d
11sã11d-ç§ãã¡ã®ã«ãŒãïŒJcJdïŒãããã³ãã£ãŒã©ãŒã¯3äœã§ãã
APIã¡ãã»ãŒãžã䜿çšããã¡ãœããã®å®è£ ã¯éåžžã«ç°¡åã§ãå€ãã®å Žåãå¿ èŠãªæ å ±ããã¹ãŠååŸã§ããŸãã å®è£ ããã«ã¯ãããŒã«ãŒã¯ã©ã€ã¢ã³ãããã»ã¹ãžã®DLLã€ã³ãžã§ã¯ã·ã§ã³ã䜿çšããå¿ èŠããããŸãã å®è£ ãããDLLã¯ãããŒã¹ãããŒã¯ããã®ä»ã®æ å ±åºåãã·ãã¥ã¬ãŒãããã®ã«åœ¹ç«ã¡ãŸãã æ³šå ¥ã®äž»ãªæ¬ ç¹ã¯ãã¯ã©ã€ã¢ã³ãããã®ãããªè©Šã¿ããã£ããããããšããŠããå Žåããã®ãããªåœ±é¿ãã¯ã©ã€ã¢ã³ãã«é ãããšãé£ããããšã§ãã ããããããã°ã©ã ã¯ãã¹ãŠã®å®è£ ããããã³ã°ãšããŠèªèããããšã¯ã§ããŸããããããã®æ¹æ³ã¯ãããšãã°æåãªPunto Switcherãªã©ã®å®å šã«æ£çŽãªããã°ã©ã ã䜿çšããããã§ãã
DLLãå®è£ ããã«ã¯ãããã€ãã®æ¹æ³ããããŸãã
1.ã¬ãžã¹ããªãä»ããå®è£ ã
2.ãã©ããïŒããã¯ïŒã䜿çšããŸãã
3.ãªã¢ãŒããããŒã䜿çšããŠå±éãã
4. WriteProcessMemoryïŒïŒã䜿çšããŠã¡ã¢ãªã«çŽæ¥æžã蟌ã¿ãŸã ã詳现ã«ã€ããŠã¯ããã¡ããåç §ããŠãã ããã
æãç°¡åã§æã䟿å©ãªã¢ãããŒãã§ãããã©ããã®äœ¿çšãæ€èšããŸãã ãããè¡ãã«ã¯ãSetWindowsHookEx APIé¢æ°ïŒidHookãlpfnãhModãdwThreadIdïŒã䜿çšããŸãã
idHook-ãã£ããã£ããã·ãŒãžã£ã®ã¿ã€ããå®çŸ©ããŸããã°ããŒãã«ã€ã³ã¿ãŒã»ããã§ã¯ãWH_CBTã䜿çšããå¿ èŠããããŸãïŒããšãã°ãããŒããŒãã¡ãã»ãŒãžãã€ã³ã¿ãŒã»ããããã«ã¯ãWH_KEYBOARDã䜿çšã§ããŸãïŒã
lpfn-ã€ã³ã¿ãŒã»ããããã·ãŒãžã£ãžã®ãã€ã³ã¿ãã€ã³ã¿ãŒã»ããäžã«æ¯ååŒã³åºãããŸãã ãã®äžã§ãå¿ èŠãªã¡ãã»ãŒãžããã£ããããå¿ èŠãªã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
hMod-lpfnããã·ãŒãžã£ãå«ãDLLãžã®ãã³ãã«ã
dwThreadId-ã€ã³ã¿ãŒã»ãã¿ãŒãã€ã³ã¹ããŒã«ãããŠããã¹ã¬ããã®èå¥åïŒã°ããŒãã«ã€ã³ã¿ãŒã»ããã®å Žåã¯0ïŒã
DLLã«ã¯ããã©ãããèšå®ããããã®é¢æ°ãšããã®ãã©ãããããªã¬ãŒããããšãã«åŒã³åºãããé¢æ°ãå¿ èŠã§ãã
BOOL WINAPI SetHook() {
g_hook = SetWindowsHookEx(WH_CBT, (HOOKPROC) CBTProc, g_hinstDll, 0);
return (g_hook != NULL);
}
LRESULT WINAPI CBTProc( int nCode, WPARAM wParam, LPARAM lParam) {
if (nCode < 0)
return CallNextHookEx(g_hHook, nCode, wParam, lParam);
if (nCode == HCBT_ACTIVATE)
{
//-
//..
}
else if (nCode == HCBT_DESTROYWND)
{
//-
//..
}
else if (nCode == HCBT_SETFOCUS)
{
//-
//..
}
//
return (CallNextHookEx(g_hook, nCode, wParam, lParam));
}
* This source code was highlighted with Source Code Highlighter .
ã°ããŒãã«ã€ã³ã¿ãŒã»ãããã€ã³ã¹ããŒã«ãããšãDLLã¯ã·ã¹ãã ã®ãã¹ãŠã®ããã»ã¹ã«åã蟌ãŸãããããå€ãã®ã¡ã¢ãªãå æããªãããã«ãããŒãããã»ã¹ã2ã€ã®éšåã«åå²ã§ããŸãã ãŸããã°ããŒãã«DLLãå°å ¥ãããŸããããã¯ãæå°éã®ã¡ã¢ãªãå æããã©ã®ããã»ã¹ã«ããŒããããŠãããã®ã¿ãå€æã§ããŸãã LoadLibraryïŒïŒã®å©ããåããŠãå¿ èŠãªããã»ã¹ã®ããã«ãå¿ èŠãªæ©èœïŒã«ãŒãèªã¿åããããžãã¯ãªã©ïŒãå®è£ ãããŠãã2çªç®ã®DLLãããŒãããŸãã
ã€ã³ã¿ãŒã»ããåŸãã¯ã©ã€ã¢ã³ãã«éä¿¡ãããããŸããŸãªAPIã¡ãã»ãŒãžããã£ããã§ããŸãã ããšãã°ããªããç·šéèŠçŽ ïŒãã£ããã®æŽçã«äœ¿çšã§ããŸãïŒã«åºåããå ŽåãEM_STREAMINã¡ãã»ãŒãžã䜿çšãããŸãã ãããŠããã£ããã«è¡šç€ºãããããã¹ããåãåãããã«ãããã€ã³ã¿ãŒã»ãããããããšãšãã«é ä¿¡æ å ±ãåãåãããšãã§ããŸãã éšå±ããšã«ãããã¹ãåºåã®èŠçŽ ã¯åå¥ã®å ŽåããããŸãããæé ã¯åãã§ãã äžè¬ã«ãSpy ++ããã°ã©ã ã䜿çšããŠãã¯ã©ã€ã¢ã³ãïŒã»ãšãã©ã®äººã¯ããã«ç²ŸéããŠãããVisual Studioããã±ãŒãžã«å«ãŸããŠããŸãïŒãŸãã¯é¡äŒŒç©ã«éä¿¡ãããAPIã¡ãã»ãŒãžã調ã¹ããšéåžžã«äŸ¿å©ã§ãã Spy ++ã䜿çšãããšãå¿ èŠãªãŠã£ã³ããŠã®ã¿ã€ãã«ãšãã€ã³ã¿ãŒã»ããããå¿ èŠãããAPIã¡ãã»ãŒãžãèŠã€ããããšãã§ããŸãã
ã¯ã©ã€ã¢ã³ããéæšæºã®èŠèŠèŠçŽ ãŸãã¯éæšæºã®æ¹æ³ã䜿çšããŠæ å ±ã衚瀺ãããšããã¹ãŠãè€éã«ãªããŸãã ãã®å Žåããã§ã«ãªããŒã¹ãšã³ãžãã¢ãªã³ã°ã䜿çšããŠãããã»ã¹ã¡ã¢ãªã§ãã®ããŒã¿ãæ¢ãå¿ èŠããããŸãã åãããã«ããã¹ãŠã®ããã¹ãæ å ±ã¯æååã®åœ¢ã§ã¡ã¢ãªã®ã©ããã«ä¿åããããããå ŽæãèŠã€ããã ãã§æžã¿ãŸãã
ååãæé ã§ããªãå ŽåïŒã¯ã©ã€ã¢ã³ãããã®ãããªè©Šã¿ããããã¯ããå ŽåïŒããŸãã¯å¿ èŠãªæ å ±ãèŠã€ããããšãã§ããªãå Žåã¯ãç»é¢ããã£ããã£ããããããæåãèªèããæ¹æ³ã䜿çšã§ããŸãã ãã ãããã®æ¹æ³ã¯æéãããããäœæ¥æã«å€ãã®ãªãœãŒã¹ãå¿ èŠãšãããããæåŸã®æ段ãšããŠæ®ããŠããããšããå§ãããŸãã ãã®äž»ãªå©ç¹ã¯ããã®æ¹æ³ã§ã¯ããŒã«ãŒã¯ã©ã€ã¢ã³ããæ€åºã§ããªãããšã§ãã éåžžãå¥ã®ã³ã³ãã¥ãŒã¿ãŒã§ããŒã«ãŒããããå®è¡ã§ããŸãïŒãã ããããŒã¹ãããŒã¯ã®åå ãšãªãéšåã¯ã¯ã©ã€ã¢ã³ããšã³ã³ãã¥ãŒã¿ãŒäžã«ããå¿ èŠããããŸããããã®éšåã§ã¯DLLå®è£ ã䜿çšããå¿ èŠã¯ãããŸããïŒãããŒã«ãŒã¯ã©ã€ã¢ã³ããšã³ã³ãã¥ãŒã¿ãŒç»é¢ããã®ãããªã転éãããŸãã ä»®æ³ãã·ã³ã§ã¯ã©ã€ã¢ã³ããå®è¡ããã¡ã€ã³OSã§ããããå®è¡ã§ããŸãã ã¹ã¯ãªãŒã³ãã£ããã£ã¢ãããŒãã®æãããªæ¬ ç¹ã¯ããã¬ã€ãããããŒãã«ã®æ°ãã¹ã¯ãªãŒã³ã®è§£å床ãšãã«ãŒãã®ããŒããšã¯ã©ã€ã¢ã³ãã§äœ¿çšãããããŒãã«ãžã®äŸåã«ãã£ãŠå¶éãããããšã§ãã
ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã®ã·ãã¥ã¬ãŒã·ã§ã³
ãããããã¿ã³ãéåžžã®ãã¬ãŒã€ãŒã®åäœãã·ãã¥ã¬ãŒãããä»ã®ã¢ã¯ã·ã§ã³ãæŒããšãæ倧éã®ä¿¡é Œæ§ãéæããå¿ èŠããããŸãã ãã®å Žåã移åã®éå§çŽåŸã«ãã¹ãŠã®ã¢ã¯ã·ã§ã³ãå®è¡ããªãããã«ããããã®å¿çã«ã©ã³ãã ãªé 延ã䜿çšããå¿ èŠããããŸãã RNGã«é¢ããèšäºãããPokerStarsãããŒã«ãŒã«ãŒã ã§ãŠãŒã¶ãŒã®ããŠã¹ã®åãã䜿çšããŠä¹±æ°ãçæããŠããããšãããããŸãã åæã«ããŠãŒã¶ãŒããã®æ å ±ã䜿çšããŠãŠãŒã¶ãŒã確èªããããšã劚ãããã®ã¯äœããããŸããïŒä»ã®ããŒã«ãŒã¯ã©ã€ã¢ã³ãããã®ãããªãã¬ãŒã€ãŒã®ãç£èŠããè¡ãå¯èœæ§ããããŸãïŒã ãããã£ãŠãç»é¢äžã§ããŠã¹ãã©ã³ãã ã«åããããã¿ã³ãæŒãããŠãããã€ã³ãã«ã«ãŒãœã«ã移åããããšãéèŠã§ãã ããã§ããããŒã«ãŒã¯ã©ã€ã¢ã³ããŠã£ã³ããŠã®å€åŽïŒãã¹ã¯ããããã¿ã¹ã¯ããŒïŒã§ã©ã³ãã ã«ã¯ãªãã¯ããããšãã§ããŸãã
ãããã£ãŠãããŠã¹ãããã°ã©ã ã§çŽæ¥æäœããã®ãæé©ã§ãã å¿ èŠãªãã¿ã³ã®ãã³ãã«ãèŠã€ããŠSendMessageïŒïŒã䜿çšããŠã¡ãã»ãŒãžãéä¿¡ãããªãã·ã§ã³ããããŸãããã¯ã©ã€ã¢ã³ãèªäœãžã®åœ±é¿ãæå°éã«æããå€éšãããã¹ãŠãå®è¡ããããšããå§ãããŸãã ãŠã£ã³ããŠå ã®ãã¿ã³ã®ããŒã«ã«åº§æšãèŠã€ããå¿ èŠãããããšãããããŸãããããã«ã¯ãåãSpy ++ã䜿çšã§ããŸãã ããŒã«ãŒã¯ã©ã€ã¢ã³ãã§ããŠã¹ã¡ãã»ãŒãžããã£ããããããã«èšå®ããå Žåãç®çã®é åãã¯ãªãã¯ãããšããŠã£ã³ããŠå ã®ã¯ãªãã¯ã®ããŒã«ã«åº§æšãååŸãããŸãã ãã®ãããªãã®ïŒ
ãã®ããããã¿ã³å ã®é·æ¹åœ¢ã®åº§æšãèŠã€ããããšãã§ããŸãããããããã¯ãªãã¯ãããã€ã³ããã©ã³ãã ã«éžæããŠã人éã®åäœãã·ãã¥ã¬ãŒãããå¿ èŠããããŸãã<00227> 00120644 P WM_LBUTTONDOWN fWKeys:MK_BUTTON xPos:840 yPos:103
ããŠã¹ãå¶åŸ¡ããã«ã¯ã SendInput APIé¢æ°ïŒUINT nInputsãLPINPUT pInputsãint cbSizeïŒã䜿çšããŸãã INPUTæ§é äœã®é åãæž¡ãããŸããããã«ã¯ãããŠã¹ãšããŒããŒãã䜿çšããé£ç¶ã¢ã¯ã·ã§ã³ãå«ãŸããŸãã ããã¯ãããŠã¹ãç¹å®ã®äœçœ®ã«ç§»åããŠå·Šãã¿ã³ãæŒãããã®ã³ãŒãã§ãã
//
POINT coords;
coords.x = 840;
coords.y = 103;
//
ClientToScreen(hWND, &coords);
//
HDC hdc = GetDC(NULL);
int screenWidth = GetDeviceCaps(hdc, HORZRES);
int screenHeight= GetDeviceCaps(hdc, VERTRES);
ReleaseDC(NULL, hdc);
//
double worldCoords = 65535 * coords.x;
double buttonX = worldCoords / screenWidth;
worldCoords = 65535 * coords.y;
double buttonY = worldCoords / screenHeight;
// INPUT
INPUT input[3];
MOUSEINPUT mouseInput;
//
input[0].type=INPUT_MOUSE;
mouseInput.dx = ( int )buttonX;
mouseInput.dy = ( int )buttonY;
mouseInput.mouseData = NULL;
mouseInput.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;
mouseInput.time = 0; // 1-2.
mouseInput.dwExtraInfo = 1001;
input[0].mi = mouseInput;
//
input[1].type=INPUT_MOUSE;
mouseInput.dx = ( int )buttonX;
mouseInput.dy = ( int )buttonY;
mouseInput.mouseData = NULL;
mouseInput.dwFlags = MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE;
mouseInput.time = 0; // 1-2.
mouseInput.dwExtraInfo = 1001;
input[1].mi = mouseInput;
// ...
input[2].type=INPUT_MOUSE;
mouseInput.dx = ( int )buttonX;
mouseInput.dy = ( int )buttonY;
mouseInput.mouseData = NULL;
mouseInput.dwFlags = MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE;
mouseInput.time = 0; // 1-2.
mouseInput.dwExtraInfo = 1001;
input[2].mi = mouseInput;
int numberOfInputs = 2;
// INPUT
SendInput(numberOfInputs, input, sizeof (INPUT));
* This source code was highlighted with Source Code Highlighter .
ãã®æ©èœã¯ããã¿ã³ã®ç§»åãæŒãã ãã§ãªããããŒããŒãã®æäœã«ã䜿çšã§ããŸãã ãããè¡ãã«ã¯ãåæ§ã®KEYBDINPUTæ§é äœãæž¡ãå¿ èŠããããŸãããã»ãšãã©ã®å ŽåãããŒããŒãã䜿çšããå¿ èŠã¯ãããŸããã
ããã§ã¯ããããã®ãã¹ãŠã®ããã°ã©ã ã¢ã¯ã·ã§ã³ã®åºç€ãšãªãæ å ±ã®å ¥åãšåºåã調ã¹ãŸããã 次ã®ããŒãã§ã¯ããããããžãã¯ã®åºç€ãšãªãææ決å®ã¢ãžã¥ãŒã«ãåæããããã°ã©ã ã«é©çšã§ããããŸããŸãªæŠç¥ãæ€èšããŸãã
Habrahabrå°çšã®Pokeroff.ruã®èšäº