我想做到的是在双击WMV视频文件时,如有正在播放的文件,旧将该文件添加到播放列表中,请问这个应该怎么做,是不是应该在注册表中加入参数呀!请高手给出方案!谢谢!

解决方案 »

  1.   

    //只给你说一下原理
    //  首先在当前进程启动的时候,判断该进程是否已经启动过
    //  如果发现已经启动过,就将打开文件名通过消息的方式发送给已经打开的进程的主窗体后退出
    //
    //  主窗体中通过重载WndProc()截获该消息
    //  进程间要传递字符串或结构普遍使用WM_COPYDATA//WM_COPYDATA的处理你可以搜索以前的帖子实现这一步using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    using System.Diagnostics;namespace WindowsApplication1
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Process vCurrentProcess = Process.GetCurrentProcess();
                Process[] vProcesses = Process.GetProcessesByName(
                    vCurrentProcess.ProcessName);
                foreach (Process vProcess in vProcesses)
                {
                    if (vProcess.Id != vCurrentProcess.Id) // 如果播放器已经打开i
                    {
                        //todo 将当前打开的文件信息发送给
                        //已经打开的进程主窗体
                        //SendMessage(vProcess.MainWindowHandle, WM_COPYDATA, xx, xx);
                        return; 
                    }
                }            Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
    }