C# 调用大漠插件的方法 转

转自http://blog.csdn.net/lsgy2008/article/details/8216484

1、把大漠插件 dm.dll 转成.net程序集。方法:在Visual Studio 命令提示 中输入 Tlbimp D:\dm.dll /out: D:\dmNet.dll 即可。

 

2、注册dm.dll。把源dm.dll注册一下。代码

        

[csharp] view plain copy print ?
  1. /// <summary>   
  2. /// 注册   
  3. /// </summary>   
  4. /// <param name="strCmd"></param>   
  5. /// <returns></returns>   
  6. static string AutoRegCom(string strCmd)  
  7. {  
  8.     strCmd = "regsvr32 D:\\dm.dll /s";  
  9.     string rInfo;  
  10.     try  
  11.     {  
  12.         Process myProcess = new Process();  
  13.         ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("cmd.exe");  
  14.         myProcessStartInfo.UseShellExecute = false;  
  15.         myProcessStartInfo.CreateNoWindow = true;  
  16.         myProcessStartInfo.RedirectStandardOutput = true;  
  17.         myProcess.StartInfo = myProcessStartInfo;  
  18.         myProcessStartInfo.Arguments = "/c " + strCmd;  
  19.         myProcess.Start();  
  20.         StreamReader myStreamReader = myProcess.StandardOutput;  
  21.         rInfo = myStreamReader.ReadToEnd();  
  22.         myProcess.Close();  
  23.         rInfo = strCmd + "\r\n" + rInfo;  
  24.         return rInfo;  
  25.     }  
  26.     catch (Exception ex)  
  27.     {  
  28.         return ex.Message;  
  29.     }  
  30. }  
        /// <summary>

        /// 注册

        /// </summary>

        /// <param name="strCmd"></param>

        /// <returns></returns>

        static string AutoRegCom(string strCmd)

        {

            strCmd = "regsvr32 D:\\dm.dll /s";

            string rInfo;

            try

            {

                Process myProcess = new Process();

                ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("cmd.exe");

                myProcessStartInfo.UseShellExecute = false;

                myProcessStartInfo.CreateNoWindow = true;

                myProcessStartInfo.RedirectStandardOutput = true;

                myProcess.StartInfo = myProcessStartInfo;

                myProcessStartInfo.Arguments = "/c " + strCmd;

                myProcess.Start();

                StreamReader myStreamReader = myProcess.StandardOutput;

                rInfo = myStreamReader.ReadToEnd();

                myProcess.Close();

                rInfo = strCmd + "\r\n" + rInfo;

                return rInfo;

            }

            catch (Exception ex)

            {

                return ex.Message;

            }

        }


源码实例:

 

 

[csharp] view plain copy print ?
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Diagnostics;  
  6. using System.Drawing;  
  7. using System.IO;  
  8. using System.Linq;  
  9. using System.Text;  
  10. using System.Threading.Tasks;  
  11. using System.Windows.Forms;  
  12. using dmNet;  
  13. namespace dmTest  
  14. {  
  15.     public partial class Form1 : Form  
  16.     {  
  17.         public Form1()  
  18.         {  
  19.            InitializeComponent();  
  20.            AutoRegCom("regsvr32 D:\\dm.dll /s");  
  21.         }  
  22.   
  23.         private void button1_Click(object sender, EventArgs e)  
  24.         {  
  25.             dmsoft dm = new dmsoft();  
  26.             textBox1.Text = dm.FindWindow("""t").ToString();  
  27.             dm.MoveTo(30, 30);  
  28.   
  29.         }  
  30.         /// <summary>   
  31.         /// 注册   
  32.         /// </summary>   
  33.         /// <param name="strCmd"></param>   
  34.         /// <returns></returns>   
  35.         static string AutoRegCom(string strCmd)  
  36.         {  
  37.             strCmd = "regsvr32 D:\\dm.dll /s";  
  38.             string rInfo;  
  39.             try  
  40.             {  
  41.                 Process myProcess = new Process();  
  42.                 ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("cmd.exe");  
  43.                 myProcessStartInfo.UseShellExecute = false;  
  44.                 myProcessStartInfo.CreateNoWindow = true;  
  45.                 myProcessStartInfo.RedirectStandardOutput = true;  
  46.                 myProcess.StartInfo = myProcessStartInfo;  
  47.                 myProcessStartInfo.Arguments = "/c " + strCmd;  
  48.                 myProcess.Start();  
  49.                 StreamReader myStreamReader = myProcess.StandardOutput;  
  50.                 rInfo = myStreamReader.ReadToEnd();  
  51.                 myProcess.Close();  
  52.                 rInfo = strCmd + "\r\n" + rInfo;  
  53.                 return rInfo;  
  54.             }  
  55.             catch (Exception ex)  
  56.             {  
  57.                 return ex.Message;  
  58.             }  
  59.         }  
  60.   
  61.   
  62.   
  63.     }  
  64. }  
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Diagnostics;

using System.Drawing;

using System.IO;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using dmNet;

namespace dmTest

{

    public partial class Form1 : Form

    {

        public Form1()

        {

           InitializeComponent();

           AutoRegCom("regsvr32 D:\\dm.dll /s");

        }



        private void button1_Click(object sender, EventArgs e)

        {

            dmsoft dm = new dmsoft();

            textBox1.Text = dm.FindWindow("", "t").ToString();

            dm.MoveTo(30, 30);



        }

        /// <summary>

        /// 注册

        /// </summary>

        /// <param name="strCmd"></param>

        /// <returns></returns>

        static string AutoRegCom(string strCmd)

        {

            strCmd = "regsvr32 D:\\dm.dll /s";

            string rInfo;

            try

            {

                Process myProcess = new Process();

                ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("cmd.exe");

                myProcessStartInfo.UseShellExecute = false;

                myProcessStartInfo.CreateNoWindow = true;

                myProcessStartInfo.RedirectStandardOutput = true;

                myProcess.StartInfo = myProcessStartInfo;

                myProcessStartInfo.Arguments = "/c " + strCmd;

                myProcess.Start();

                StreamReader myStreamReader = myProcess.StandardOutput;

                rInfo = myStreamReader.ReadToEnd();

                myProcess.Close();

                rInfo = strCmd + "\r\n" + rInfo;

                return rInfo;

            }

            catch (Exception ex)

            {

                return ex.Message;

            }

        }







    }

}


今天试了一下,C#用大漠编写程序 挺多的方法都不支持比如启动程序,输入字符串,大漠对C#的支持性不是很好。不知道其他朋友有没有试过的,大家一起交流下。

你可能感兴趣的:(C#)