procedure TmyForm.Button6Click(Sender: TObject); 
var 
h:longword; //放句柄,中间顺便暂放下PID 
tmp:longword;//这个专门来占格式收集垃圾 
DllName:pchar; 
Mysize:longword;//放字符串长度 
Parameter:pointer;//放那个参数的指针(位置在目标进程内) 
begin 
DLLName:='Testdll.dll'; 
Mysize:=strlen(Dllname)+1; 
winexec('notepad',1); 
GetWindowThreadProcessId(FindWindow('notepad', nil), @h); 
h:=OpenProcess(PROCESS_ALL_ACCESS, False, h); 
Parameter:= VirtualAllocEx(h, nil, Mysize, MEM_COMMIT, PAGE_READWRITE); 
WriteProcessMemory(h, Parameter, Pointer(DllName), MySize, tmp); 
CreateRemoteThread(h,nil, 0, GetProcAddress(GetModuleHandle('KERNEL32.DLL'), 'LoadLibraryA'),
Parameter, 0 , tmp); 
end; 
通过以上代码能注入成功,那为什么我把 “winexec('notepad',1);” 这一句注释了,然后自己手动打开 记事本 在点击注入DLL 却没办法成功呢? 这是怎么回事呢????