如何实现象Windows Media Player那样,双击不同的MP3文件能播放相应的MP3文件,但是主窗口只有一个。
我已经在Main(string[] __args)中,获取点击的文件名,当第一次打开某文件后,程序可以运行,并打开该文件,但当我以后再双击别的文件时,只是显示主窗口,还是播放第一次双击的文件,该如何解决?谢谢 static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [MTAThread]
        static void Main(string[] __arrArgs)
        {
            if (__arrArgs.Length == 0 || __arrArgs == null)
            {
                Application.Run(new MainForm());
            }
            else
            {
                Application.Run(new MainForm(arrArgs[0]));
            }
        }    }

解决方案 »

  1.   

    当再次点击的时候,关闭当前播放窗体,在NEW一个不行吗?瞎猜的!
      

  2.   

    Application.Run(new MainForm(arrArgs[0]));
    //这一句不是第一首么?
      

  3.   

    我跟踪过,当点第二个文件时,就不会执行这个Main(string[] __args)方法了!
    有人知道怎么解决吗?
      

  4.   

    手头没资料,不能详细说明,给你一个思路吧!第一步,使用mutex可以判断,是否已经打开了一个实例,mutex的好处在于,可以跨进程,不只是线程。第二步,如果已经存在了一个实例,那就需要先找到这个对应的窗口,利用Process,遍历所有进程,找到原来实例的窗口。第三步,进程之间通讯,最好用wmi,自己写一段接收消息并处理的程序就好了,这样已经打开的实例就可以根据传入的消息,进行处理了。第四步,把自己close掉,看起来就像没有打开过一样,所有的处理都是在原先的那个实例里做的。