您好。用 System.Diagnostics.Process.Start 怎么样来打开一个Word文档或者PDf文件呢、
System.Diagnostics.Process p = new System.Diagnostics.Process();
//采用操作系统自动识别的模式
p.StartInfo.UseShellExecute = true;
//要打开的文件路径,可以是WORD,EXCEL,PDF,TXT等等
p.StartInfo.FileName = @"d:a.doc";
p.StartInfo.Verb = "open";
//开始
p.Start();
C#调用DOS命令怎么把变值代入,并且可以运行
我给段代码,是做命令行重定向的。
可以改成你的需求
string results = null;
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec");
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
string cmd = "dir";
psi.Arguments = "/c " + cmd;
System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);
results = p.StandardOutput.ReadToEnd();
//Console.WriteLine(results);
p.WaitForExit();
MessageBox .Show (results);
C# 中如何使用DOS命令执行操作?
C#代码如下:
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false;
//true表示不显示黑框,false表示显示dos界面
p.Start();
String dosCommand= "mkdir test";
p.StandardInput.WriteLine(dosCommand);
p.Close();
C#中怎么写运行 事件方法
这样筏乏摧何诋蛊搓坍掸开:
mandText = "cmd";
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName =mandText;
proc.StartInfo.UseShellExecute = true;
proc.Start();
关于你说的attrib,由于attrib是DOS的命令,而不是独立执行文件,必须用以下的方法:
mandText = "cmd";
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.Arguments = "/C attrib h:\123 -s -h";
proc.StartInfo.FileName =mandText;
proc.StartInfo.UseShellExecute = true;
proc.Start();
其实要修改文件的属性有另一方法:
System.IO.File.SetAttributes("h:\123", System.IO.FileAttributes.Normal);
如何正确的终止正在运行的子线程
我的代码是这样的。
。
在多线程的子线程的调用方法里这样运行gethaha.exe,str1 是传递过来的参数。
。
Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = "gethaha.exe";
process.StartInfo.Arguments = str1;
process.StartInfo.UseShellExecute = false; // 必须禁用操作系统外壳程序
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.EnableRaisingEvents = true;
process.Start();
System.IO.StreamReader reader = process.StandardOutput;//截取输出流
string line = reader.ReadLine();//每次读取一行
while (!reader.EndOfStream)
{ Console.WriteLine(line + " ");
line = reader.ReadLine();}
process.WaitForExit(10000);
if(process.HasExited ==false)
process.Kill();
reader.Close();
我的意思是我想在每个线程里运行gethaha.exe 每个运行10秒钟如果10秒后它没有执行完毕就终止它
问题1:可是运行中过了10秒后它并不终止,process.KIll() 没管用,而且我把主程序关了,gethaha.exe仍然在后台执行。
到底是哪没有考虑到;
问题2:还有那个重定向输出流,我想让它gethaha.exe输出一句Console就输出一句,现在的代码是gethaah.exe 执行完了,主程序把gethaah.exe输出的一次性全部输出出来。
。
。
就这两个问题即使我再加上这两句代码也不顶用process.Dispose();
Application.Exit();
Thread.CurrentThread.Abort();
它仍然在后台运行。
。
苦恼啊。
。
小弟初学c#,希望大牛指点迷津,不胜感激!!