比如在网上下载了一个用C#写的exe,我想扩展其功能
Assembly ass=Assembly.LoadForm(fileName);
Type t=ass.GetType("Form1");
Form f=Activator.CreateInstance(t) as Form;
f.Controls.Add(new Button());
比如我向其添加一个按钮,然后再从新生成一个exe
这里遇到两个问题:
1.ass是否是可写的?意即能不能向其中添加类,方法等等
2.怎么包ass保存为一个exe文件?当然,如何有其他方法能够扩展一个托管exe的功能也可以
还有一个问题,如果这个exe(指的是用C#写的托管exe)已经运行了,那么会有一个进程与之对应,能不能从这个进程创建Assembly?
我发现Control.FromHandle跨进程似乎就无效了
难道只能通过获得该进程各个控件的句柄,然后用Win32 API来操作?

解决方案 »

  1.   

    编译好的exe,你怎么和他通信呢,除非他存在通信的接口,你还可以通过remoting
    不然的话就不行
      

  2.   

    1.ass是否是可写的?意即能不能向其中添加类,方法等等 
    2.怎么包ass保存为一个exe文件? 
    还有一个问题,如果这个exe(指的是用C#写的托管exe)已经运行了,那么会有一个进程与之对应,能不能从这个进程创建Assembly? 
    我发现Control.FromHandle跨进程似乎就无效了 
    难道只能通过获得该进程各个控件的句柄,然后用Win32 API来操作?这3个问题都无法解决吗?
      

  3.   

    貌似没有sourcecode比较困难,
    反编译?
    简单的话,自己写!