当我运行下面的代码时,我正在获取句柄无效,它需要一个字符串并将其传递给远程批处理文件
Posted
技术标签:
【中文标题】当我运行下面的代码时,我正在获取句柄无效,它需要一个字符串并将其传递给远程批处理文件【英文标题】:when i running the below code iam getting handle is invalid it takes a string and pass it to remote batch file 【发布时间】:2010-01-28 14:00:30 【问题描述】:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Security;
namespace SampleProject
public partial class Form1 : Form
public Form1()
InitializeComponent();
private void button1_Click(object sender, EventArgs e)
String input = textBox1.Text;
try
Process ps = new Process();
ps.StartInfo.FileName = @"\\199.63.55.163\d$\hello.bat";
ps.StartInfo.Arguments = input;
ps.StartInfo.CreateNoWindow = false;
String domain = ps.StartInfo.Domain;
ps.StartInfo.RedirectStandardOutput = true;
ps.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
ps.StartInfo.WorkingDirectory = @"d:\praveen";
ps.StartInfo.UserName = "Raj";
ps.StartInfo.Domain = "domain";
ps.StartInfo.Password = Encrypt("Hello123");
ps.StartInfo.UseShellExecute = false;
ps.Start();
ps.WaitForExit();
MessageBox.Show(ps.StandardOutput.ReadToEnd());
catch (Exception ex)
MessageBox.Show(ex.Message);
private void label1_Click(object sender, EventArgs e)
public static SecureString Encrypt(String pwd)
SecureString ss = new SecureString();
for (int i = 0; i < pwd.Length; i++)
ss.AppendChar(pwd[i]);
return ss;
【问题讨论】:
哪一行导致错误? 抱歉(离题)但 SecureString?你不能让构造函数接受一个字符串,只需要做一个'return new SecureString(pwd)' 【参考方案1】:这是在黑暗中拍摄,但我认为一旦退出,您将无法读取进程标准输出。
您还必须重定向它 - 请查看此文档:http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx
【讨论】:
【参考方案2】:.NET Process Start Process Error using credentials (The handle is invalid) 的副本?你需要分配RedirectStandardInput、RedirectStandardOutput、RedirectStandardError
【讨论】:
以上是关于当我运行下面的代码时,我正在获取句柄无效,它需要一个字符串并将其传递给远程批处理文件的主要内容,如果未能解决你的问题,请参考以下文章
带有 Qt5 执行错误的 OpenSplice 创建失败:句柄无效