我是做了一个HOOK注册表写入的回调函数,定义了跟API函数RegSetValueExW中同样的参数,但是我得到的lpValueName中的字符串只有注册表写入变化后的第一个字符,其他的怎么出不来呢?<br>function NewRegSetValueExW(hKey: windows.hKey; lpValueName: PAnsiChar; Reserved: DWORD; dwType: DWORD; lpData: Pointer; cbData: DWORD): Longint; stdcall;<br>var<br> str : string;<br>begin<br> Hook[fRegSetValueExW].Restore;//恢复HOOK入口<br> if dwType=REG_SZ then//如果是写入字符串类型的话,拦截<br> str:=Strpas(lpValueName);<br> MessageDlg('试图在注册表中写入:'+ str + '是否允许?', mtWarning, [mbYes, mbNo], 1);<br> end;<br> Hook[fRegSetValueExW].Change;{重新设置HOOK入口,重新截取API}<br>end;