问题描述
各位大师,我目前遇到个需求,我首先通过操作系统选择多个文件,然后右键启动我的程序,我需要把选择的多个文件路径都作为参数传递给启动的程序,我写的主函数如下:staticvoidMain(string[]args){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);//Application.Run(newjiajiemi());string[]filePath=null;if(args.Length>0){filePath=args;}Application.Run(newMainForm(filePath));}这时,系统却会启动多个程序,每个程序收到的参数是选择文件中的一个,即选择多少个文件,则会启动多少个程序,每个程序都接受其中一个文件路径,请问大家有没办法,让程序只启动一次,但接受的参数是所有选择的文件。
解决方案
解决方案二:
Args参数就是文件名,它是数组
解决方案三:
解决方案四:
额补上这个图。
解决方案五:
路径是获取到了,关键是启动了几个程序?我是选择多个文件后,右键启动程序,这时会启动多个窗口,而不是一个窗口啊
解决方案六:
你选择两个文本文件也是打开两个记事本但是如果你选择两个文本文件拖拽到notepad.exe上面则只会打开一个记事本而且报错说不支持的路径因为单个的记事本不能同时打开多个文本两种打开方式系统两种不同传参方式。。在但是你选两个psd文件打开则只会启动一个ps你选着两个文本文件用notepad++打开也只会启动一个notepad++因为他们两个都是单例程序只会启动一个进程。。。你想达到这样的效果你也得自己处理这些问题。。刚才我说了两种打开方式是两种不同的传参方式选择文件以什么方式打开而不是拖拽打开的系统会直接启动对应个数的进程而notepad++或者ps都是只会启动一个进程的所以在循环创建进程的时候除了第一个进程创建成功后第二个开始检测到进程已经创建则会直接把参数扔个第一个进程然后自己退出。。。你自己考虑吧
解决方案七:
正是如此,我需要单实例进程,看来只能如你所说