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注册一下。代码

        

  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;
            }
        }


源码实例:

 

 

  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#的支持性不是很好。不知道其他朋友有没有试过的,大家一起交流下。

posted @ 2013-01-16 12:02  装配中的脑袋  阅读(1593)  评论(0编辑  收藏  举报