mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-01-31 00:17:23 +01:00
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] Closes: #xxx <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed <img width="1189" height="405" alt="image" src="https://github.com/user-attachments/assets/2835ae5f-99b9-4156-a75f-b63a485ddd61" />
84 lines
3.3 KiB
C++
84 lines
3.3 KiB
C++
#include "pch.h"
|
|
#include "trace.h"
|
|
|
|
#include "general_settings.h"
|
|
|
|
#include <common/Telemetry/TraceBase.h>
|
|
|
|
TRACELOGGING_DEFINE_PROVIDER(
|
|
g_hProvider,
|
|
"Microsoft.PowerToys",
|
|
// {38e8889b-9731-53f5-e901-e8a7c1753074}
|
|
(0x38e8889b, 0x9731, 0x53f5, 0xe9, 0x01, 0xe8, 0xa7, 0xc1, 0x75, 0x30, 0x74),
|
|
TraceLoggingOptionProjectTelemetry());
|
|
|
|
void Trace::EventLaunch(const std::wstring& versionNumber, bool isProcessElevated)
|
|
{
|
|
TraceLoggingWriteWrapper(
|
|
g_hProvider,
|
|
"Runner_Launch",
|
|
TraceLoggingWideString(versionNumber.c_str(), "Version"),
|
|
TraceLoggingBoolean(isProcessElevated, "Elevated"),
|
|
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
|
|
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
|
|
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
|
|
}
|
|
|
|
void Trace::SettingsChanged(const GeneralSettings& settings)
|
|
{
|
|
std::wstring enabledModules;
|
|
for (const auto& [name, isEnabled] : settings.isModulesEnabledMap)
|
|
{
|
|
if (isEnabled)
|
|
{
|
|
if (!enabledModules.empty())
|
|
{
|
|
enabledModules += L", ";
|
|
}
|
|
|
|
enabledModules += name;
|
|
}
|
|
}
|
|
|
|
TraceLoggingWriteWrapper(
|
|
g_hProvider,
|
|
"GeneralSettingsChanged",
|
|
TraceLoggingBoolean(settings.isStartupEnabled, "RunAtStartup"),
|
|
TraceLoggingBoolean(settings.enableWarningsElevatedApps, "EnableWarningsElevatedApps"),
|
|
TraceLoggingWideString(settings.startupDisabledReason.c_str(), "StartupDisabledReason"),
|
|
TraceLoggingWideString(enabledModules.c_str(), "ModulesEnabled"),
|
|
TraceLoggingBoolean(settings.isRunElevated, "AlwaysRunElevated"),
|
|
TraceLoggingBoolean(settings.downloadUpdatesAutomatically, "DownloadUpdatesAutomatically"),
|
|
TraceLoggingBoolean(settings.enableExperimentation, "EnableExperimentation"),
|
|
TraceLoggingWideString(settings.theme.c_str(), "Theme"),
|
|
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
|
|
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
|
|
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
|
|
}
|
|
|
|
void Trace::UpdateCheckCompleted(bool success, bool updateAvailable, const std::wstring& fromVersion, const std::wstring& toVersion)
|
|
{
|
|
TraceLoggingWriteWrapper(
|
|
g_hProvider,
|
|
"UpdateCheck_Completed",
|
|
TraceLoggingBoolean(success, "Success"),
|
|
TraceLoggingBoolean(updateAvailable, "UpdateAvailable"),
|
|
TraceLoggingWideString(fromVersion.c_str(), "FromVersion"),
|
|
TraceLoggingWideString(toVersion.c_str(), "ToVersion"),
|
|
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
|
|
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
|
|
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
|
|
}
|
|
|
|
void Trace::UpdateDownloadCompleted(bool success, const std::wstring& version)
|
|
{
|
|
TraceLoggingWriteWrapper(
|
|
g_hProvider,
|
|
"UpdateDownload_Completed",
|
|
TraceLoggingBoolean(success, "Success"),
|
|
TraceLoggingWideString(version.c_str(), "Version"),
|
|
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
|
|
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
|
|
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
|
|
}
|