使用参数启动流程

时间:2011-04-23 20:02:10

标签: c# asp.net winforms parameters process

我正在使用我网站上的Process.Start打开我用c#制作的Windows窗体应用程序。

我想向应用程序发送我的用户名。

那我怎么能这样做呢?

4 个答案:

答案 0 :(得分:7)

您可以通过在开始信息中分配参数来完成此操作,例如:

var process = new Process
      {
          StartInfo =
              {
                  FileName = processName,
                  Arguments = "-username=Alice"
              }
      };
process.Start();

如果您的进程无法启动,您可能需要检查权限,因为我知道在IIS上运行的代码不允许这样做。

答案 1 :(得分:6)

Process.Start()有几个重载,one of them用于指定命令行参数以及可执行文件的路径。

例如:

Process.Start("app.exe", "parameter(s)");

答案 2 :(得分:0)

您可以使用:

string username = "MyUsername";
Process.Start(Path.Combine("MyExe.exe" + " \"" + username + "\"");

答案 3 :(得分:0)

您在这里,应该在工作

using System;
using System.Runtime.InteropServices;
using System.Threading;
using System.Windows.Forms;

namespace SSHPit
{

public partial class MainForm : Form
{       
    [DllImportAttribute("user32.dll")]
    public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
    
    [DllImport("user32.dll", SetLastError = true)]
    public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);


    public MainForm()
    {           
        InitializeComponent();
        
        System.Diagnostics.Process p = new System.Diagnostics.Process();
        p.StartInfo.FileName = "L:\\Program Files\\putty\\putty.exe";
        p.StartInfo.Arguments = "-load \"mysession\" -ssh 127.0.0.1";
        p.Start();
        p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
        p.WaitForInputIdle();
        while (p.MainWindowHandle == IntPtr.Zero)
        {
           Thread.Sleep(100); 
           p.Refresh();
        }
        SetParent(p.MainWindowHandle, panel1.Handle);
    }
}
}