如何在web应用程序中从activex传递参数到exe (windows窗体应用程序)

本文关键字:应用程序 exe 参数 窗体 windows web activex | 更新日期: 2023-09-27 17:54:27

我有一个windows窗体应用程序。我已经将其转换为一个设置,并使用activeX从web应用程序调用其exe文件,如下所示:-

 var executableFullPath = "C:''ScannerExeFile''Scannerapplication.exe";
 var shellActiveXObject = new ActiveXObject("WScript.Shell");
 shellActiveXObject.Run(executableFullPath,1, false);
 shellActiveXObject = null;

现在我想传递一个字符串参数到windows窗体应用程序。有人能帮我吗?

如何在web应用程序中从activex传递参数到exe (windows窗体应用程序)

你需要在ActiveX对象中使用PARAM标签:

<OBJECT  classid="clsid:959B7E21-6C0B-3BEC-BA2E-48DA2B6D83K5">                
            <PARAM NAME="Id" VALUE="2">
</OBJECT>

我得到了答案。代码如下:-

var executableFullPath = "C:''ScannerExeFile''Scannerapplication.exe param1 param2 param3";
var shellActiveXObject = new ActiveXObject("WScript.Shell");
shellActiveXObject.Run(executableFullPath,1, false);
shellActiveXObject = null;

在windows应用程序中,您应该将Program.cs中的main函数编辑为

  static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        if(args!=null && args.Length>0)
        Application.Run(new Scanner(args));
        else
            Application.Run(new Scanner(args));
    }
}

在类中,您应该按如下方式更改构造函数:-

public Scanner(string[] args)
        {
            Arguments = args;
            InitializeComponent();
        }

其中Arguments是一个字符串数组

private string[] Arguments;