编号:QA002404 建立日期: 2000年1月8日 最后修改日期:2000年1月8日 所属类别:
Rick: OS: Windows 98 SoftWare: VB6 在Word97等软件中有一项功能:在程序已有一个实例,即已经打开了一份文档时,再在资源管理器中点击其关联的的文件(比如:.Doc文件),系统并不是再打开一个Word程序,而是在原来的实例的MDI窗口中增加了一个子窗口。在UltraEdit Text Editor、WinZip等软件中也有此功能。 我想,程序应作如下处理: 1.判断当前是否已运行。 2.激活已运行的实例窗口。 3.将文档名称参数传递给程序,并由已运行的实例进行处理。 请问各位高手如何用VB6实现该功能,特别是第三条,如何向已运行的程序传递参数。谢谢。
回答:
前两个问题可以参考QA001297 "如何避免程序被再次启动"。 第三个问题可以利用FindWindow查找已有实例的句柄(参考QA000251 "如何利用FindWindow()函数查找程序"),然后利用SendMessage将文件名作为某个消息的参数发送给窗口(QA002241 "SendMessage() API 函数如何使用")。而已有实例收到消息后打开文件。 也可以利用DDE传递文件名,参考微软的Knowledge Base的文章:“Q74861“ ample of Client-Server DDE Between Visual Basic Applications”。
此问题由李海回答。 把这个问题推荐给朋友 您的意见类别 更好的答案 希望得到进一步解释 我有有关代码可以提供给网友 链接错误 文字错误 其他 您的名字 您的电子邮件 您的建议(请尽可能详细)