Articles of 快捷方式

如何将所有快捷方式redirect到给定的可执行文件? Windows上有什么等效的符号链接?

我正在研究一个包含通用引擎,一些程序特定内容和自定义自动更新程序的程序,以便尽可能高效地处理在内容中更新数千兆字节的媒体。 在引擎的最新版本中,我们重新组织了我们的目录结构,而不是将可执行文件安装到(例如) c:\Program Files\Program\Engine.exe ,它现在位于c:\Program Files\Program\engine\win32\NewEngine.exe (注意在这个过程中引擎的名字也改变了)。 问题是,为了启动程序,用户需要使用一个快捷方式,我们安装在他们的开始菜单和(可选)在他们的桌面上。 尽pipe如此,更新之后引擎的移动却打破了这些捷径。 所以现在我需要找出一种方法来修复用户启动程序的所有快捷方式。 从Unix / Mac OS X的背景来看,我倾向于从旧的可执行文件名称到新的可执行文件名称创build一个符号链接。 据我所知,在Windows上并没有真正的符号链接(从谷歌search,我看到在Vista和后来的符号链接 ,但这需要在XP上工作)。 我的假设是错的吗? Windows上是否有与可执行文件相符的符号链接? 想到的其他一些可能的解决scheme是: 在旧位置创build一个小的可执行文件,在新位置启动真正的可执行文件。 有什么简单快捷的方法来创build一个简单的,无头的可执行文件,只是启动另一个程序? 再次,在Unix上,我只是简单地创build一个shell脚本,但据我所知,我不能命名一个.bat文件.exe并让它运行,所以这需要一个实际生成一个.exe 。 更新后,search指向可执行文件的所有快捷方式并对其进行编辑。 是否有任何(高效和可靠)的方式来查找系统上指向给定位置的所有快捷方式并更新它们? 上述的组合,一个小的可执行文件检测到它是从一个快捷方式启动,并在启动真正的程序之前编辑该快捷方式。 有什么办法可以检测到一个程序正在从一个快捷方式启动,从而能够编辑该快捷方式? 这些选项中的任何一个都可以工作,如果是这样的话? 在Windows上做这种事情的最好方法是什么? 我是否错过了将快捷方式从一个位置redirect到另一个位置的其他方法? 编辑添加 :我们有一些额外的要求: 我们的许多用户是非技术性的。 任何需要用户干预的解决scheme都是不可能的。 这应该尽可能无缝。 每次用户单击快捷方式时都会popup任何额外的窗口,这是不可接受的。 在面对用户可能完成的大部分事情时,这应该是可靠的,比如重新安排开始菜单或将快捷方式移动到快速启动栏。 我们的快捷方式对于程序的运行是绝对必要的,因为它们传递引擎加载内容所必需的参数(是的,这不是理想的;我宁愿修复这一点,但不能在这一点上) 我正在寻找一些相对快速,易于实施和非常可靠的方法。

如何运行一个快捷方式

我不知道从另一个应用程序中运行应用程序快捷方式的“官方”方式是什么。 喜欢这个: string program = "application.exe"; Process.Start(program); 如果application.exe是一个快捷方式,这将无法正常工作。 当然,原因是应用程序的实际文件名是appication.exe.lnk 。 现在,Windows资源pipe理器将不会显示.lnk部分(即使您已经“隐藏已知文件types的扩展名”未选中),而当您在DOS框中执行dir时,它显示。 所以我想到了这个 string program = "application.exe"; if (!File.Exists(program)) program += ".lnk"; Process.Start(program); 但我一直在想,如果有更好的方法。 这听起来…不完整。 但我的search已经空了。 没有什么,但如何创build快捷方式和东西的解释。

Windows:创build到不存在的驱动器的快捷方式不允许长文件夹和文件名

我正尝试使用PowerShell创build一个映射驱动器上的文件的快捷方式。 不过,这个脚本将在驱动器被映射之前运行。 代码如下: $Shortcut = (New-Object -ComObject WScript.Shell).CreateShortcut("$Env:USERPROFILE\Desktop\Test.lnk") $Shortcut.TargetPath = "X:\Folder With Spaces\This is a long filename.txt" $Shortcut.Save() 由于“X”驱动器尚不存在,这就是快捷方式的“目标”字段结尾说: Windows XP:X:\ Folder_W \ This_is_.txt Windows 7:X:\ Folder_With_Spaces \ This_is_a_long_filename.txt 两个操作系统删除周围的双引号,并将空格转换为下划线。 Windows XP也将文件夹和文件名截断为8个字符。 有没有办法解决这个问题?

如何在VB 2010 .NET中读取给定快捷方式(* .lnk)文件的目标path值?

给定一个Windows快捷方式文件(lnk扩展名),我需要提取它指向​​的path。

为什么在C ++中查找shell链接的快捷方式的目标path是指windows \ installer文件夹

我想在startmenu文件夹中find一个快捷方式的目标path, 我知道应该使用从shell链接组件对象模型, 但在我的一些快捷方式的testing中显示: “windows \ installer \ {guid} \ x.exe ” 并不显示它的程序文件文件夹,并为其他捷径工作正常, 我怎样才能find这些产品的目标path。 这是我使用的function: HRESULT TargetShortcut::ResolveIt(HWND hwnd, LPCTSTR lpszLinkFile, LPTSTR lpszPath, int iPathBufferSize) { HRESULT hres; if (lpszPath == NULL) return E_INVALIDARG; *lpszPath = 0; // Get a pointer to the IShellLink interface. It is assumed that CoInitialize // has already been called. IShellLink* __psl […]

如何创build一个快捷方式来启动一个文件夹的batch file?

我一直在尝试创build一个快捷方式,从快捷方式位置启动一个文件夹的batch file。 我已经能够做到这一点使用和中间batch file在同一文件夹中的快捷方式,如下所示:Intermediate.bat: @echo off FOR %%V IN ("%~dp0..\") DO set curdrv=%%~dpV start "" %curdrv%Oneup.bat 而快捷键目标是:%windir%\ system32 \ cmd.exe / c Intermediate.bat 而“开始”处于空白状态。 这样我可以将这些文件夹移动到驱动器或另一个驱动器上的任何位置,并且该快捷方式仍然有效 但是,我想省略Intermediate.bat文件并直接启动Oneup.bat。 我试过了: %windir%\system32\cmd.exe /c FOR %%V IN ("%~dp0..\") DO set curdrv=%%~dpV && start "" %curdrv%Oneup.bat 在目标的快捷方式,但它不工作。 有一些窍门让这个工作? 谢谢

如何通过Pythonfind与Windows文件关联的图标?

我正在开发一个Python脚本来在Windows上进行文件pipe理。 本质上,我希望能够将文件移动到另一个位置,并创build一个Python脚本的快捷方式,在打开重定位文件之前,它将执行中间步骤。 我目前可以移动文件,创build正常运行的快捷方式,并设置快捷方式图标图像。 我唯一剩下的就是弄清楚如何检测文件显示的图标。 – 设置快捷方式的图标(指向“.py”脚本) – 这个图标应该匹配一个任意的文件types,EXE等,我有path – 通过Python以编程方式完成。 os.system()调用是可以接受的。 额外的功劳是不需要额外的模块(虽然我已经有win32com,winshell,pythoncom等) 提前致谢…

用于快捷方式url的Windows快捷方式(.lnk .url)分析器

我一直在使用这个解决schemeparsing一个Windows快捷方式,并确定快捷方式指向什么。 但是,它只适用于本地文件和networking共享。 Windows快捷方式也可以指向URL。 我一直使用的解决scheme不能正确parsingURL快捷方式。 任何想法为什么或如何解决它? 对我来说,它会在这一行抛出一个ArrayIndexOutOfBoundsException: int file_location_info_flag = link[file_start + file_location_info_flag_offset_offset]; 我一直在testing一个名为“C:\ googleshort.url”的快捷方式,指向http://www.google.com/ 。 点击快捷方式工作得很好,并提出了谷歌,但Javaparsing器失败。

在Windows中创build文件夹的最新文件的快捷方式

有没有办法创build快捷方式总是指向Windows中的文件夹的最新(或最大等)? 例如: abc / file1 2012-01-01 xxx abc / file2 2013-01-01 xxx 快捷方式 – >指向file2 编辑完file1之后: abc / file1 2013-02-01 xxx abc / file2 2013-01-01 xxx 快捷方式 – >指向file1

我可以提交颠覆的快捷方式(并以可用的forms恢复)

如果我提交Windows快捷方式颠覆,会发生什么? ( 这里的动机 ,虽然我不诚实地期望实际上做到这一点,但是我在过去曾经在Linux上做过类似的事情 。) 假设我在Win7中添加并提交颠覆的快捷方式: 如果以后再次检查,我可以使用它吗? 当他们检查到同一条path时,我的队友能够使用它吗? 我可以创build一个使用相对path的快捷方式吗? 我使用SlikSvn和其他倾向于使用TortoiseSVN是否重要? 我可以检查到Windows Server 2012或其他版本的Windows,并期望它的工作? TIA。