//直接看代码,测试通过
if
(Ping(
"192.168.0.144"
))
//Ping 看通不通
{
if
(Connect(
"192.168.0.144"
,
"administrator"
,
"1qaz2wsx???"
))
//建立连接
{
_fileStream =
new
FileStream(
@"\\192.168.0.144\hh\"
+ _currentFileName, FileMode.OpenOrCreate);
}
}
#region 连接远程机器
public
static
bool
Ping(
string
remoteHost)
{
bool
Flag =
false
;
Process proc =
new
Process();
try
{
proc.StartInfo.FileName =
"cmd.exe"
;
proc.StartInfo.UseShellExecute =
false
;
proc.StartInfo.RedirectStandardInput =
true
;
proc.StartInfo.RedirectStandardOutput =
true
;
proc.StartInfo.RedirectStandardError =
true
;
proc.StartInfo.CreateNoWindow =
true
;
proc.Start();
string
dosLine =
@"ping -n 1 "
+ remoteHost;
proc.StandardInput.WriteLine(dosLine);
proc.StandardInput.WriteLine(
"exit"
);
while
(proc.HasExited ==
false
)
{
proc.WaitForExit(500);
}
string
pingResult = proc.StandardOutput.ReadToEnd();
if
(pingResult.IndexOf(
"(0% loss)"
) != -1)
{
Flag =
true
;
}
proc.StandardOutput.Close();
}
catch
(Exception ex)
{
}
finally
{
try
{
proc.Close();
proc.Dispose();
}
catch
{
}
}
return
Flag;
}
public
static
bool
Connect(
string
remoteHost,
string
userName,
string
passWord)
{
if
(!Ping(remoteHost))
{
return
false
;
}
bool
Flag =
true
;
Process proc =
new
Process();
try
{
proc.StartInfo.FileName =
"cmd.exe"
;
proc.StartInfo.UseShellExecute =
false
;
proc.StartInfo.RedirectStandardInput =
true
;
proc.StartInfo.RedirectStandardOutput =
true
;
proc.StartInfo.RedirectStandardError =
true
;
proc.StartInfo.CreateNoWindow =
true
;
proc.Start();
string
dosLine =
@"net use \\"
+ remoteHost +
" "
+ passWord +
" "
+
" /user:"
+ userName +
">NUL"
;
proc.StandardInput.WriteLine(dosLine);
proc.StandardInput.WriteLine(
"exit"
);
while
(proc.HasExited ==
false
)
{
proc.WaitForExit(1000);
}
string
errormsg = proc.StandardError.ReadToEnd();
if
(errormsg !=
""
)
{
Flag =
false
;
}
proc.StandardError.Close();
}
catch
(Exception ex)
{
Flag =
false
;
}
finally
{
try
{
proc.Close();
proc.Dispose();
}
catch
{
}
}
return
Flag;
}
#endregion
排版差了点 请谅解。 测试通过