为避免“XY问题”的误解,我首先解释一下我的目标。我想在Linux上生成一个文件,当它被下载到Windows机器并双击时,会打开一个已知路径(在本地Windows机器上)预设的(ms office,但如果我理解正确的话,这并不重要)文件。
看起来,如果我在lnk文件中包含我想要打开的文件的路径(而不是存储卷等其他细节),那么我试图做的事情是可能的。 我首先检查了lnk文件格式规范,尝试在Python脚本中生成文件,但这不是我的强项(我以前从未编写过处理二进制文件的代码)。此外,该格式有许多我想放弃的功能,但我仍然必须理解它们的标志/字段/长度/终止等等。
然后我偶然发现了winedump实用程序和由WINE在我的~/.wine文件夹中创建的一些.lnk文件。 WINE代码库中肯定有一些函数能够生成lnk文件,但我找不到它们。 它在哪里? 它是否以类似于win的mklink的命令形式存在? 如果不是(如果不是,我猜它肯定是某个函数),你能否指出它给我,以便我可以编写一个包装器命令?
或者是否有任何可以在GNU/Linux上编写lnk文件并运行的库?
看起来,如果我在lnk文件中包含我想要打开的文件的路径(而不是存储卷等其他细节),那么我试图做的事情是可能的。 我首先检查了lnk文件格式规范,尝试在Python脚本中生成文件,但这不是我的强项(我以前从未编写过处理二进制文件的代码)。此外,该格式有许多我想放弃的功能,但我仍然必须理解它们的标志/字段/长度/终止等等。
然后我偶然发现了winedump实用程序和由WINE在我的~/.wine文件夹中创建的一些.lnk文件。 WINE代码库中肯定有一些函数能够生成lnk文件,但我找不到它们。 它在哪里? 它是否以类似于win的mklink的命令形式存在? 如果不是(如果不是,我猜它肯定是某个函数),你能否指出它给我,以便我可以编写一个包装器命令?
或者是否有任何可以在GNU/Linux上编写lnk文件并运行的库?
mklink -l '\\server\dir\file' -o my.lnk
。 - wojtow