【发布时间】:2011-12-25 02:03:23
【问题描述】:
我有一个打开 *.postfix 文件的 c# 程序。
如果用户运行指向我的文件类型的 (.lnk) 快捷方式,我的程序将打开目标。
那么,我的程序怎么知道它是由 (.lnk) 快捷方式启动的(并获取它的文件路径)?
在某些情况下,我需要替换 .lnk 文件。
谢谢!
已编辑 首先,感谢回答我问题的人。
按照@Anders 的回答,我发现我的问题出在这里。
我对windows注册表做了一些修改,所以浏览器知道把自定义的协议字符串扔给某个程序。
类似的东西..
[互联网快捷方式] URL=myProtocol://abcdefg.....
这也许就是我丢失 lpTitle 的原因。 :(
我将尝试这种方式: 每当我的程序被调用时,当然是 %1,程序检查当前打开的资源管理器(窗口),并尝试使用 IWebBrowserApp 获取它的当前路径。当然,使用该路径和桌面,扫描并分析 *.lnk 以确定要替换哪个。
我认为这可能会奏效,但不确定。我会尝试。 继续
【问题讨论】:
-
我不确定这是否可行。 .LNK 文件由资源管理器打开,该信息用于生成进程(例如 CreateProcess)。我不知道是否/如何提供如何进程(或是否涉及 LNK 文件)的信息...
-
将此重新标记为 winapi - 希望这方面的一些专家可以提供更彻底的答案。