C# 唯一进程如何控制 (高手进)

来源:百度知道 编辑:UC知道 时间:2024/09/20 02:33:39
我用C#写的一个读取 .dat 的A.exe窗体程序 ,我想双击1.dat文件就用A.exe打开,已经实现,但我想双击2.dat的时候,用同一个A.exe打开,如何实现?就是进程是唯一的。就像editplus打开文件一样 。
1.说明调用的api函数,(注意A.exe的标题会变的)
2.如果A.exe没有激活 激活A.exe的api

这个....其实不难.
进程控制加自定义消息.
Process[] pList = Process.GetProcessesByName("A");
if (pList.Length > 0)
{
pList[0].MainWindowHandle
//已经有A.exe启动了
//使用API发送自定义消息
//SendMessage(pList[0].MainWindowHandle,WM_NEWSHELL,路径字符指针,0) //把要打开的文件路径传给A.exe 查考发送WM_SETTEXT
//在A.exe中添加对WM_NEWSHELL消息的处理.
}

//其中WM_NEWSHELL是个自定义的消息.

问题2:
好象使用ShowWindow可以实现激活.

不明白可以baidu下如何自定义消息.相关的API不会用也baidu下

可以在打包设置文件关联,只要是.DAT文件,都用你的程序打开。