我开发了一个打包的桌面 Windows App SDK 应用程序,它可以选择使用 StartupTask 在系统启动时运行。这效果很好,但现在我还希望选择以最小化或隐藏状态的窗口启动。在同一应用程序的未打包版本中,我只需使用命令行参数在启动文件夹中创建一个快捷方式,我可以处理和设置窗口状态。如何对打包版本执行相同操作?有没有办法在启动时传入参数?
我尝试创建快捷方式来启动应用程序的打包版本,就像这个问题一样,但这似乎不是实现此目的的正确方法。
您可以在应用程序中通过 OverlappedPresenter 类 执行此操作。当您检测到应用程序通过启动任务启动时,请使用
OverlappedPresenter
最小化应用程序。
您可以尝试使用这里的代码:
protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
m_window = new MainWindow();
m_window.Activate();
AppActivationArguments appActivationArguments = Microsoft.Windows.AppLifecycle.AppInstance.GetCurrent().GetActivatedEventArgs();
if (appActivationArguments.Kind is ExtendedActivationKind.StartupTask )
{
// Retrieve the window handle (HWND) of the current (XAML) WinUI 3 window.
IntPtr hWnd = WinRT.Interop.WindowNative.GetWindowHandle(m_window);
// Retrieve the WindowId that corresponds to hWnd.
WindowId windowId = Win32Interop.GetWindowIdFromWindow(hWnd);
// Lastly, retrieve the AppWindow for the current (XAML) WinUI 3 window.
AppWindow appWindow = AppWindow.GetFromWindowId(windowId);
if (appWindow.Presenter is OverlappedPresenter presenter)
{
presenter.Minimize();
}
}
}