/// <summary> /// Applies relaunch command and jump list modifications to a Windows 7 taskbar entry. /// </summary> /// <param name="windowHandle">A handle to the window the taskbar entry belongs to.</param> private void ConfigureTaskbar(IntPtr windowHandle) { if (_relaunchInformation == null || !WindowsUtils.IsWindows7) { return; } // Add correct relaunch information string commandPath = (_relaunchInformation.NeedsTerminal ? _relaunchControl.CommandPathCli : _relaunchControl.CommandPathGui + " --no-wait"); // Select best suited launcher string icon = (string.IsNullOrEmpty(_relaunchInformation.IconPath) ? null : _relaunchInformation.IconPath + ",0"); // Always use the first icon in the file WindowsTaskbar.SetWindowAppID(windowHandle, _relaunchInformation.AppID, '"' + commandPath + "\" run " + _relaunchInformation.Target, icon, _relaunchInformation.Name); // Add jump list entry to select an alternative application version WindowsTaskbar.AddTaskLinks(_relaunchInformation.AppID, new[] { new WindowsTaskbar.ShellLink("Versions", _relaunchControl.CommandPathGui, "run --customize " + _relaunchInformation.Target) }); }