使用winapi从桌面打开C++文件

Posted

技术标签:

【中文标题】使用winapi从桌面打开C++文件【英文标题】:open a file in c++ from desktop using winapi 【发布时间】:2012-07-26 13:52:37 【问题描述】:

我制作了一个可以编辑和打开 .BMP 文件的程序,但您只能在程序中打开这些文件。

如果我通过单击文件并选择我自己的程序来使用程序打开文件,它只会打开我的程序并且什么都不做。

如何以这种方式打开文件,或者我必须处理哪条消息。

【问题讨论】:

文件名不是传给main的argv[]参数了吗? @Zeta:差不多,除了这个问题被标记为winapi,所以他可能有WinMain而不是main 奇怪的是,答案来自一个在提出问题后几秒钟内创建的帐户......两个帐户也相距约 10 分钟。 【参考方案1】:

默认情况下(意味着您的程序没有安装请求 DDE 关联的注册表项),文件名将在命令行上传递。您可以使用GetCommandLine 函数来检索它。

【讨论】:

【参考方案2】:

当您通过“打开方式...”上下文菜单项打开 .bmp 文件时,将使用等于文件名的命令行参数调用您的程序。

因此你应该解析你的命令行参数

【讨论】:

以上是关于使用winapi从桌面打开C++文件的主要内容,如果未能解决你的问题,请参考以下文章

C#、C++、WinAPI - 从另一个进程获取窗口数

C++ WinAPI:处理长文件路径/名称

如何使用 WinAPI 和 C++ 从 Windows 系统上的服务通知客户端应用程序?

将位图图像加载到 WINApi C++ 并显示

简单的匿名管道 - 您使用啥包装器模型? (WinAPI, C++)

如何安全地调用 TerminateThread 和 FreeLibrary (WinAPI, C++)