[高手帮忙]怎样在windows service中执行一个exe文件 怎样在windows service中执行(或者说打开)一个exe文件使其在任务管理器中的用户名为当前登录用户而不是SYSTEM 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System.Diagnostics;Process.Start(@"D:\钓鱼\go2fishing.exe"); 那样执行的用户名为SYSTEM我现在想建立一个普通用户的进程阿 Process.Start()方法有一个重载是要传入四个参数的:public static Process Start( string fileName, string userName, SecureString password, string domain)参数fileName类型:System.String要在该进程中运行的应用程序文件的名称。userName类型:System.String启动进程时使用的用户名。password类型:System.Security.SecureString一个 SecureString,它包含启动进程时要使用的密码。domain类型:System.String启动进程时要使用的域。 password 类型:System.Security.SecureString 一个 SecureString,它包含启动进程时要使用的密码。 domain 类型:System.String 这两个东西怎们能获得到阿总不能提示用户输入密码吧 你在C#中获取当前用户的账户密码基本是不可能的貌似在service中打开进程的话,只能以system的名义运行WINDOWS 安全机制限定的 [DllImport("advapi32.dll", CharSet = CharSet.Unicode)] static extern Boolean CreateProcessAsUser( IntPtr hToken, String lpApplicationName, String lpCommandLine, IntPtr lpProcessAttributes, IntPtr lpThreadAttributes, Boolean bInheritHandles, UInt32 dwCreationFlags, IntPtr lpEnvironment, String lpCurrentDirectory, ref STARTUPINFO lpStartupInfo, out PROCESS_INFORMATION lpProcessInformation); [DllImport("advapi32.dll", CharSet = CharSet.Unicode)] static extern Boolean LogonUser( String lpszUsername, String lpszDomain, String lpszPassword, Int32 dwLogonType, Int32 dwLogonProvider, ref IntPtr phToken );advapi32.dll 类内的这两个API 可以实现你要的功能 http://www.cnblogs.com/flying_bat/archive/2007/09/26/906435.html参考这里,有现成的源码 恩,我用上面start那个函数执行在windows service下throw exceptionaccess is denied service中获得当前explorer.exe的security token,然后调用CreateProcessAsUser来以当前user权限启动process,这样启动以后得到的就是当前用户权限进程。。http://www.cnblogs.com/liefeng123/articles/533743.html Socket.BeginRcecive() 错误~ 大家帮下忙,关于winform中MediaPlayer播放的问题 ***多层分布式应用程序设计:ASP.NET WebServer 和.NET Remoting 体系架构选择问题? 求用API操作注册表的程序(C#) 关于VS.NET里面使用SQLITE的问题 发gmail邀请,有100个。 ASP.NET WEB开发怎么从网页打开另一个网页并获取数据呢? ComboBox绑定空白值查询的困惑 这里错在哪里! 关于控件的问题! 在线急等!! 解决文本框输入数字而不输入字符的问题!! 如何在程序中实现像金山词霸中的单词浮动框?
Process.Start(@"D:\钓鱼\go2fishing.exe");
我现在想建立一个普通用户的进程阿
public static Process Start(
string fileName,
string userName,
SecureString password,
string domain
)
参数
fileName
类型:System.String要在该进程中运行的应用程序文件的名称。userName
类型:System.String启动进程时使用的用户名。password
类型:System.Security.SecureString一个 SecureString,它包含启动进程时要使用的密码。domain
类型:System.String启动进程时要使用的域。
类型:System.Security.SecureString 一个 SecureString,它包含启动进程时要使用的密码。 domain
类型:System.String
这两个东西怎们能获得到阿
总不能提示用户输入密码吧
[DllImport("advapi32.dll", CharSet = CharSet.Unicode)]
static extern Boolean CreateProcessAsUser(
IntPtr hToken,
String lpApplicationName,
String lpCommandLine,
IntPtr lpProcessAttributes,
IntPtr lpThreadAttributes,
Boolean bInheritHandles,
UInt32 dwCreationFlags,
IntPtr lpEnvironment,
String lpCurrentDirectory,
ref STARTUPINFO lpStartupInfo,
out PROCESS_INFORMATION lpProcessInformation);
[DllImport("advapi32.dll", CharSet = CharSet.Unicode)]
static extern Boolean LogonUser(
String lpszUsername,
String lpszDomain,
String lpszPassword,
Int32 dwLogonType,
Int32 dwLogonProvider,
ref IntPtr phToken
);
advapi32.dll 类内的这两个API 可以实现你要的功能
参考这里,有现成的源码
恩,我用上面start那个函数执行
在windows service下throw exception
access is denied