Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[New utility]Sysinternals ZoomIt #35880

Open
wants to merge 70 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
c3a0264
ZoomIt initial code dump
jaimecbernardo Sep 3, 2024
4859c72
Change vcxproj to normalize dependency versions
jaimecbernardo Sep 3, 2024
a46f97c
Fix code quality to build
jaimecbernardo Sep 3, 2024
6ead924
Add to PowerToys solution
jaimecbernardo Sep 4, 2024
36dbf66
Clean out C-style casts
jaimecbernardo Sep 4, 2024
d0a148f
Fix some more analyzer errors
jaimecbernardo Sep 4, 2024
508daef
Constexpr a function
jaimecbernardo Sep 4, 2024
877d632
Disable some warnings locally that it seemed better not to touch
jaimecbernardo Sep 4, 2024
65d34ff
Add ZoomIt module interface
jaimecbernardo Sep 9, 2024
4a2fcf9
Add GPO
jaimecbernardo Sep 9, 2024
d56ebb0
Add Settings page with Enable button
jaimecbernardo Sep 9, 2024
0e44be5
Output as PowerToys.ZoomIt.exe
jaimecbernardo Sep 9, 2024
e7aa6ef
Extract ZoomIt Settings definition to its own header
jaimecbernardo Sep 10, 2024
91c77dc
Make ZoomItModuleInterface build with ZoomItSettings too
jaimecbernardo Sep 10, 2024
73161e7
WinRT C++ interop for ZoomItSettings
jaimecbernardo Sep 11, 2024
b34fe5f
From Registry To PowerToys Json
jaimecbernardo Sep 11, 2024
7b6f29c
Properly fix const_cast analyzer error
jaimecbernardo Sep 13, 2024
533c38f
Initial Settings page loading from registry
jaimecbernardo Sep 17, 2024
df0e155
Zoom mode settings
jaimecbernardo Sep 17, 2024
b540b4b
Save settings
jaimecbernardo Sep 17, 2024
87297ec
Add file picker and DemoType file support
jaimecbernardo Sep 18, 2024
00ca989
Remaining DemoType settings
jaimecbernardo Sep 18, 2024
770bdd2
Have ZoomIt properly reloading Settings and exiting
jaimecbernardo Sep 18, 2024
8774958
Remove context menu entries for Options and Exit
jaimecbernardo Sep 18, 2024
84b37e7
ZoomIt simple Break Options
jaimecbernardo Oct 7, 2024
b3d2685
Break advanced options
jaimecbernardo Oct 8, 2024
a942419
Simple Record settings
jaimecbernardo Oct 8, 2024
2fd9be8
Record Microphone setting
jaimecbernardo Oct 8, 2024
9a0054e
Fix break background file picker title
jaimecbernardo Oct 8, 2024
10fd412
Font setting
jaimecbernardo Oct 10, 2024
293bb19
Merge branch 'main' into dev/jaime/integrate-zoomIt
jaimecbernardo Nov 8, 2024
34ea831
Fix build issues after merge
jaimecbernardo Nov 8, 2024
5a3151a
Add ZoomIt conflict warning to Settings
jaimecbernardo Nov 11, 2024
6e7009e
Exclude Eula from spell checking
jaimecbernardo Nov 11, 2024
fd84ff4
Fix spellcheck errors
jaimecbernardo Nov 11, 2024
7b0825d
Fix spell check for accelerated menu items
jaimecbernardo Nov 11, 2024
5d8a443
Remove cursor files from spellcheck. They're binary
jaimecbernardo Nov 11, 2024
86d6fa3
Fix forbidden patterns
jaimecbernardo Nov 11, 2024
4124a5d
Fix XAML style
jaimecbernardo Nov 12, 2024
ef514f7
Fix C# analyzers
jaimecbernardo Nov 12, 2024
88206da
Fix signing
jaimecbernardo Nov 12, 2024
aab9454
Also sign module interface dll
jaimecbernardo Nov 12, 2024
7396935
Use actual ZoomIt icon
jaimecbernardo Nov 12, 2024
4da1589
Add OOBE page for ZoomIt
jaimecbernardo Nov 12, 2024
1440e3a
ZoomIt image for Settings
jaimecbernardo Nov 12, 2024
5c5cb57
Flyout and Dashboard entries
jaimecbernardo Nov 12, 2024
2ee6a79
Fix type speed slider labels
jaimecbernardo Nov 12, 2024
df110e7
Correctly load default Font
jaimecbernardo Nov 15, 2024
e50c6c4
Correctly register shortcuts on ZoomIt startup first run
jaimecbernardo Nov 15, 2024
ec20051
Merge branch 'main' into dev/jaime/integrate-zoomIt
jaimecbernardo Nov 15, 2024
4426f5f
Fix modifier keys not changing until restart
jaimecbernardo Nov 15, 2024
8a48a9f
Show MsgBox on taken shortcut
jaimecbernardo Nov 17, 2024
e92e183
Start PowerToys Settings
jaimecbernardo Nov 17, 2024
fa5a697
Normalize ZoomIt file properties with rest of PowerToys
jaimecbernardo Nov 18, 2024
17266d1
Add attribution
jaimecbernardo Nov 18, 2024
55657df
Add ZoomIt team to Community.md
jaimecbernardo Nov 18, 2024
8b4641b
More copyright adjustments
jaimecbernardo Nov 18, 2024
28aca48
Fix spellcheck
jaimecbernardo Nov 18, 2024
0ea9df5
Fix MsgBox simultaneous instance to the front
jaimecbernardo Nov 18, 2024
f98ec0b
Add mention of capturevideosample code use
jaimecbernardo Nov 18, 2024
bfc26a3
Add ZoomIt to process lists
jaimecbernardo Nov 19, 2024
48a883b
Add telemetry
jaimecbernardo Nov 19, 2024
df19479
Add logging
jaimecbernardo Nov 19, 2024
76066f8
React to gpo
jaimecbernardo Nov 19, 2024
48a77ca
Normalize code to space identation
jaimecbernardo Nov 19, 2024
ceafbe8
Fix installer build
jaimecbernardo Nov 19, 2024
35eab54
Localize percent setting
jaimecbernardo Nov 20, 2024
273fe42
Fix XAML styling
jaimecbernardo Nov 20, 2024
d0cb97c
Merge branch 'main' into dev/jaime/integrate-zoomIt
jaimecbernardo Nov 20, 2024
9a2b98c
Update src/settings-ui/Settings.UI/Strings/en-us/Resources.resw
jaimecbernardo Nov 21, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/actions/spell-check/excludes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -123,5 +123,6 @@
^src/modules/MouseWithoutBorders/App/Form/.*\.resx$
^src/modules/MouseWithoutBorders/App/Helper/.*\.resx$
^src/modules/previewpane/UnitTests-MarkdownPreviewHandler/HelperFiles/MarkdownWithHTMLImageTag.txt$
^src/common/sysinternals/Eula/
^tools/Verification scripts/Check preview handler registration\.ps1$
ignore$
48 changes: 48 additions & 0 deletions PowerToys.sln
Original file line number Diff line number Diff line change
Expand Up @@ -630,6 +630,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EtwTrace", "src\common\Tele
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MouseWithoutBorders.UnitTests", "src\modules\MouseWithoutBorders\MouseWithoutBorders.UnitTests\MouseWithoutBorders.UnitTests.csproj", "{66614C26-314C-4B91-9071-76133422CFEF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ZoomIt", "ZoomIt", "{DD6E12FE-5509-4ABC-ACC2-3D6DC98A238C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZoomIt", "src\modules\ZoomIt\ZoomIt\ZoomIt.vcxproj", "{0A84F764-3A88-44CD-AA96-41BDBD48627B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZoomItModuleInterface", "src\modules\ZoomIt\ZoomItModuleInterface\ZoomItModuleInterface.vcxproj", "{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZoomItSettingsInterop", "src\modules\ZoomIt\ZoomItSettingsInterop\ZoomItSettingsInterop.vcxproj", "{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
Expand Down Expand Up @@ -2778,6 +2786,42 @@ Global
{66614C26-314C-4B91-9071-76133422CFEF}.Release|x64.Build.0 = Release|x64
{66614C26-314C-4B91-9071-76133422CFEF}.Release|x86.ActiveCfg = Release|x64
{66614C26-314C-4B91-9071-76133422CFEF}.Release|x86.Build.0 = Release|x64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Debug|ARM64.ActiveCfg = Debug|ARM64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Debug|ARM64.Build.0 = Debug|ARM64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Debug|x64.ActiveCfg = Debug|x64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Debug|x64.Build.0 = Debug|x64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Debug|x86.ActiveCfg = Debug|x64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Debug|x86.Build.0 = Debug|x64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Release|ARM64.ActiveCfg = Release|ARM64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Release|ARM64.Build.0 = Release|ARM64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Release|x64.ActiveCfg = Release|x64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Release|x64.Build.0 = Release|x64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Release|x86.ActiveCfg = Release|x64
{0A84F764-3A88-44CD-AA96-41BDBD48627B}.Release|x86.Build.0 = Release|x64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Debug|ARM64.ActiveCfg = Debug|ARM64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Debug|ARM64.Build.0 = Debug|ARM64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Debug|x64.ActiveCfg = Debug|x64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Debug|x64.Build.0 = Debug|x64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Debug|x86.ActiveCfg = Debug|x64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Debug|x86.Build.0 = Debug|x64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Release|ARM64.ActiveCfg = Release|ARM64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Release|ARM64.Build.0 = Release|ARM64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Release|x64.ActiveCfg = Release|x64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Release|x64.Build.0 = Release|x64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Release|x86.ActiveCfg = Release|x64
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C}.Release|x86.Build.0 = Release|x64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Debug|ARM64.Build.0 = Debug|ARM64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Debug|x64.ActiveCfg = Debug|x64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Debug|x64.Build.0 = Debug|x64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Debug|x86.ActiveCfg = Debug|x64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Debug|x86.Build.0 = Debug|x64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Release|ARM64.ActiveCfg = Release|ARM64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Release|ARM64.Build.0 = Release|ARM64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Release|x64.ActiveCfg = Release|x64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Release|x64.Build.0 = Release|x64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Release|x86.ActiveCfg = Release|x64
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}.Release|x86.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -3009,6 +3053,10 @@ Global
{37D07516-4185-43A4-924F-3C7A5D95ECF6} = {A2221D7E-55E7-4BEA-90D1-4F162D670BBF}
{8F021B46-362B-485C-BFBA-CCF83E820CBD} = {8F62026A-294B-41C6-8839-87463613F216}
{66614C26-314C-4B91-9071-76133422CFEF} = {B6C42F16-73EB-477E-8B0D-4E6CF6C20AAC}
{DD6E12FE-5509-4ABC-ACC2-3D6DC98A238C} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{0A84F764-3A88-44CD-AA96-41BDBD48627B} = {DD6E12FE-5509-4ABC-ACC2-3D6DC98A238C}
{E4585179-2AC1-4D5F-A3FF-CFC5392F694C} = {DD6E12FE-5509-4ABC-ACC2-3D6DC98A238C}
{CA7D8106-30B9-4AEC-9D05-B69B31B8C461} = {DD6E12FE-5509-4ABC-ACC2-3D6DC98A238C}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C3A2F9D1-7930-4EF4-A6FC-7EE0A99821D0}
Expand Down
4 changes: 4 additions & 0 deletions src/common/GPOWrapper/GPOWrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,10 @@ namespace winrt::PowerToys::GPOWrapper::implementation
{
return static_cast<GpoRuleConfigured>(powertoys_gpo::getConfiguredVideoConferenceMuteEnabledValue());
}
GpoRuleConfigured GPOWrapper::GetConfiguredZoomItEnabledValue()
{
return static_cast<GpoRuleConfigured>(powertoys_gpo::getConfiguredZoomItEnabledValue());
}
GpoRuleConfigured GPOWrapper::GetConfiguredMouseWithoutBordersEnabledValue()
{
return static_cast<GpoRuleConfigured>(powertoys_gpo::getConfiguredMouseWithoutBordersEnabledValue());
Expand Down
1 change: 1 addition & 0 deletions src/common/GPOWrapper/GPOWrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ namespace winrt::PowerToys::GPOWrapper::implementation
static GpoRuleConfigured GetConfiguredTextExtractorEnabledValue();
static GpoRuleConfigured GetConfiguredAdvancedPasteEnabledValue();
static GpoRuleConfigured GetConfiguredVideoConferenceMuteEnabledValue();
static GpoRuleConfigured GetConfiguredZoomItEnabledValue();
static GpoRuleConfigured GetConfiguredPeekEnabledValue();
static GpoRuleConfigured GetDisableNewUpdateToastValue();
static GpoRuleConfigured GetDisableAutomaticUpdateDownloadValue();
Expand Down
1 change: 1 addition & 0 deletions src/common/GPOWrapper/GPOWrapper.idl
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ namespace PowerToys
static GpoRuleConfigured GetConfiguredTextExtractorEnabledValue();
static GpoRuleConfigured GetConfiguredAdvancedPasteEnabledValue();
static GpoRuleConfigured GetConfiguredVideoConferenceMuteEnabledValue();
static GpoRuleConfigured GetConfiguredZoomItEnabledValue();
static GpoRuleConfigured GetConfiguredPeekEnabledValue();
static GpoRuleConfigured GetDisableNewUpdateToastValue();
static GpoRuleConfigured GetDisableAutomaticUpdateDownloadValue();
Expand Down
9 changes: 9 additions & 0 deletions src/common/SettingsAPI/settings_objects.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,15 @@ namespace PowerToysSettings
return static_cast<int>(m_json.GetNamedObject(L"properties").GetNamedObject(property_name).GetNamedNumber(L"value"));
}

std::optional<unsigned int> PowerToyValues::get_uint_value(std::wstring_view property_name) const
{
if (!has_property(m_json, property_name, json::JsonValueType::Number))
{
return std::nullopt;
}
return static_cast<unsigned int>(m_json.GetNamedObject(L"properties").GetNamedObject(property_name).GetNamedNumber(L"value"));
}

std::optional<std::wstring> PowerToyValues::get_string_value(std::wstring_view property_name) const
{
if (!has_property(m_json, property_name, json::JsonValueType::String))
Expand Down
1 change: 1 addition & 0 deletions src/common/SettingsAPI/settings_objects.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ namespace PowerToysSettings

std::optional<bool> get_bool_value(std::wstring_view property_name) const;
std::optional<int> get_int_value(std::wstring_view property_name) const;
std::optional<unsigned int> get_uint_value(std::wstring_view property_name) const;
std::optional<std::wstring> get_string_value(std::wstring_view property_name) const;
std::optional<json::JsonObject> get_json(std::wstring_view property_name) const;
json::JsonObject get_raw_json();
Expand Down
4 changes: 4 additions & 0 deletions src/common/interop/shared_constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@
const wchar_t SHOW_ENVIRONMENT_VARIABLES_EVENT[] = L"Local\\PowerToysEnvironmentVariables-ShowEnvironmentVariablesEvent-1021f616-e951-4d64-b231-a8f972159978";
const wchar_t SHOW_ENVIRONMENT_VARIABLES_ADMIN_EVENT[] = L"Local\\PowerToysEnvironmentVariables-EnvironmentVariablesAdminEvent-8c95d2ad-047c-49a2-9e8b-b4656326cfb2";

// Path to the events used by ZoomIt
const wchar_t ZOOMIT_REFRESH_SETTINGS_EVENT[] = L"Local\\PowerToysZoomIt-RefreshSettingsEvent-f053a563-d519-4b0d-8152-a54489c13324";

Check failure

Code scanning / check-spelling

Unrecognized Spelling Error

ZOOMIT is not a recognized word. (unrecognized-spelling)
const wchar_t ZOOMIT_EXIT_EVENT[] = L"Local\\PowerToysZoomIt-ExitEvent-36641ce6-df02-4eac-abea-a3fbf9138220";

Check failure

Code scanning / check-spelling

Unrecognized Spelling Error

ZOOMIT is not a recognized word. (unrecognized-spelling)

// Max DWORD for key code to disable keys.
const DWORD VK_DISABLED = 0x100;
}
1 change: 1 addition & 0 deletions src/common/logger/logger_settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ struct LogSettings
inline const static std::wstring workspacesWindowArrangerLogPath = L"workspaces-window-arranger-log.txt";
inline const static std::string workspacesSnapshotToolLoggerName = "workspaces-snapshot-tool";
inline const static std::wstring workspacesSnapshotToolLogPath = L"workspaces-snapshot-tool-log.txt";
inline const static std::string zoomItLoggerName = "zoom-it";
inline const static int retention = 30;
std::wstring logLevel;
LogSettings();
Expand Down
75 changes: 75 additions & 0 deletions src/common/sysinternals/Eula/Eula.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
Sysinternals Software License Terms
These license terms are an agreement between Sysinternals (a wholly owned subsidiary of Microsoft Corporation) and you. Please read them. They apply to the software you are downloading from technet.microsoft.com/sysinternals, which includes the media on which you received it, if any. The terms also apply to any Sysinternals
* updates,
* supplements,
* Internet-based services,
* and support services
for this software, unless other terms accompany those items. If so, those terms apply.
BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
If you comply with these license terms, you have the rights below.

Installation and User Rights

You may install and use any number of copies of the software on your devices.

Scope of License

The software is licensed, not sold. This agreement only gives you some rights to use the software. Sysinternals reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
* work around any technical limitations in the software;
* reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
* make more copies of the software than specified in this agreement or allowed by applicable law, despite this limitation;
* publish the software for others to copy;
* rent, lease or lend the software;
* transfer the software or this agreement to any third party; or
* use the software for commercial software hosting services.

Sensitive Information

Please be aware that, similar to other debug tools that capture “process state” information, files saved by Sysinternals tools may include personally identifiable or other sensitive information (such as usernames, passwords, paths to files accessed, and paths to registry accessed). By using this software, you acknowledge that you are aware of this and take sole responsibility for any personally identifiable or other sensitive information provided to Microsoft or any other party through your use of the software.

Documentation

Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.

Export Restrictions

The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting .

Support Services

Because this software is "as is," we may not provide support services for it.

Entire Agreement

This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.

Applicable Law

United States . If you acquired the software in the United States , Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.
Outside the United States . If you acquired the software in any other country, the laws of that country apply.

Legal Effect

This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.

Disclaimer of Warranty

The software is licensed "as-is." You bear the risk of using it. Sysinternals gives no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this agreement cannot change. To the extent permitted under your local laws, sysinternals excludes the implied warranties of merchantability, fitness for a particular purpose and non-infringement.

Limitation on and Exclusion of Remedies and Damages

You can recover from sysinternals and its suppliers only direct damages up to U.S. $5.00. You cannot recover any other damages, including consequential, lost profits, special, indirect or incidental damages.
This limitation applies to
* anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and
* claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.

It also applies even if Sysinternals knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
Please note: As this software is distributed in Quebec , Canada , some of the clauses in this agreement are provided below in French.
Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français.
EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Sysinternals n'accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection dues consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d'adéquation à un usage particulier et d'absence de contrefaçon sont exclues.
LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Sysinternals et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
Cette limitation concerne :
tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et
les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d'une autre faute dans la limite autorisée par la loi en vigueur.
Elle s'applique également, même si Sysinternals connaissait ou devrait connaître l'éventualité d'un tel dommage. Si votre pays n'autorise pas l'exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l'exclusion ci-dessus ne s'appliquera pas à votre égard.
EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d'autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas.
Loading
Loading