代码如下:
HANDLE hProc = OpenProcess(PROCESS_VM_READ,FALSE,dwPID);
if(hProc)
{
DWORD dwRet = -1;
DWORD dwAddr = *(DWORD*)((DWORD)GetCommandLine + 1);
TCHAR tcBuf[buffLen];
DWORD dwRead = 0; ReadProcessMemory(hProc,(LPVOID)dwAddr,&dwAddr,4,&dwRead);
}在xp、server2003上都没问题。
HANDLE hProc = OpenProcess(PROCESS_VM_READ,FALSE,dwPID);
if(hProc)
{
DWORD dwRet = -1;
DWORD dwAddr = *(DWORD*)((DWORD)GetCommandLine + 1);
TCHAR tcBuf[buffLen];
DWORD dwRead = 0; ReadProcessMemory(hProc,(LPVOID)dwAddr,&dwAddr,4,&dwRead);
}在xp、server2003上都没问题。
解决方案 »
- 主界面上的导航条,大家用什么控件呢?(delphi开发)
- Delphi StringGrid同一个表格中,如何显示不同颜色的字
- DBExpress数据库访问非常慢
- TWAIN 问题,大侠请入
- 请教:delphi如何通过web proxy的NTLM 身份验证?
- 如何使用UDP实现无错数据传输
- 有关Grid的问题
- painbox 变大 其中的图像如何也变大?
- 一个对于高手来说不算难的抢分问题-----语法检测(这里有VB源代码,请高手翻译成Delphi的)
- 如何得知windows使用的字体??
- 将临时表中的多条数据插入到正式表中时,如何保证凭证号不重复?
- 关于createprocess()命令行参数的问题
把UAC禁用再试试这段代码
UAC禁用过了不行。GetLastError()返回错误码0x000003e6,没有访问权限。
怎样才能提Debug权限?
var
OldTokenPrivileges, TokenPrivileges: TTokenPrivileges;
ReturnLength: dword;
hToken: THandle;
Luid: int64;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
LookupPrivilegeValue(nil, 'SeDebugPrivilege', Luid);
TokenPrivileges.Privileges[0].luid := Luid;
TokenPrivileges.PrivilegeCount := 1;
TokenPrivileges.Privileges[0].Attributes := 0;
AdjustTokenPrivileges(hToken, False, TokenPrivileges, SizeOf(TTokenPrivileges), OldTokenPrivileges, ReturnLength);
OldTokenPrivileges.Privileges[0].luid := Luid;
OldTokenPrivileges.PrivilegeCount := 1;
OldTokenPrivileges.Privileges[0].Attributes := TokenPrivileges.Privileges[0].Attributes or SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, False, OldTokenPrivileges, ReturnLength, PTokenPrivileges(nil)^, ReturnLength);
end;本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/flashrhx2007/archive/2008/11/18/3326416.aspx
置上PROCESS_ALL_ACCESS也不行。难道就无解了吗?
DWORD dwAddr = *(DWORD*)((DWORD)GetCommandLine + 1);
返回的内存地址超出被查进程的内存地址了。本文的初衷是获取其它进程的命令行地址,看来使用这种方式在win7下不可行。在网上搜到另一种替代方式:http://wj32.wordpress.com/2009/01/24/howto-get-the-command-line-of-processes/。