mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-02-24 04:00:02 +01:00
projects module interface telemetry
This commit is contained in:
@@ -32,11 +32,13 @@
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="pch.h" />
|
||||
<ClInclude Include="trace.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="pch.cpp">
|
||||
<PrecompiledHeader Condition="'$(UsePrecompiledHeaders)' != 'false'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="trace.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\common\logger\logger.vcxproj">
|
||||
|
||||
@@ -14,10 +14,16 @@
|
||||
<ClInclude Include="pch.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="trace.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="pch.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="trace.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -6,5 +6,9 @@
|
||||
|
||||
#ifndef PCH_H
|
||||
#define PCH_H
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <winrt/base.h>
|
||||
#include <ProjectTelemetry.h>
|
||||
|
||||
#endif //PCH_H
|
||||
|
||||
51
src/modules/Projects/ProjectsLib/trace.cpp
Normal file
51
src/modules/Projects/ProjectsLib/trace.cpp
Normal file
@@ -0,0 +1,51 @@
|
||||
#include "pch.h"
|
||||
#include "trace.h"
|
||||
|
||||
#include <ProjectTelemetry.h>
|
||||
|
||||
// Telemetry strings should not be localized.
|
||||
#define LoggingProviderKey "Microsoft.PowerToys"
|
||||
|
||||
TRACELOGGING_DEFINE_PROVIDER(
|
||||
g_hProvider,
|
||||
LoggingProviderKey,
|
||||
// {38e8889b-9731-53f5-e901-e8a7c1753074}
|
||||
(0x38e8889b, 0x9731, 0x53f5, 0xe9, 0x01, 0xe8, 0xa7, 0xc1, 0x75, 0x30, 0x74),
|
||||
TraceLoggingOptionProjectTelemetry());
|
||||
|
||||
void Trace::RegisterProvider() noexcept
|
||||
{
|
||||
TraceLoggingRegister(g_hProvider);
|
||||
}
|
||||
|
||||
void Trace::UnregisterProvider() noexcept
|
||||
{
|
||||
TraceLoggingUnregister(g_hProvider);
|
||||
}
|
||||
|
||||
void Trace::Projects::Enable(bool enabled) noexcept
|
||||
{
|
||||
TraceLoggingWrite(
|
||||
g_hProvider,
|
||||
"Projects_EnableProjects",
|
||||
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
|
||||
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
|
||||
TraceLoggingBoolean(enabled, "Enabled"));
|
||||
}
|
||||
|
||||
void Trace::Projects::SettingsTelemetry(const PowertoyModuleIface::HotkeyEx& hotkey) noexcept
|
||||
{
|
||||
std::wstring hotKeyStr =
|
||||
std::wstring((hotkey.modifiersMask & MOD_WIN) == MOD_WIN ? L"Win + " : L"") +
|
||||
std::wstring((hotkey.modifiersMask & MOD_CONTROL) == MOD_CONTROL ? L"Ctrl + " : L"") +
|
||||
std::wstring((hotkey.modifiersMask & MOD_SHIFT) == MOD_SHIFT ? L"Shift + " : L"") +
|
||||
std::wstring((hotkey.modifiersMask & MOD_ALT) == MOD_ALT ? L"Alt + " : L"") +
|
||||
std::wstring(L"VK ") + std::to_wstring(hotkey.vkCode);
|
||||
|
||||
TraceLoggingWrite(
|
||||
g_hProvider,
|
||||
"Projects_Settings",
|
||||
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
|
||||
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
|
||||
TraceLoggingWideString(hotKeyStr.c_str(), "HotKey"));
|
||||
}
|
||||
17
src/modules/Projects/ProjectsLib/trace.h
Normal file
17
src/modules/Projects/ProjectsLib/trace.h
Normal file
@@ -0,0 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#include <modules/interface/powertoy_module_interface.h>
|
||||
|
||||
class Trace
|
||||
{
|
||||
public:
|
||||
static void RegisterProvider() noexcept;
|
||||
static void UnregisterProvider() noexcept;
|
||||
|
||||
class Projects
|
||||
{
|
||||
public:
|
||||
static void Enable(bool enabled) noexcept;
|
||||
static void SettingsTelemetry(const PowertoyModuleIface::HotkeyEx& hotkey) noexcept;
|
||||
};
|
||||
};
|
||||
@@ -51,12 +51,12 @@
|
||||
<ProjectReference Include="..\..\..\common\Display\Display.vcxproj">
|
||||
<Project>{caba8dfb-823b-4bf2-93ac-3f31984150d9}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\common\logger\logger.vcxproj">
|
||||
<Project>{d9b8fc84-322a-4f9f-bbb9-20915c47ddfd}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\common\SettingsAPI\SettingsAPI.vcxproj">
|
||||
<Project>{6955446d-23f7-4023-9bb3-8657f904af99}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ProjectsLib\ProjectsLib.vcxproj">
|
||||
<Project>{b31fcc55-b5a4-4ea7-b414-2dceae6af332}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
#include <common/utils/resources.h>
|
||||
#include <common/utils/winapi_error.h>
|
||||
|
||||
#include <ProjectsLib/trace.h>
|
||||
|
||||
#include <shellapi.h>
|
||||
|
||||
#include "resource.h"
|
||||
@@ -33,7 +35,7 @@ BOOL APIENTRY DllMain(HMODULE /*hModule*/, DWORD ul_reason_for_call, LPVOID /*lp
|
||||
switch (ul_reason_for_call)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
// TODO: Trace::RegisterProvider();
|
||||
Trace::RegisterProvider();
|
||||
break;
|
||||
|
||||
case DLL_THREAD_ATTACH:
|
||||
@@ -41,7 +43,7 @@ BOOL APIENTRY DllMain(HMODULE /*hModule*/, DWORD ul_reason_for_call, LPVOID /*lp
|
||||
break;
|
||||
|
||||
case DLL_PROCESS_DETACH:
|
||||
// TODO: Trace::UnregisterProvider();
|
||||
Trace::UnregisterProvider();
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
@@ -104,8 +106,6 @@ public:
|
||||
parse_hotkeys(values);
|
||||
|
||||
auto settingsObject = values.get_raw_json();
|
||||
// TODO: telemetry
|
||||
|
||||
values.save_to_settings_file();
|
||||
}
|
||||
catch (std::exception&)
|
||||
@@ -159,7 +159,7 @@ public:
|
||||
virtual void send_settings_telemetry() override
|
||||
{
|
||||
Logger::info("Send settings telemetry");
|
||||
// TODO
|
||||
Trace::Projects::SettingsTelemetry(m_hotkey);
|
||||
}
|
||||
|
||||
ProjectsModuleInterface()
|
||||
@@ -176,8 +176,7 @@ private:
|
||||
Logger::info("Enable");
|
||||
m_enabled = true;
|
||||
|
||||
// Log telemetry
|
||||
// TODO: Trace::Projects::EnableProjects(true);
|
||||
Trace::Projects::Enable(true);
|
||||
|
||||
unsigned long powertoys_pid = GetCurrentProcessId();
|
||||
std::wstring executable_args = L"";
|
||||
@@ -208,10 +207,9 @@ private:
|
||||
{
|
||||
Logger::info("Disable");
|
||||
m_enabled = false;
|
||||
// Log telemetry
|
||||
if (traceEvent)
|
||||
{
|
||||
// TODO: Trace::Projects::EnableProjects(false);
|
||||
Trace::Projects::Enable(false);
|
||||
}
|
||||
|
||||
if (m_toggleEditorEvent)
|
||||
|
||||
Reference in New Issue
Block a user