我调用另一台电脑里面的一个可执行文件,知道其ip地址,用户名,密码,和执行文件所在的路径,然后执行它,这在C#里面怎么实现呢?
多谢高手指点。

解决方案 »

  1.   

    以前在www.cnblogs.com上看到过这类文章,你可以去搜一下
      

  2.   

    用WMI可以实现:
    #DefineFunction RunRemote(ComputerName,Application,WorkingDirectory,User,Password)
    Locator = ObjectOpen("WbemScripting.SWbemLocator")
    Service = Locator.ConnectServer(ComputerName,"root/cimv2",User,Password)
    Security = Service.Security_
    Security.ImpersonationLevel = 3
    Class = Service.Get("Win32_Process")
    If WorkingDirectory == "" then
    Result = Class.Create(Application)  ;no working directory specified
    Else
    Result = Class.Create(Application,WorkingDirectory) ;pass the specified working directory
    EndIf
    ObjectClose(Class)
    ObjectClose(Security)
    ObjectClose(Service)
    ObjectClose(Locator)
    Return Result
    #EndFunctionComputerName = "SCOOBY" ;remote machine name (specify "" for local machine)
    Application = "Notepad.exe"
    WorkDir = ""
    User = ""
    Password = ""
    rslt = RunRemote(ComputerName,Application,WorkDir,User,Password)
    Switch rslt
    Case 0
    Message("RunRemote","Successful completion ")
    break
    Case 2
    Message("RunRemote","Access denied")
    break
    Case 3
    Message("RunRemote","Insufficient privilege")
    break
    Case 8
    Message("RunRemote","Unknown failure")
    break
    Case 9
    Message("RunRemote","Path not found")
    break
    Case 21
    Message("RunRemote","Invalid parameter")
    break
    Case rslt
    Message("RunRemote","Unknown error")
    breakEndSwitchexit
    该代码摘自:
    http://techsupt.windowware.com/TS/T000001002F15.html
      

  3.   

    给你一个我自己写的WINFORM代码,没有局域网,只好在本机上试了:
    ManagementOperationObserver obs=new ManagementOperationObserver();
    ConnectionOptions co=new ConnectionOptions();
    /*co.Username="Administrator";
    co.Password="";*/
    ManagementScope ms=new ManagementScope(@"\\chf-13758681208\root\cimv2",co);
    ManagementPath path = new ManagementPath( "Win32_Process");
    ManagementClass mcs=new ManagementClass(ms,path,null);
    object[] param=new object[]{"notepad.exe",null,null,0};
    mcs.InvokeMethod(obs,"Create",param);
      

  4.   

    使用一个bat文件就能实现了,然后在c#里面调用这个bat
    bat 如下:
       net use x: \\computername\c$ /USER:administrator 123456
       x:\app.exe然后在C#里面调用这个bat就行了
      

  5.   

    用API吧,ShellExecute(),具体的用法看看MSDN