在系统上以最小化或隐藏窗口启动打包的Windows应用程序

问题描述 投票:0回答:1

我开发了一个打包的桌面 Windows App SDK 应用程序,它可以选择使用 StartupTask 在系统启动时运行。这效果很好,但现在我还希望选择以最小化或隐藏状态的窗口启动。在同一应用程序的未打包版本中,我只需使用命令行参数在启动文件夹中创建一个快捷方式,我可以处理和设置窗口状态。如何对打包版本执行相同操作?有没有办法在启动时传入参数?

我尝试创建快捷方式来启动应用程序的打包版本,就像这个问题一样,但这似乎不是实现此目的的正确方法。

windows-store-apps command-line-arguments windows-app-sdk
1个回答
0
投票

您可以在应用程序中通过 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();
         }
     }
 }
© www.soinside.com 2019 - 2024. All rights reserved.