diff --git a/src/modules/Projects/ProjectsEditor/Data/ProjectData.cs b/src/modules/Projects/ProjectsEditor/Data/ProjectData.cs index 41a3ab6a2c..a7c4171f49 100644 --- a/src/modules/Projects/ProjectsEditor/Data/ProjectData.cs +++ b/src/modules/Projects/ProjectsEditor/Data/ProjectData.cs @@ -33,7 +33,7 @@ namespace ProjectsEditor.Data public string CommandLineArguments { get; set; } - public bool LaunchesAsAdmin { get; set; } + public bool IsElevated { get; set; } public bool Minimized { get; set; } diff --git a/src/modules/Projects/ProjectsEditor/Models/Application.cs b/src/modules/Projects/ProjectsEditor/Models/Application.cs index 5733c6938b..d17f4ff70f 100644 --- a/src/modules/Projects/ProjectsEditor/Models/Application.cs +++ b/src/modules/Projects/ProjectsEditor/Models/Application.cs @@ -49,14 +49,14 @@ namespace ProjectsEditor.Models public string CommandLineArguments { get; set; } - private bool _launchesAsAdmin; + private bool _isElevated; - public bool LaunchesAsAdmin + public bool IsElevated { - get => _launchesAsAdmin; + get => _isElevated; set { - _launchesAsAdmin = value; + _isElevated = value; OnPropertyChanged(new PropertyChangedEventArgs(nameof(AppMainParams))); } } @@ -111,7 +111,7 @@ namespace ProjectsEditor.Models { get { - _appMainParams = _launchesAsAdmin ? Properties.Resources.Admin : string.Empty; + _appMainParams = _isElevated ? Properties.Resources.Admin : string.Empty; if (!string.IsNullOrWhiteSpace(CommandLineArguments)) { _appMainParams += (_appMainParams == string.Empty ? string.Empty : " | ") + Properties.Resources.Args + ": " + CommandLineArguments; diff --git a/src/modules/Projects/ProjectsEditor/Models/Project.cs b/src/modules/Projects/ProjectsEditor/Models/Project.cs index 784367c03f..f8655e9128 100644 --- a/src/modules/Projects/ProjectsEditor/Models/Project.cs +++ b/src/modules/Projects/ProjectsEditor/Models/Project.cs @@ -216,7 +216,7 @@ namespace ProjectsEditor.Models AppTitle = item.AppTitle, CommandLineArguments = item.CommandLineArguments, PackageFullName = item.PackageFullName, - LaunchesAsAdmin = item.LaunchesAsAdmin, + IsElevated = item.IsElevated, Minimized = item.Minimized, Maximized = item.Maximized, MonitorNumber = item.MonitorNumber, diff --git a/src/modules/Projects/ProjectsEditor/ProjectEditorPage.xaml b/src/modules/Projects/ProjectsEditor/ProjectEditorPage.xaml index b6eb399008..cb11244348 100644 --- a/src/modules/Projects/ProjectsEditor/ProjectEditorPage.xaml +++ b/src/modules/Projects/ProjectsEditor/ProjectEditorPage.xaml @@ -152,7 +152,7 @@ Margin="100 5 0 0"> GetApps(const std::function getMonitorNumberFromWindowHandle) { std::vector apps{}; @@ -219,6 +245,7 @@ namespace SnapshotUtils .path = processPath, .packageFullName = data.value().packageFullName, .commandLineArgs = L"", // GetCommandLineArgs(pid, wbemHelper), + .isElevated = IsProcessElevated(pid), .isMinimized = WindowUtils::IsMinimized(window), .isMaximized = WindowUtils::IsMaximized(window), .position = Project::Application::Position{ diff --git a/src/modules/Projects/projects-common/Data.h b/src/modules/Projects/projects-common/Data.h index 04f08f4c20..108db56bab 100644 --- a/src/modules/Projects/projects-common/Data.h +++ b/src/modules/Projects/projects-common/Data.h @@ -29,6 +29,7 @@ struct Project std::wstring path; std::wstring packageFullName; std::wstring commandLineArgs; + bool isElevated{}; bool isMinimized{}; bool isMaximized{}; Position position{}; @@ -137,6 +138,7 @@ namespace JsonUtils const static wchar_t* AppPackageFullNameID = L"package-full-name"; const static wchar_t* AppTitleID = L"title"; const static wchar_t* CommandLineArgsID = L"command-line-arguments"; + const static wchar_t* ElevatedID = L"is-elevated"; const static wchar_t* MinimizedID = L"minimized"; const static wchar_t* MaximizedID = L"maximized"; const static wchar_t* PositionID = L"position"; @@ -151,6 +153,7 @@ namespace JsonUtils json.SetNamedValue(NonLocalizable::AppTitleID, json::value(data.title)); json.SetNamedValue(NonLocalizable::AppPackageFullNameID, json::value(data.packageFullName)); json.SetNamedValue(NonLocalizable::CommandLineArgsID, json::value(data.commandLineArgs)); + json.SetNamedValue(NonLocalizable::ElevatedID, json::value(data.isElevated)); json.SetNamedValue(NonLocalizable::MinimizedID, json::value(data.isMinimized)); json.SetNamedValue(NonLocalizable::MaximizedID, json::value(data.isMaximized)); json.SetNamedValue(NonLocalizable::PositionID, PositionJSON::ToJson(data.position)); @@ -177,6 +180,12 @@ namespace JsonUtils } result.commandLineArgs = json.GetNamedString(NonLocalizable::CommandLineArgsID); + + if (json.HasKey(NonLocalizable::ElevatedID)) + { + result.isElevated = json.GetNamedBoolean(NonLocalizable::ElevatedID); + } + result.isMaximized = json.GetNamedBoolean(NonLocalizable::MaximizedID); result.isMinimized = json.GetNamedBoolean(NonLocalizable::MinimizedID); result.monitor = static_cast(json.GetNamedNumber(NonLocalizable::MonitorID));