C#启动外部程序,但不显示其界面

tiankong206 2012-08-07 03:48:20
C#启动外部程序,想隐藏界面,使用ProcessStartInfo.CreateNoWindow=true和ProcessStartInfo.WindowStyle=ProcessWindowStyle.Hidden都不管用,都不能隐藏界面,

请问应该怎么做才能隐藏?
...全文
3042 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuchenghao1989 2015-04-10
  • 打赏
  • 举报
回复
LZ是如何解决的。。。求解。
引用 15 楼 YUN_CHUANG 的回复:
没那么麻烦,直接设置窗体的可视状态就行了。 p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 我用来启动解压程序的时候这种方法是可行的,其它情况你们自己试下吧!
这个对有些程序根本没用,。
YUN_CHUANG 2012-09-13
  • 打赏
  • 举报
回复
没那么麻烦,直接设置窗体的可视状态就行了。
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
我用来启动解压程序的时候这种方法是可行的,其它情况你们自己试下吧!
tiankong206 2012-08-10
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
啊哦 只能用api了 发消息给窗体 用参数控制是否显示或隐藏窗体..
[/Quote]
我就是这样做的啊,但是窗体还是会闪一下
niss 2012-08-09
  • 打赏
  • 举报
回复
要目标程序的支持才行吧
wy811007 2012-08-09
  • 打赏
  • 举报
回复
啊哦 只能用api了 发消息给窗体 用参数控制是否显示或隐藏窗体..
JLSLD 2012-08-09
  • 打赏
  • 举报
回复
我是在快捷方式上加参数,然后让窗体判断第一次显示的时候隐藏窗体,并设置窗体最小化显示不在任务栏中显示,这样就不会闪了。
tiankong206 2012-08-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
我已经告诉你了,如果程序创建者没有考虑这样的逻辑,你怎么写也没有作用的。
[/Quote]

针对这样的情况,该用什么办法将程序隐藏运行呢? 是不是就没有办法了呢?
我是这样处理的,在程序启动之后,Show(hHandle,0);这样可以隐藏,但是总是闪一下,还有,程序中弹出的对话框还是显示出来了。
有没有办法让程序自始至终都不显示呢?
谢谢了
threenewbee 2012-08-08
  • 打赏
  • 举报
回复
我已经告诉你了,如果程序创建者没有考虑这样的逻辑,你怎么写也没有作用的。
tiankong206 2012-08-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
Process p = new Process();
p.StartInfo.FileName = "ConsoleApplication1.exe";
p.StartInfo.Arguments = TextBox1.Text;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
……
[/Quote]

这样没有作用。
threenewbee 2012-08-08
  • 打赏
  • 举报
回复
除非拦截API,给ShowWindow挂钩。
知擎物联 2012-08-07
  • 打赏
  • 举报
回复
Process p = new Process();
p.StartInfo.FileName = "ConsoleApplication1.exe";
p.StartInfo.Arguments = TextBox1.Text;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.Start();
p.WaitForExit();
tiankong206 2012-08-07
  • 打赏
  • 举报
回复
我不是让自己的程序界面不显示,而是用我的程序启动其他程序,让其他程序隐藏运行。
moonwrite 2012-08-07
  • 打赏
  • 举报
回复
不想有界面的话 可以写成服务
google
C#创建Windows服务
threenewbee 2012-08-07
  • 打赏
  • 举报
回复
VC写的程序,需要在显示窗体的代码逻辑中判断从命令行传入的cmdshow参数,并且在程序中决定是显示还是不显示,这样才有用。mfc程序框架应该是实现了的,sdk的程序就要看写程序的人自己有没有这样的考虑了。
tiankong206 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

C# code

Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.WorkingDirectory = workingDirectory;
p.StartInfo.UseShellExecute = false;
……
[/Quote]

这个对cmd可以隐藏,对我自己用C#写的Form程序也能够隐藏,但是别人的程序隐藏不了,那程序是用VC写的,不知道跟这有关没。
dog357 2012-08-07
  • 打赏
  • 举报
回复

Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.WorkingDirectory = workingDirectory;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.StandardInput.WriteLine(command);
p.StandardInput.WriteLine("exit");

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧