问题描述
using Microsoft.VisualBasic.ApplicationServices; staticvoidMain(string[]args) { AppmyApp=newApp(); myApp.Run(args); } classApp:WindowsFormsApplicationBase { publicApp() { //设置单例模式 this.IsSingleInstance=true; //设置可用于XP窗口样式 this.EnableVisualStyles=true; //窗口关闭时的操作 this.ShutdownStyle=ShutdownMode.AfterMainFormCloses; } ///<summary> ///重写OnCreateMainForm()函数 ///</summary> protectedoverridevoidOnCreateMainForm() { this.MainForm=newFormMain(); } } }我这里已经实现了只能运行一个实例并激活,但是不知道怎么传递参数过去。。
解决方案
解决方案二:
人工置顶求高手支招~~
解决方案三:
没看明白,什么参数往什么地方传,也没看到单例模式的实现方法
解决方案四:
引用2楼thinkingforever的回复:
没看明白,什么参数往什么地方传,也没看到单例模式的实现方法
就是说第一次运行这个程序就是普通程序没问题第二次运行这个程序的时候我想要的是把第一次那个实例激活而不是再运行这个程序而我第二次运行的时候可能是这样调用的test.exeTwoRun也就是说要把这个TwoRun这个参数传递到第一个实例并且让他作出反应比如说把这个参数弹出来什么的
解决方案五:
运行一个实例用你的方式无法进行数据传递,你应该使用命名Mutex对实例数进行控制。数据传递这块你可以看下进程间的IPC或者管道通信,这块不太熟,你最好查一下
解决方案六:
引用4楼viewstates的回复:
运行一个实例用你的方式无法进行数据传递,你应该使用命名Mutex对实例数进行控制。数据传递这块你可以看下进程间的IPC或者管道通信,这块不太熟,你最好查一下
百度上对C#的管道通讯资料少~~