帮助看一下.谢谢先...
var
SI: TStartupInfo;
PI: TProcessInformation;
begin
FillChar(sI,sizeof(sI),#0);
sI.cb := SizeOf(sI); // CREATE_NEW_CONSOLE or
si.dwFlags:=STARTF_USESTDHANDLES; //or STARTF_USESTDHANDLES
SI.wShowWindow := SW_hide;
s:='cmd.exe /k C:\turboc2\tcc -exxx '+filename+'>'+refilename;
//i:=ShellExecute(handle, 'open', PChar('command.com'), PChar(s), nil, SW_hide); --以前用这个DOS窗口不会显示出来.
CreateProcess(nil,pchar(s),nil,nil,false,NORMAL_PRIORITY_CLASS, nil, nil, sI, pI) ; --现在DOS窗口会显示出来.
end;怎么使DOS窗口不显示出来, SI.wShowWindow := SW_hide; 这样不行吗!?
var
SI: TStartupInfo;
PI: TProcessInformation;
begin
FillChar(sI,sizeof(sI),#0);
sI.cb := SizeOf(sI); // CREATE_NEW_CONSOLE or
si.dwFlags:=STARTF_USESTDHANDLES; //or STARTF_USESTDHANDLES
SI.wShowWindow := SW_hide;
s:='cmd.exe /k C:\turboc2\tcc -exxx '+filename+'>'+refilename;
//i:=ShellExecute(handle, 'open', PChar('command.com'), PChar(s), nil, SW_hide); --以前用这个DOS窗口不会显示出来.
CreateProcess(nil,pchar(s),nil,nil,false,NORMAL_PRIORITY_CLASS, nil, nil, sI, pI) ; --现在DOS窗口会显示出来.
end;怎么使DOS窗口不显示出来, SI.wShowWindow := SW_hide; 这样不行吗!?
解决方案 »
- delphi ini文件问题
- 如何 捕捉 程序或所有控件 发出的所有异常 信息 , 并 屏闭这些信息 换成 自己的信息 ??????????? 急!!!!!!!!!!
- 奇怪的问题?程序使用ACCESS数据库,现在一运行程序,CPU就百分之九十几,但程序主界面却不出来??进程里看得到。
- 本人是菜鸟,请问哪里有比较全的关于tee chart的使用说明?
- 如何让用户自己设置报表格式
- FastReport的问题
- 图标
- 请问哪里可以下载Delphi5?
- 怎么样定时刷新!!!!!!!!!!!
- 请问如何在用TMediaPlayer控件播放VCD中的.DAT文件时,控制使用那个声音通道?
- 求助!(D6 RTLUpdate3)
- 4月30日结婚,高兴散分!!
在次先谢谢了!!!!
主 题: 请教如何打开一个外部程序并隐藏,,
作 者: fenghuovb (烽火)
等 级:
信 誉 值: 95
所属社区: Delphi Windows SDK/API
问题点数: 20
回复次数: 4
发表时间: 2004-9-10 17:06:22
我原来打算用 createprocess打开外部程序,用这个函数的参数隐藏,结果发现对于有些程序特别是delphi程序不起作用。。var
i: Boolean;
PI: _PROCESS_INFORMATION;
SI: _STARTUPINFOA;
begin
fillchar(SI, sizeof(SI), 0);
SI.cb := sizeof(SI);
SI.wShowWindow := SW_HIDE;
SI.dwFlags := STARTF_USESHOWWINDOW;
i := CreateProcess(nil, PChar('notepad.exe'), nil, nil, FALSE, CREATE_DEFAULT_ERROR_MODE, nil, nil, SI, PI);
if i = TRUE then showmessage('right');
end;我测试时用的是记事本程序,发现他可以隐藏,但时如果的 regedit.exe就不行了,特别是delphi编的程序,大部分都不行。。请问是什么原因,如果解决
回复人: lianshaohua(永远深爱一个叫“然”的好女孩儿!) ( ) 信誉:100 2004-9-10 17:12:29 得分: 20
用shellexecute(form1.handle,'open',pchar('name.exe'),'-s','',sw_hide)可以吗?
Top
回复人: fenghuovb(烽火) ( ) 信誉:95 2004-9-10 17:23:34 得分: 0
'-s' 用于regedit可以,不过对于delphi编的程序就不行了。
Top
回复人: fenghuovb(烽火) ( ) 信誉:95 2004-9-11 8:57:31 得分: 0
在顶,希望有人帮助..
Top
回复人: fenghuovb(烽火) ( ) 信誉:95 2004-9-24 9:25:54 得分: 0
我自已用一个最笨的方法,就是用crateprocess打开程序以后,用一个循环查找窗口,一找到马上就用setparent将其转到我自己的窗口.