IPropertyStore
所以我通过这样的方式将我的窗口从主选项卡组中拆分出来SHGetPropertyStoreForWindow
:
IPropertyStore_SetValue(pps, PKEY_AppUserModel_ID.address(), 'Contoso.Scratch');
pps->Commit();
然后用户后来决定他想重命名它,所以他使用我的功能:
IPropertyStore_SetValue(pps, PKEY_AppUserModel_RelaunchCommand, customLaunchPath);
IPropertyStore_SetValue(pps, PKEY_AppUserModel_RelaunchDisplayNameResource, 'my first name');
pps->Commit();
这是第一次成功。但是,如果他想只更改一次RelaunchCommand
,RelaunchDisplayNameResource
除非我也更改一次,否则它将无法正常工作ID
。
我在这里举了一个例子RelaunchCommand
,RelaunchDisplayNameResource
在我的真实案例中,用户也想更改图标,但同样的问题,它是第一次工作ID
。无论如何要运行多次而不必ID
每次都更改?
谢谢
PS:这个解决方案的另一个重要原因是我的一个窗口已经有一个System.AppUserModel.ID
并且已经固定了。我只想更改图标/重新启动命令/等,如果我更改,System.AppUserModel.ID
那么它将有效地取消固定它。:(