C#程序中以窗口模式调用命令行操作
需积分: 10 86 浏览量
更新于2024-09-20
收藏 27KB DOC 举报
"在C#中以窗口方式调用命令,通过用户界面输入参数并执行Dsadd命令创建用户。"
在C#编程中,有时我们需要调用操作系统内置的命令行工具来执行特定任务。这个例子中,我们看到了如何在C#中以窗口形式调用`dsadd`命令,一个用于Active Directory用户管理的命令行工具。通过将命令中的静态部分替换为变量,我们可以动态构建命令行参数,以便根据用户的输入自动生成命令。
首先,`dsadd`命令的基本结构是:
```shell
dsadd user cn=<username>,dc=<domain>,dc=com –disable no
```
在这个命令中,`<username>`是用户的名字,而`<domain>`是域的名称。在C#代码中,我们使用字符串格式化来构建这个命令,将`user`和`domain`作为变量传递:
```csharp
private string addUser(string user, string domain, int iSecTimeOut) {
string args = string.Format("user cn={0},dc={1},dc=com –disable no", user, domain);
// ...
}
```
这里,`addUser`方法接收两个字符串参数`user`和`domain`,以及一个整型参数`iSecTimeOut`表示超时时间(以秒为单位)。`string.Format`方法用于将变量`user`和`domain`插入到命令字符串中。
接下来,我们使用`System.Diagnostics.Process`类来启动和控制外部进程。设置`FileName`属性为`dsadd`命令,`Arguments`属性为构建好的命令参数。为了控制命令的输出和错误,我们分别设置`RedirectStandardInput`, `RedirectStandardOutput`和`RedirectStandardError`为`true`。同时,`UseShellExecute`设为`false`以避免通过Shell启动,而`CreateNoWindow`设为`true`是为了不让进程创建新的窗口。
然后,通过`p.Start()`启动进程,并使用`p.WaitForExit(iSecTimeOut * 1000)`等待进程执行完成。如果进程在指定的超时时间内没有结束,`p.HasExited`仍为`false`,则会调用`p.Kill()`强制终止进程,并返回错误信息。
在正常情况下,`p.StandardOutput.ReadToEnd()`可以用来获取命令的输出结果,但在这个示例中,返回的是空字符串`string.Empty`,可能是因为在这个特定的应用场景中,不需要处理`dsadd`命令的输出。
总结来说,这个C#代码片段展示了如何在Windows应用程序中,通过用户界面收集数据,然后调用命令行工具执行操作。这种方法常用于集成系统功能或自动化特定任务,例如这里的Active Directory用户管理。理解如何安全、有效地调用这些命令对于开发与系统交互的C#应用至关重要。
2010-07-19 上传
120 浏览量
点击了解资源详情
2011-08-05 上传
2010-10-16 上传
2009-09-04 上传
2020-09-04 上传
2012-11-27 上传
xiaoyaoduxingke
- 粉丝: 0
- 资源: 3
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器