能力值:
(RANK:570 )
2 楼
UINT NtUserSendInput(
IN UINT cInputs,
IN CONST INPUT *pInputs,
IN int cbSize)
{
LPINPUT pInput2 = NULL;
PTHREADINFO ptiCurrent;
TL tlInput;
DWORD dwArgumentError = ERROR_INVALID_PARAMETER;
BEGINRECV(UINT, 0);
if (sizeof(INPUT) != cbSize || cInputs == 0) {
MSGERROR(dwArgumentError);
}
ptiCurrent = PtiCurrent();
/*
* Probe arguments
*/
try {
ProbeForReadBuffer(pInputs, cInputs, DATAALIGN);
pInput2 = UserAllocPoolWithQuota(cInputs * sizeof(*pInputs), TAG_SENDINPUT);
if (pInput2 == NULL) {
ExRaiseStatus(STATUS_NO_MEMORY);
}
RtlCopyMemory(pInput2, pInputs, cInputs * sizeof(*pInputs));
} except (StubExceptionHandler(TRUE)) {
MSGERRORCLEANUP(0);
}
ThreadLockPool(ptiCurrent, pInput2, &tlInput);
retval = xxxSendInput(cInputs, pInput2);
ThreadUnlockPool(ptiCurrent, &tlInput);
CLEANUPRECV();
if (pInput2) {
UserFreePool(pInput2);
}
TRACE("NtUserSendInput");
ENDRECV();
}
能力值:
(RANK:570 )
3 楼
建议你对不熟悉的技术方向,先到收集足够的信息再去搞
只帮你这一次
能力值:
( LV2,RANK:10 )
4 楼
太感谢了!!
能力值:
( LV2,RANK:10 )
5 楼
不好意思,请问INPUT的定义是什么啊?或者不如你告诉我哪里可以找到更detail的信息,我就不麻烦你了!!
能力值:
( LV2,RANK:10 )
6 楼
找到SendInput在MSDN里的定义了,类似的,多谢!
能力值:
( LV12,RANK:240 )
7 楼
你去下nt4、2000的源代码。reactos也可以。你在google里用"NtUserSendInput reactos"
做关键字搜。
windows kernel\windows_2000_source_code\win2k\private\ntos\w32\ntuser\kernel\ntstubs.c
windows kernel\windows_2000_source_code\win2k\private\ntos\w32\ntuser\inc\ntuser.h
你用emule去下源码包。