参考代码(来自MSDN):
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Security;
public class Example
{
public static void Main()
{
// Instantiate the secure string.
SecureString securePwd = new SecureString();
ConsoleKeyInfo key;
Console.Write("Enter password: ");
do {
key = Console.ReadKey(true);
// Ignore any key out of range.
if (((int) key.Key) >= 65 && ((int) key.Key <= 90)) {
// Append the character to the password.
securePwd.AppendChar(key.KeyChar);
Console.Write("*");
}
// Exit if Enter key is pressed.
} while (key.Key != ConsoleKey.Enter);
Console.WriteLine();
try
{
Process.Start("Notepad.exe", "MyUser", securePwd, "MYDOMAIN");
}
catch (Win32Exception e)
{
Console.WriteLine(e.Message);
}
}
}
domain - 如果没有用Actvie Directory域,就写计算机名。
你好,username我传入的administrator,那个密码就是administrator的密码吗?Actvie Directory域是什么域呢
@依然、依旧: 是的,Actvie Directory请查看活动目录。另外,不传后面三个参数也能调用Process.Start方法
@dudu: 不传后面三个参数可以调用这个我是知道的,因为我这边是使用windows服务来启动应用程序,现在的问题就是在如果不写后面三个参数直接使用第一个参数,我使用windows服务启动的应用程序进程里面虽然存在,但是不会显示界面,而且在任务管理器中显示的用户名称不是我当前登录的帐号,而是system。现在要解决的问题就是使用windows服务启动应用程序,并且让应用程序显示界面。
@依然、依旧: 可以把Windows服务的运行帐户指定为你当前登录的帐户。
@依然、依旧: 这个问题你最终解决了吗?我也遇到一样的问题
如果有执行权限则不需要后面的参数,如果当前用户没有权限执行则需要用有权限的账号来执行。