CreateProcess(100分)

  • 主题发起人 主题发起人 wl95421
  • 开始时间 开始时间
W

wl95421

Unregistered / Unconfirmed
GUEST, unregistred user!
我用CreateProcess函数的时候
如调用了NotePad.exe之后
仍然没有显示窗口
我已经设置了
StartInfo.wShowWindow := SW_SHOW了
不过还是不行
 
可能你的参数设置的不对
 
同样的参数
我在VC里面试过可以
 
参数大概是这样的: CreateProcess(PChar(CurDir), nil, nil, nil, False,
NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo);
这里使用:StartInfo.wShowWindow := SW_SHOWNORMAL



 
我这些参数都 试过了
不行的
但用CreateProcess启动NotePad时
在任务管理器看不到NotePad
启动Cmd.exe却可以看到
 
我猜你是在一个外壳里启动了这个程序这样做我想你应该可以看到这个进程
启动这个进程后,用closeHanlde(ProcessInfo。handle);和进程句柄,关
掉你的父进程和这个进程的关系,
 
问题是我不想关闭这个进程
只是想把它显示出来
同时通过发送消息进行操作
 
是不是没有指明路径?(猜的[:D])
 
我的可以阿:
procedure TForm1.Button1Click(Sender: TObject);
var
si: TSTARTUPINFO;
pi: TProcessInformation;
ret: LongBool;
begin
with si do
begin
cb := SizeOf(si);
lpReserved := nil;
lpDesktop := nil;
lpTitle := nil;
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := SW_SHOW;
cbReserved2 := 0;
lpReserved2 := nil;
end;

ret := CreateProcess('I:/Windows/NotePad.exe', nil, nil, nil, False, CREATE_DEFAULT_ERROR_MODE, nil, nil, si, pi);
if not ret then ShowMessage('Error');
end;
 
现在可以了
谢谢各位
我还有一个问题
如何向这个进程发消息
比如说我运行了Cmd.exe
如何对它进行键盘模拟输入
回答这个问题之后
我再结束分数
而且再加100分
 
后退
顶部