C#如何调用windows的命令? (100分)

  • 主题发起人 主题发起人 Hjg
  • 开始时间 开始时间
H

Hjg

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用C#做一个类似信使服务的程序,想调用net send,可是不知道怎么调用。查了半天帮助也找不到。
 
查询Platform Invoke的相关内容。
使用WIN API函数:CreateProcess调用外部命令。
 
用System.Diagnostics.Process类,这个类的Start可以调用外部的.exe文件.
比如System.Diagnostics.Process.Start("phat/*.exe");
 
谢谢小妹!但是这个函数不能让命令带参数。
 
最好是使用平台调用,下面是一段示例代码,调用其它API同样道理:
[StructLayout(LayoutKind.Sequential)]
public struct SYSTEMTIME
{
public ushort wYear;
public ushort wMonth;
public ushort wDayOfWeek;
public ushort wDay;
public ushort wHour;
public ushort wMinute;
public ushort wSecond;
public ushort wMilliseconds;
public DateTime ToDateTime()
{
return new DateTime(wYear, wMonth, wDay, wHour, wMinute, wSecond, wMilliseconds);
}
public SYSTEMTIME ToSystemTime(DateTime dt)
{
SYSTEMTIME st;
st.wYear = (ushort)dt.Year;
st.wMonth = (ushort)dt.Month;
st.wDayOfWeek = (ushort)dt.DayOfWeek;
st.wDay = (ushort)dt.Day;
st.wHour = (ushort)dt.Hour;
st.wMinute = (ushort)dt.Minute;
st.wSecond = (ushort)dt.Second;
st.wMilliseconds = (ushort)dt.Millisecond;
return st;
}
}
public class Win32API
{
[DllImport("kernel32.dll")]
public static extern bool SetSystemTime(ref SYSTEMTIME st);
}
要引用System.Runtime.InteropServices;命名空间
 
oh,oh 查到了!
通过指定应用程序的名称和一组命令行参数来启动进程资源,并将该资源与新的 Process 组件关联。
[Visual Basic]
Overloads Public Shared Function Start( _
ByVal fileName As String, _
ByVal arguments As String _
) As Process
[C#]
public static Process Start(
string fileName,
string arguments
);
[C++]
public: static Process* Start(
String* fileName,
String* arguments
);
[JScript]
public static function Start(
fileName : String,
arguments : String
) : Process;
参数
fileName
要在该进程中运行的应用程序文件的名称。
arguments
启动该进程时要传递的命令行参数。
 
谢谢大家!
 
后退
顶部