局域网内一台机器控制另一台机器上的.EXE程序运行

longquan880 2009-09-15 03:52:14
机器都是自己的,权限不是问题。

要求在A机器上通过代码来启动另一台机器上(B机器)的exe程序,exe程序在B机器上运行。

怎么实现,有没有具体的代码示例。
...全文
3045 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljsheng 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cstod 的回复:]
引入System.Management.dll
using System.Management;

C# code ManagementClass mc=new ManagementClass("win32_process");
mc.Scope.Options.Username="user";
mc.Scope.Options.Password="password";
mc.Scope.Path.Server="192.168.1.5";
mc.InvokeMethod("Create",newobject[] {@"c:\windows\notepad.exe" });

程序在后台运行,如果要显示窗口,可以启动DOS命令:at
[/Quote]

mc.Scope.Options.Username="user";
mc.Scope.Options.Password="password";

系统用户名和密码嘛
weinideai 2009-09-22
  • 打赏
  • 举报
回复
学习!
meisongg 2009-09-22
  • 打赏
  • 举报
回复
用WMI脚本可以实现吧 远程调用
longquan880 2009-09-21
  • 打赏
  • 举报
回复
感谢1楼和5楼的回答。 我自己已经解决了。
focuswe 2009-09-21
  • 打赏
  • 举报
回复
莫非LZ是想开发软件去抢Bank哦!!!Last Out!抢了回来分赃!!!
dreambyheart 2009-09-21
  • 打赏
  • 举报
回复
怎么解决的,最好贴出来,让大家也学习学习。
小凤雏 2009-09-20
  • 打赏
  • 举报
回复
up up up!
BossJue 2009-09-20
  • 打赏
  • 举报
回复
顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!
绝尘 2009-09-20
  • 打赏
  • 举报
回复
那是 ,有c++的源代码没,我不懂C#。
kaizi_sun 2009-09-20
  • 打赏
  • 举报
回复
...d
越过越咸 2009-09-20
  • 打赏
  • 举报
回复
192.168.1.103
zhoen 2009-09-20
  • 打赏
  • 举报
回复
学习就自己动手,应用就拿现成的呗
microinfotech 2009-09-20
  • 打赏
  • 举报
回复
领教啦
DreamerX2004 2009-09-19
  • 打赏
  • 举报
回复
ssh
yqh2009 2009-09-19
  • 打赏
  • 举报
回复
一个客户端,一个服务端就得啊
bigtang_1982 2009-09-18
  • 打赏
  • 举报
回复
为什么要自己编程?弄个STAF随便完成这个功能嘛

有现成的不用,太浪费生命了哈!O(∩_∩)O
鸭梨山大帝 2009-09-18
  • 打赏
  • 举报
回复
socket通讯即可完成
代码如下,都是控制台程式(可能有些地方有异常,楼主自行处理一下):

SERVER端:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Diagnostics;

namespace Server
{
class Program
{
static void Main(string[] args)
{
Socket S = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Byte[] IP = new byte[4] { 127, 0, 0, 1 };
int Port = 9999;
IPEndPoint ep = new IPEndPoint(new IPAddress(IP), Port);
//或者这样写 IPEndPoint ep1 = new IPEndPoint(IPAddress.Parse("127.0.0.1"), Port);
S.Bind(ep);
S.Listen(100);
Socket S1 = S.Accept();
Byte[] Content = new Byte[256];
int L = S1.Receive(Content);
String cmd = Encoding.UTF8.GetString(Content).Substring(0, L);
if (cmd.ToUpper() == "RUN")
{
Process.Start("NOTEPAD.EXE");
}
S.Close();
S1.Close();
}
}
}



客户端(发送消息端)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace Client
{
class Program
{
static bool isConnected = false;
static void Main(string[] args)
{
Socket S = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
String cmd = string.Empty;
try
{
S.Connect(IPAddress.Parse("127.0.0.1"), 9999);
Console.WriteLine("请输入待传送的字符,输入Run,服务器端将执行NOTEPAD.EXE");
cmd = Console.ReadLine();
S.Send(Encoding.UTF8.GetBytes(cmd));
S.Close();
isConnected = true;
}
catch (Exception e)
{
Console.WriteLine("服务器未开启,等待链接中... ...");
Thread.Sleep(1000);
}
finally
{
if (isConnected == false) Main(null);
}
}
}
}



TRUE 2009-09-18
  • 打赏
  • 举报
回复
首先,A和b是否在同一个局域网,是个什么条件,不通的条件要采用不通的方法的,要具体的描述
2、如果是远程的,可以采用上面的socket的方法实现,
3、你可以试试管道的方式看看
ecswm 2009-09-18
  • 打赏
  • 举报
回复
我也觉得几位答案不是楼主要的...楼主应该是想让A机器跑个程序来启动B机器的程序吧...而不是简单的Socket通信控制..我猜的不知道对不对...
CsToD 2009-09-18
  • 打赏
  • 举报
回复
引入System.Management.dll
using System.Management;

 ManagementClass mc = new ManagementClass("win32_process");
mc.Scope.Options.Username = "user";
mc.Scope.Options.Password = "password";
mc.Scope.Path.Server = "192.168.1.5";
mc.InvokeMethod("Create", new object[] { @"c:\windows\notepad.exe" });


程序在后台运行,如果要显示窗口,可以启动DOS命令:at
加载更多回复(6)

110,580

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧