怎样以exe的方式启动一个dll(或其它后缀的文件)呢? 之前做了一个exe,但是在另一个程序里面我想调用这个exe,但是不想让别人知道这是个exe,然后就改成了dll(或其它后缀的文件),可是用Process.Start的时候会发现找不到关联的程序来打开,请问有什么方法呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果都是.net的程序,可以不必使用Process的Start来启动这个EXE,而是使用Assembly的加载方法来加载这个EXE(VS2005中或.net2.0),然后像使用一般的DLL类型库中的类一样来声明EXE程序中的主窗体的变量然后使用ShowDialog等方法来启动就可以了。 Process可以指定相应程序打开你要的东西。比如Cmd.exe 谢谢hbxtlhx,这个exe文件不是C#写的,这个文件没有什么主窗体,就像是一个控制台应用程序一样,通过参数控制来运行的,并且我是在后台的方式来运行的,并不需要显示出东西(也不希望显示出来). 回ms44:主要的后缀已经改成非exe结尾的了,如果是exe的话是没问题的 如果是托管的EXE你可以试试这样Assembly assem= Assembly.LoadFrom(YourProPath);Type tExForm = assem.GetType(YourTypeName);Object exFormAsObj = Activator.CreateInstance(tExForm);..... 这样子说吧,将 c:\windows\system32下的notepad.exe(记事本)改成notepad.dll然后运行->cmd:cd 到system32目录,再输入notepad.dll回车,系统会运行他,并且是像运行notepad.exe一样打开记事本,我也想这样,要怎么样才可以呢? 没有什么好办法,如果是非exe文件,就需要有关联程序的,我的解决办法:1、把exe文件改成其它任何扩展名,2、要调用这个程序时,把原来改的名的文件,复制一份是exe扩展名的文件,可以放到其它隐蔽的文件夹下,3、调用这个文件4、程序退出时,删除这个exe文件, Try:Process.Start("rundll32.exe xxx.dll"); 不知道LZ是怎么重命名notepad.exe,因为一旦在资源管理器里面重命名,马上Windows就会生成一个notepad.exe的东西在里面。所以你自认为重命名之后执行的是dll,其实乃是运行的Windows给你恢复的exe。至于你的问题,应该不难。复制一个dll,然后重命名他为exe结尾,然后运行这个exe好了。如果需要删除这个临时的exe,那么就监视一下exe的进程了,一旦进程结束就删除exe。 其实很简单的. 比如 一个.EXE后缀的程序,修改为.ttt后缀了.一样可以启动.启动之后还是一个exe文件.只不过在进程中显示的是XXX.ttt 1.ContextMenuStrip在好友列表(类似与listview)控件上出现问题.2.实现加载好友分组功能.求大神解决,感激不尽! 读取一条网址内的内容 关于多线程问题 farpoint3.0打印功能会用的进!!! 怎么实现listbox内容居中? ExecuteReader: CommandText 属性尚未初始化? 读取Excel数据出错,请求帮助 C#中listview怎么用? 关于sdk2.0 带有sqlhelper类的C#winform 怎么打包啊 戴尔面试.net软件工程师,我该做些什么准备呢? C#为什么要形成IL中间代码,而不是直接生成机器代码?
比如Cmd.exe
这个exe文件不是C#写的,这个文件没有什么主窗体,就像是一个控制台应用程序一样,通过参数控制来运行的,
并且我是在后台的方式来运行的,并不需要显示出东西(也不希望显示出来).
Assembly assem= Assembly.LoadFrom(YourProPath);
Type tExForm = assem.GetType(YourTypeName);
Object exFormAsObj = Activator.CreateInstance(tExForm);
.....
然后运行->cmd:cd 到system32目录,再输入notepad.dll回车,系统会运行他,并且是像运行notepad.exe一样打开记事本,我也想这样,要怎么样才可以呢?
我的解决办法:1、把exe文件改成其它任何扩展名,
2、要调用这个程序时,把原来改的名的文件,复制一份是exe扩展名的文件,可以放到其它隐蔽的文件夹下,
3、调用这个文件
4、程序退出时,删除这个exe文件,
只不过在进程中显示的是XXX.ttt