MFC程序只启动一个实例,并且通知最先启动的程序执行一些操作解决方法

MFC程序只启动一个实例,并且通知最先启动的程序执行一些操作
是这样的,我需要做一个视频播放器。当打开视频文件的时候,视频播放器会启动并且播放视频,但是当视频播放器已经启动后,打开视频不会启动第二个播放器,而是只运行一个播放器,这个播放器会自动播放当前打开的视频。
我的思路是这样的:
1、先使用互斥。只运行运行一个播放器
2、某种方法去通知已经运行播放器播放新的视频。

如何使用互斥的问题解决掉了,但是如何通知已有的播放器进程去播放新的文件呢?请大家给点思路。

------解决方案--------------------
用进程间通信的方法,把新的文件路径告诉原有进程:
比如
发送WM_COPYDATA消息;
或者 共享内存、共享文件、共享数据库...
------解决方案--------------------
换个思路!不使用互斥,

采用先检查到自己播放器是否已经运行了,如果运行了就发送WM_CLOSE消息关闭,关闭前面运行的播放器。再直接打开现在的这个播放器,播放当前选择的播放类容!
------解决方案--------------------
SetProp 和GetProp,把文件路径打进去,不知道是否可行,可以试下
------解决方案--------------------
探讨

换个思路!不使用互斥,

采用先检查到自己播放器是否已经运行了,如果运行了就发送WM_CLOSE消息关闭,关闭前面运行的播放器。再直接打开现在的这个播放器,播放当前选择的播放类容!

------解决方案--------------------
探讨
用进程间通信的方法,把新的文件路径告诉原有进程:
比如
发送WM_COPYDATA消息;
或者 共享内存、共享文件、共享数据库...

------解决方案--------------------
1、CreateMutex(NULL, TRUE, _T("{82063F81-B568-4d98-A210-99069C8EFF2C}")),如果已经创建会返回失败,GetLastError是ERROR_ALREADY_EXISTS
2、使用RegisterWindowMessage(_T("{82063F81-B568-4d98-A210-99069C8EFF2C}"))注册系统内唯一的消息,这样就可以直接PostMessage指定窗口句柄为HWND_BROADCAST广播消息,而只有你的应用会用这个消息,不会和其他应用发生干扰。
------解决方案--------------------
还是用互斥比较好,第二个发现已经存在Mutex了,发送一个自定义消息或其他进程通信方式,把视频文件路径等发送过去,第一个播放器播放新的视频,第二个播放器程序退出