c++ - 处理打开方式的事件 (WinApi)

标签 c++ winapi

我找不到我应该如何在我的程序中处理文件打开。例如,如果用户使用 Open With ... myprogram.exe 那么我该如何处理它并对其进行处理。发送哪个 WM_Message? 谢谢

*不,我的意思是如果你有 sometext.txt 和 openwith Notepad.exe,它会神奇地显示文本,所以我怎么知道是否有人使用了 Open With。

最佳答案

没有发送消息,您可能会在命令行上获取它,使用 argc/argv 或 GetCommandLine()

shell 首先检查 NoOpenWith KCR\Applications\myprogram.exe 中的值如果不存在,您的应用程序将列在打开方式对话框中。 如果用户选择您的应用程序,shell 将 use the command listed under HKCR\Applications\myprogram.exe\shell\open\Command 如果它存在(如果这是你想要处理“传入文件”的方式,那么你可以分配 DDE 或 Droptarget 属性)

如果你真的想知道是否使用了 openwith,我想你可以在 shell 键下注册一个命令,使用 myprogram.exe/openwith "%1"这样的命令行来执行你的应用程序

关于c++ - 处理打开方式的事件 (WinApi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2706538/

相关文章:

c++ - 寻找免费的源代码分析器(函数依赖树)

c# - 获取流程输入

c++ - Win32 : Prevent folder modification?

c++ - 如何访问尚未开始运行的挂起线程的堆栈?

c++ - 为什么用 `0x62A`字体打印字符 "Calibri",而字符 `0x660E`不是?

c++ - 四元数和翻译

c++ - 无法使用 catch (...) 捕获 c++ 异常

java - C++ 与 Java 中的名称隐藏

c++ - 在 C++ 中从可执行路径(或从 hWnd,或从 pid)获取程序名

c++ - 如何包含自编译库中的 header ?