【问题标题】:Get path of a file using "Send to" shortcut to a Win32 app (Flutter Desktop) [duplicate]使用 Win32 应用程序(Flutter 桌面)的“发送到”快捷方式获取文件的路径 [重复]
【发布时间】:2021-08-11 23:03:28
【问题描述】:

在“发送到”文件夹中添加应用程序很容易。但是一旦你选择了一个文件 --> 发送到 --> 你的应用程序,应用程序就会打开。

在上图中,一旦我点击“Your App”,应用程序就会打开,但是我如何获取所选文件的绝对路径?我找不到与此相关的任何内容。

【问题讨论】:

  • 你见过命令行参数吗?

标签: winapi desktop-application flutter-desktop


【解决方案1】:

文件名可能是调用应用程序时使用的第一个参数。

您的主要功能必须如下所示:

int main(int argc, char *argv[])

那么 argc 是参数的数量,而 argv 是一个以空字符结尾的字符串数组。

第一个参数可以这样访问:

argv[1];

但不要忘记先检查 argc:

char* cFile=0;
if(argc==1) {
   cFile=argv[1];
}
if(cFile) {
 //do action with file here
}

【讨论】:

  • 但是我在哪里可以找到第一个参数?我需要在 main.cpp 中添加什么来获取文件名/文件路径
  • “Send To”文件夹发送的参数所在的最后一个命令行位置argc - 1是包含完整路径的东西。您可以使用PathCchRemoveFileSpec获取文件路径或使用_splitpath_s获取文件名和文件路径。
猜你喜欢
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 2023-03-18
  • 2013-03-23
  • 1970-01-01
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多