在C#中调用控制台程序

需求:  想在C#中调用一个带有参数 dos命令  whoami,并处理返回的文本信息

调查:  一查看 发现是个 .exe 的问件, 并且这个.exe可以根据不同的参数,得到不同的系统信息

解决方案:问度娘要了一点资料,度娘很爽快地答应了我,解决需求

参考的网页我放到了文章的末尾

关键代码:

新建了个窗体程序,代码在载入窗体的时候执行,只是个小demo,就不多说了

private void Form1_Load(object sender, EventArgs e)         {

//实例化一个进程类

Process cmd = new Process();

//定义要调用的程序名称

cmd.StartInfo.FileName = "whoami.exe";

//定义要传入的参数

cmd.StartInfo.Arguments = "/user";

// 标准输入输出重定向到.net

cmd.StartInfo.UseShellExecute = false;

cmd.StartInfo.RedirectStandardInput = true;

cmd.StartInfo.RedirectStandardOutput = true;

//不显示窗口界面

cmd.StartInfo.CreateNoWindow = true;

cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

//启动程序

cmd.Start();

//将dos命令产生的信息打印到窗口, 用一个textBox来接收

this.textBox1.Text = cmd.StandardOutput.ReadToEnd();

cmd.WaitForExit();

cmd.Close();

}

参考文章: http://wenku.baidu.com/link?url=l0kdHalqWLg01Fz2nJMXe8Zu8tMf-OKB0aNs-vedL2boNxOsdjxXUNIr9unE8-9qiRQpJRoAP_LDKt5iuP1y3-Pp6MI9Qewy42BGWdMYntW

时间: 2024-09-26 16:55:26

在C#中调用控制台程序的相关文章

调用控制台程序的方法以及注意事项

我们常常用遇到调用第三方库,但是该库文件没有做好内存管理,会发生内存泄露的情况. 这个时候我们可以在控制台中调用该库,然后在代码中调用控制台程序,以此控制台的来管理内存. public class ConsoleMethod { private static int _time = 10 * 60 * 1000; public static string InvokeConsole(string parameter, string programName, string programAddre

转 如何在C++中调用C程序

如何在C++中调用C程序? C++和C是两种完全不同的编译链接处理方式,如果直接在C++里面调用C函数,会找不到函数体,报链接错误.要解决这个问题,就要在 C++文件里面显示声明一下哪些函数是C写的,要用C的方式来处理.1.引用头文件前需要加上 extern “C”,如果引用多个,那么就如下所示extern “C”{#include “ s.h”#include “t.h”#include “g.h”#include “j.h”};然后在调用这些函数之前,需要将函数也全部声明一遍.2.C++调用

SQL点滴15—在SQL Server 2008中调用C#程序

原文:SQL点滴15-在SQL Server 2008中调用C#程序 T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了.这时可以借助CLR了,我们可以在SQL Server 2008中扩展C#程序来完成循环等过程式的查询,或者其他SQL不便实现的功能.这个随笔中将介绍在SQL Server中扩展C#程序实现正则表达式的替换功能. 新建一个类库程序命名为Regex,打开Visual Studio 2008,点击File,点击New,点击Proje

Python中调用其他程序的方式

前言 在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程, 可以使用win32process模块中的函数,如果想进一步控制进程,则可以使用ctype模块,直接调用kernel32.dll中的函数.下面介绍4种方式: 1.os.system()函数 os模块中的system()函数可以方便地运行其他程序或者脚本,模式如下: os.system(command):command:

C#控制台基础 VS2017中为控制台程序设置启动参数(string[] args)

os :windows7_x64 ide:vs2017 代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main(string[] args) { foreach (var str in args) {

在c++中调用exe程序进行操作

#include <Windows.h> //system头文件 #include <direct.h> //_chdir头文件 #include <iostream> //cout头文件 #define picNum 228 using namespace std; //cout 命名空间 void main() { ? char path[]="d:/vs/scene_text"; //指定cmd运行目录 if (_chdir(path)==0)

Createprocess控制台程序输出重定向

在Windows编程中,并非每一个应用程序都需要一个图形用户界面(GUI),很多情况下,我们可以编写一个控制台应用程序,这样程序更小,加载更快,传输时间也短,同时也丝毫不牺牲程序应有的功能.这种程序特别适合那些在后台运行的程序,比如压缩.杀毒.上传下载等等.如果我们的确需要在GUI执行这些程序,以完成某些比如类似于磁盘格式化的功能,我们可以在GUI程序中创建一个新的进程,调用这些已有的控制台应用程序,帮助完成这些功能.然而令人失望的是,我们每次加载这些控制台应用程序时,图形程序总会在加载的过程中

利用管道获取控制台程序的标准输出

1.该程序调用控制台程序hello.exe,通过管道获取到hello.exe的标准输出数据,并打印到当前程序的标准输出. #include <Windows.h> #include <iostream> #include <string> using namespace std; void invoke(string exe); int main(int argc, char* argv[]) { string exe = "hello.exe";

在 Android 中调用二进制可执行程序(native executable )

前几天有需要在java代码中调用二进制程序,就在网上找了些资料,写点东西记录下. Android 也是基于linux 的系统,当然也可以运行二进制的可执行文件.只不过Android 限制了直接的方式只能安装运行apk文件.虽然有NDK可以用动态链接库的方式来用C的二进制代码,但毕竟不方便.至少我们可以调用linux的一些基本命令,如ls,rm等. 第一种方法:Runtime.exec(String[] args) 这种方法是java语言本身来提供的,在Android里面也可以使用.args是要执