如何让另一台电脑的任务管理器运行程序
Posted
技术标签:
【中文标题】如何让另一台电脑的任务管理器运行程序【英文标题】:How to get running programs of task manager of another computer 【发布时间】:2014-07-15 05:53:40 【问题描述】:有没有办法从另一台计算机获取正在运行的任务管理器应用程序(而不是进程)?是否有机会使用其他电脑的 IP 地址或电脑名称?
这是我的代码,但它所做的只是显示我正在运行的应用程序并每秒更新一次以查看我是否打开或关闭了任何程序。
更新:我使用了模仿器,但我仍然收到相同的错误“无法连接到机器”。至于冒名顶替者,我刚刚下载了这个Impersonator
private void Form1_Load(object sender, EventArgs e)
timer1.Enabled = true;
private void running_process()
DataTable dt = new DataTable();
dt.Columns.Add("ProcessName");
dt.Columns.Add("ProcessId");
using (new Impersonator("adminuser", "", "adminpass"))
Process[] processes = Process.GetProcessesByName(".", "PCNAME");
//Process.GetProcesses("192.168.20.120")
foreach (Process p in processes)
try
if (p.MainWindowTitle.Length > 0)
dt.Rows.Add();
dt.Rows[dt.Rows.Count - 1][0] = p.MainWindowTitle;
dt.Rows[dt.Rows.Count - 1][2] = p.Id.ToString();
catch
listBox1.DataSource = dt;
listBox1.DisplayMember = "ProcessName";
listBox1.ValueMember = "ProcessId";
private void timer1_Tick(object sender, EventArgs e)
running_process();
【问题讨论】:
【参考方案1】:您可以使用Process.GetProcesses("remotecomputername")
。或者……
您可以使用名为pslist
的工具列出远程计算机上运行的进程。本文介绍了如何:Determine processes running on a remote server with PsList。但为了做到这一点,您需要在远程服务器上拥有管理员级别的权限。 (我认为这不是问题。因为我看不出没有管理员权限你怎么能做到这一点)。
您不必在计算机中安装该工具。您可以从Sysinternals Live 运行它。
\\live.sysinternals.com\tools\pslist \\remotecomputername
然后你必须Execute command line in C#, get STD OUT results。那么对输出进行标记并获取您需要的信息应该是一项微不足道的任务。
【讨论】:
我在我们的服务器上没有管理员帐户,如果我有的话,除了使用第三方程序之外还有其他方法吗? 我不知道如何使用 C# 代码来做到这一点。但是,尽管 pslist 是第 3 方程序,它的托管行为很像 Web 服务。因此,如果要求至关重要,我不介意使用它。 但是链接的图片显示了我需要的进程是正在运行的应用程序(任务管理器的应用程序选项卡)检查我的代码你会明白我的意思。【参考方案2】:进程 [] ipByName = Process.GetProcessesByName("notepad", "169.0.0.0");
请参考链接http://msdn.microsoft.com/en-us/library/1f3ys1f9(v=vs.110).aspx
【讨论】:
以上是关于如何让另一台电脑的任务管理器运行程序的主要内容,如果未能解决你的问题,请参考以下文章