从LUA(无LFS)创建LNK快捷方式



我想编写一个函数来从我的lua脚本创建Windows .lnk文件。我在Luafilesystem库中找到了一个功能。没有图书馆有没有办法这样做?(原因:我正在为多个用户编写脚本,如果我们不必在每台计算机上安装库。)

我感谢帮助!

制作快捷方式(.lnk文件)

-- your .lnk file
local your_shortcut_name = "your_shortcut.lnk"      
-- target (file or folder) with full path
local your_target_filespec = [[C:Windowsnotepad.exe]]
local ps = io.popen("powershell -command -", "w")
ps:write("$ws = New-Object -ComObject WScript.Shell;$s = $ws.CreateShortcut('"..your_shortcut_name.."');$s.TargetPath = '"..your_target_filespec.."';$s.Save()")
ps:close()

制作符号链接只需使用os.execute"mklink ..."

使用luacom比powershell

local luacom=require'luacom'
local shortcut_file_path='test_create_shortcut.lnk'
local target_file_path=arg[0]
local shellObject=luacom.CreateObject("WScript.Shell")
local shortcut=shellObject:CreateShortcut(shortcut_file_path)
shortcut.TargetPath=target_file_path
shortcut:Save()
assert(io.open(shortcut_file_path)):close()--shortcut file exist now
os.remove(shortcut_file_path)

并使用filesystemobject对象(另一个com)或kaitai struct(解析二进制文件结构以获取各种文件格式的信息)的Windows Shell链接文件格式规格以检索快捷方式信息。哪个" LFS"现在无法做。

请参阅:使用Windows脚本主机创建桌面快捷方式-Windows Client |微软文档Luacom用户手册(1.3版)

相关内容

  • 没有找到相关文章

最新更新