在Windows 8.1(NSIS)中从安装程序获取启动屏幕上的快捷方式

时间:2014-07-31 08:27:43

标签: windows installer nsis

我猜这个答案存在于某个地方,但我现在已经搜索并尝试了8个多小时,所以我在问。

如何在安装时在Windows 8.1(和8和7)启动屏幕上显示图标?

我正在使用Nullsoft Scriptable Install System。我已经尝试过版本2.46和3.0b0(不是我认为它与它有任何关系,但不妨尝试两者)。

我认为我的剧本的相关部分是这个

!define APPNAME "MyApp"
!define COMPANYNAME "Greggman"

SetShellVarContext current
CreateDirectory "$STARTMENU\Programs\${COMPANYNAME}"
CreateShortCut "$STARTMENU\Programs\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\myapp.exe" "$\"$INSTDIR\somedir\somescript.foo$\" --app-mode" "$INSTDIR\logo.ico"
CreateShortCut "$STARTMENU\Programs\${COMPANYNAME\${APPNAME}-Uninstall.lnk" "$INSTDIR\uninstall.exe"        createDirectory "$SMPROGRAMS\${COMPANYNAME}"

它会创建一个快捷方式,但它只能在所有应用程序屏幕上显示(或任何被称为)

apps screen

开始屏幕上没有任何内容

enter image description here

也许这就是应该的样子但是我很难相信普通用户会知道他们要么必须搜索他们刚刚安装的应用程序,要么他们必须点击左下方的那个小箭头启动屏幕,然后在所有这些小图标中找到“greggman”部分,然后单击MyApp运行他们刚刚安装的东西。

我也尝试过HKLM的管理员权限和HKCR只有用户权限。我更愿意坚持使用HKCR,但由于它在任何一种情况下都不起作用,我认为这不是问题。

我在哪里放置快捷方式或注册表设置或其他任何内容来添加图块到开始屏幕。或者还有其他一些我应该做的事情,以便我的用户在安装后可以找到它吗?

2 个答案:

答案 0 :(得分:2)

Windows 8会将您的快捷方式固定到“开始”屏幕,(如果上面讨论的标记未设置 - 基于每个快捷方式,则所有快捷方式)。在Windows 8.1上,只有USER可以固定快捷方式,他们必须手动完成。之所以进行更改,是因为用户抱怨他们的“开始屏幕”过于混乱。

答案 1 :(得分:2)

Windows应该为你固定它。此固定可以由System.AppUserModel.StartPinOption控制。

CreateShortcut "$SMPrograms\MyApp.lnk" "$InstDir\MyApp.exe"应该足够了。您实际上不应该在开始菜单中创建指向卸载程序/自述文件/帮助文件的链接,如果在删除这些文件后只剩下一个快捷方式,那么您也不应该创建子文件夹。我不确定这是否是问题的一部分。