函数简介:执行用AsmAdd加到缓冲中的指令.

函数原型:

LONGLONG AsmCall (hwnd,mode)

参数定义:

hwnd 整形数: 窗口句柄

mode 整形数: 模式,取值如下

       0 : 在本进程中进行执行,这时hwnd无效. : 此模式会创建线程.

       1 : hwnd指定的进程内执行,注入模式为创建远程线程

       2 :必须在对目标窗口进行注入绑定后,才可以用此模式(直接在目标进程创建线程).此模式下的call的执行是排队的,如果同时有多个call在此窗口执行,那么必须排队.所以执行效率不如模式1. 同时此模式受目标窗口刷新速度的影响,目标窗口刷新太慢,也会影响此模式的速度. : 此模式会创建线程.

       3 :同模式2,但是此模式不会创建线程,而直接在hwnd所在线程执行.

       4 :同模式0, 但是此模式不会创建线程,直接在当前调用AsmCall的线程内执行.

返回值:

长整形数:
rax或eax值

示例:

CString str;
 GetDlgItemText(EDIT_ASM_INT, str);

 long mode = StrToInt(str);
 CString  hw;

 LONG64 ret = QS->AsmCall(g_hwnd, mode);
 hw.Format(">>>AsmCall\r\n%s,%d\r\n返回值:%I64d", str, mode, ret);
 SetLogText(hw);

另要注意的是,AsmAdd里所有的数值都是16进制


必须是顶级窗口句柄