Program.cs这里加了个启动参数
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
using
System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsApplication1
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main( string [] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault( false );
Application.Run( new Form1(args));
}
}
}
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsApplication1
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main( string [] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault( false );
Application.Run( new Form1(args));
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
using
System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public Form1( string [] s)
{
InitializeComponent();
if (s.Length > 0 )
MessageBox.Show(s[ 0 ]);
if (s.Length > 1 )
MessageBox.Show(s[ 1 ]);
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public Form1( string [] s)
{
InitializeComponent();
if (s.Length > 0 )
MessageBox.Show(s[ 0 ]);
if (s.Length > 1 )
MessageBox.Show(s[ 1 ]);
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
protected
void
btnCount_Click(
object
sender, EventArgs e)
{
// 调用记事本
// System.Diagnostics.Process.Start("C:\\WINDOWS\\system32\\notepad.exe");
try
{
// 调用自己的exe传递参数
Process proc = new Process();
string sPath = Request.MapPath( " ~ " ); // 取得物理路径
proc.StartInfo.FileName = sPath + @" \hi.exe " ;
proc.StartInfo.Arguments = " 参数1 参数2 " ;
proc.Start();
Thread.Sleep( 5000 ); // 暂停3秒
foreach (System.Diagnostics.Process pro in System.Diagnostics.Process.GetProcessesByName( " hi " ))
{
pro.Kill();
}
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
{
// 调用记事本
// System.Diagnostics.Process.Start("C:\\WINDOWS\\system32\\notepad.exe");
try
{
// 调用自己的exe传递参数
Process proc = new Process();
string sPath = Request.MapPath( " ~ " ); // 取得物理路径
proc.StartInfo.FileName = sPath + @" \hi.exe " ;
proc.StartInfo.Arguments = " 参数1 参数2 " ;
proc.Start();
Thread.Sleep( 5000 ); // 暂停3秒
foreach (System.Diagnostics.Process pro in System.Diagnostics.Process.GetProcessesByName( " hi " ))
{
pro.Kill();
}
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
这里exe的打开与关闭都有了。
这种方法直接用vs打开可以正常运行,但是放在iis下就不行了,权限不足。
最后找到一个方法就是通过Windows API调用外部程序
同样写个简单的控制台程序。就是在D盘新建一个文本文件。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
using
System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main( string [] args)
{
FileInfo f = new FileInfo( @" D:\hi.txt " );
StreamWriter w = f.CreateText();
string s = " 0 " ;
if (args.Length > 0 )
s = " 123 " ;
w.WriteLine( " dddd " + s);
w.Close();
}
}
}
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main( string [] args)
{
FileInfo f = new FileInfo( @" D:\hi.txt " );
StreamWriter w = f.CreateText();
string s = " 0 " ;
if (args.Length > 0 )
s = " 123 " ;
w.WriteLine( " dddd " + s);
w.Close();
}
}
}
通过Web Service调用
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
using
System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Diagnostics;
using System.ComponentModel;
using System.Runtime.InteropServices;
using System.Text;
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = " http://tempuri.org/ " )]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
{
[DllImport( " shell32.dll " )]
public static extern int ShellExecute(IntPtr hwnd, StringBuilder lpszOp, StringBuilder lpszFile, StringBuilder lpszParams, StringBuilder lpszDir, int FsShowCmd);
public WebService()
{
// 如果使用设计的组件,请取消注释以下行
// InitializeComponent();
}
[WebMethod]
public string HelloWorld()
{
ShellExecute(IntPtr.Zero, new StringBuilder( " Open " ), new StringBuilder( " hi " ), new StringBuilder( " jjj " ), new StringBuilder( @" D:\ " ), 1 );
return " Hello World " ;
}
}
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Diagnostics;
using System.ComponentModel;
using System.Runtime.InteropServices;
using System.Text;
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = " http://tempuri.org/ " )]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
{
[DllImport( " shell32.dll " )]
public static extern int ShellExecute(IntPtr hwnd, StringBuilder lpszOp, StringBuilder lpszFile, StringBuilder lpszParams, StringBuilder lpszDir, int FsShowCmd);
public WebService()
{
// 如果使用设计的组件,请取消注释以下行
// InitializeComponent();
}
[WebMethod]
public string HelloWorld()
{
ShellExecute(IntPtr.Zero, new StringBuilder( " Open " ), new StringBuilder( " hi " ), new StringBuilder( " jjj " ), new StringBuilder( @" D:\ " ), 1 );
return " Hello World " ;
}
}
这是目前asp.net调用exe找到的正确运行的方法。放在IIS中正确运行。