问题标签 [lnk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
25818 浏览

java - Java中的Windows快捷方式(.lnk)解析器?

我目前正在使用Win32ShellFolderManager2ShellFolder.getLinkLocation在 Java 中解析 Windows 快捷方式。不幸的是,如果 Java 程序在 Vista 下作为服务运行getLinkLocation,这将不起作用。具体来说,我收到一个异常说明“无法获取 shell 文件夹 ID 列表”。

搜索网络确实会提到此错误消息,但总是与JFileChooser. 我没有使用JFileChooser,我只需要将.lnk文件解析到其目的地。

有谁知道.lnk我可以使用的用 Java 编写的文件的第 3 方解析器?

从那以后,我在这里找到了 .lnk 格式的非官方文档,但如果有人以前做过,我宁愿不必做这项工作,因为这种格式相当可怕。

0 投票
3 回答
2432 浏览

windows - 通过自动脚本重新格式化 Windows lnk 文件

问题: C盘上有一堆.lnk文件指向J:盘,但是J:盘不见了,取而代之的是P:盘。已经采取了各种技巧来让 .lnk 文件仍然可以正常工作,但这变得很烦人,是时候修复这些问题了。

使用 Ruby、Python、WSH.JScript 或 Perl,您能否遍历 .lnk 文件的整个目录树并将它们更改为指向 p:/* 而不是 j:/*?你会怎么做?

注意:这对我来说并不是一个完全未知的问题,但我还是会问这个问题,因为以我迄今为止发现的方式管理 .lnk 文件的 API 似乎过于繁琐,无法成为最知名的方式。这是那些“必须有更好的方法”类型的问题之一。

0 投票
4 回答
1707 浏览

windows - 从 WOW64 启动 Shell 链接 (LNK)

我们的 32 位应用程序通过 ShellExecute 启动 Windows LNK 文件(Shell 链接)。当它尝试“启动”指向 64 位二进制文​​件的链接(例如“开始”菜单中的“Internet Explorer(64 位)”快捷方式)时,它总是最终启动 32 位二进制文​​件。在内部,ShellExecute 错误地解析了链接目标:LNK 内部有一个隐藏字段,其中包含 FOLDERID_ProgramFiles。64 位应用程序将此解析为 64 位程序文件目录,但 32 位应用程序不会。

Wow64DisableWow64FsRedirection 不会改变 ShellExecute 的这种行为。

除了通过 64 位“蹦床”过程(由于我们的插件架构如何工作,这不是一个选项),32 位应用程序是否有任何方法可以像 64 位应用程序一样启动 shell 链接?

0 投票
8 回答
28988 浏览

python - 在 Python 中读取 .lnk 文件的目标?

我正在尝试.lnk从 Python 读取快捷方式 ( ) 文件的目标文件/目录。有没有不头痛的方法呢?规格超出了我的想象。我不介意使用仅限 Windows 的 API。

"(My) Videos"我的最终目标是在 Windows XP 和 Vista 上找到该文件夹​​。在 XP 上,默认情况下,它是 at %HOMEPATH%\My Documents\My Videos,而在 Vista 上,它是%HOMEPATH%\Videos. 但是,用户可以重新定位此文件夹。在这种情况下,该%HOMEPATH%\Videos文件夹不再存在并被替换为%HOMEPATH%\Videos.lnk指向新文件夹的"My Videos"文件夹。我想要它的绝对位置。

0 投票
1 回答
799 浏览

windows - Expression Web:快捷方式不指向exe文件,但我想用它来编辑

问题:我必须支持需要编辑网页的用户。其中一些网页仅作为 textarea 控件存在。幸运的是,有一个 firefox 插件允许用户在默认文本编辑器中打开 textarea。不幸的是,这个插件需要你指向你想要调用的文本编辑器的 EXE 文件。

这是一个合理的要求,但@#$%^ Microsoft Expression Web 是那些快捷方式 .lnk 文件似乎没有指向真正的 EXE 文件的应用程序之一。如果某处有 EXE 文件,则它是隐藏的。

问题: 如何找到实际的 EXE 文件,以便人们可以将 Microsoft Expression Web 配置为他们选择的编辑器?

更新:我应该强调我正在寻找一种通过脚本或批处理文件自动执行此操作的方法(因此发布了 SO,以防任何人的“与编程无关”的蜘蛛侠感觉刺痛)。

0 投票
2 回答
1848 浏览

c++ - Wine 链接器错误:尝试创建 .lnk

我正在尝试以编程方式创建一个 .lnk 文件。我更喜欢使用 C,但 C++ 很好(并且是所有 MSDN 的内容)。

相关的代码示例是:

我正在尝试使用以下方法完成 wineg++:

我收到以下错误:

有任何想法吗?

0 投票
1 回答
1148 浏览

winapi - 有没有办法解决适用于最终在 c:\windows\installer 中的链接的 .lnk 目标?

解决 lnk 的常用方法包括使用 WShell.WshShortcut 或 IShellLink :

但是有些链接无法以这种方式解决:例如,分辨率以c:\windows\installer\{some-guid}\python_icon.exe 结尾。大多数 Office 程序也有这个问题。

CodeProject 通过对 lnk 格式http://www.codeproject.com/KB/shell/ReadLnkFile.aspx进行逆向工程来完成另一种解决方案,但它在这些情况下不起作用。

还有其他方法吗?

这个 c:\Windows\Installer 文件夹是什么?放入其中的 something_icon.exe 是什么?

0 投票
2 回答
501 浏览

windows-xp - 将快捷方式传递给批处理脚本

我的 bat 脚本接受一个文件路径作为参数,它允许我从资源管理器拖放一个文件到它上面。不幸的是,当我将快捷方式放到它上面时,我只是得到了 .lnk 文件本身的文件路径,而不是它所引用的文件。有没有办法派生底层文件路径?

我正在寻找 Windows XP 中的本机功能,该功能可直接用于 bat/cmd,而无需安装或配置其他软件。

0 投票
1 回答
776 浏览

java - 由 cygwin 创建的用于 Windows 快捷方式 (.lnk) 的 Java 解析器

继之前关于在 java 中解析 lnk 文件的讨论(Java 中的 Windows 快捷方式 (.lnk) 解析器? )。

我已经测试了所有提出的解决方案。但是,当我解压缩包含在 linux 机器上创建的符号链接的存档时,没有人使用我由 cygwin 创建的 lnk 文件。我有一个java.lang.ArrayIndexOutOfBoundsExceptioningetNullDelimitedString()方法。
cygwin 似乎创建了具有特定标题的特殊 lnk 文件。

有谁知道如何让 java lnk 解析器使用这种符号链接?

0 投票
0 回答
1207 浏览

c# - .LNK 文件快捷键不再起作用,如果我在 C#、最大化、无边框程序运行时按下它

有关可能由此问题引起的更一般的行为,另请阅读:

https://stackoverflow.com/questions/2042925/shortcut-keys-defined-in-lnk-files-do-not-work-if-im-running-ac-winforms-prog

我正在编写一个 C# 程序,使用 .NET 2.0 和 WinForms 以及 Visual C# 2008 Express。我使用的是 Windows 7,但问题也在 Windows XP 下。

重要提示:主窗体的 FormBorderStyle 属性设置为 None,WindowState 设置为 Maximized。

我在桌面上为我的程序创建了一个快捷方式文件 (.LNK),并在“属性”对话框中定义了一个快捷键(比如说 Ctrl+F11,但问题与我尝试的任何其他快捷键相同)。当我在 Windows 中按 Ctrl+F11 时,我的程序可以正常启动。

但是,如果我在程序运行时按 Ctrl+F11,则什么也不会发生(即使我将主窗体的 KeyPreview 属性设置为 true 并分配 KeyDown 事件处理程序也不会生成按键事件),但是在我关闭程序,当我再次尝试按 Ctrl+F11 时,该快捷方式在 Windows 中不再有效。我必须对其进行更改或等待更长的时间,直到它再次起作用(但是尚不清楚它是如何再次开始起作用的)。

如果我在程序运行时不按Ctrl+F11,在我关闭它后,下次我使用快捷键时,它可以正常工作。

这个问题使我无法使用 .LNK 快捷键功能为我的 C#、WinForms、.NET 2.0 程序定义一个没有表单边框且已最大化的快捷键。

我可以在我的 C# WinForms 程序中做些什么来解决这个问题吗?

谢谢