Unoptimised but working verison of AsusFanControl with a fan curve.
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
||||||
|
<assemblyIdentity name="AsusFanControlGUI.application" version="1.0.0.0" publicKeyToken="e7646ab91e1988e9" language="neutral" processorArchitecture="amd64" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||||
|
<description asmv2:publisher="AsusFanControlGUI" asmv2:product="AsusFanControlGUI" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||||
|
<deployment install="true" mapFileExtensions="true" />
|
||||||
|
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
|
||||||
|
<framework targetVersion="4.7.2" profile="Full" supportedRuntime="4.0.30319" />
|
||||||
|
</compatibleFrameworks>
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly dependencyType="install" codebase="Application Files\AsusFanControlGUI_1_0_0_0\AsusFanControlGUI.exe.manifest" size="8333">
|
||||||
|
<assemblyIdentity name="AsusFanControlGUI.exe" version="1.0.0.0" publicKeyToken="e7646ab91e1988e9" language="neutral" processorArchitecture="amd64" type="win32" />
|
||||||
|
<hash>
|
||||||
|
<dsig:Transforms>
|
||||||
|
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||||
|
</dsig:Transforms>
|
||||||
|
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||||
|
<dsig:DigestValue>VkRZQnzKQEa58EWCSMCnhF2twvcxNIaA5jlw/pXOw4M=</dsig:DigestValue>
|
||||||
|
</hash>
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
<publisherIdentity name="CN=LAPTOP-IU9A729Q\bow33" issuerKeyHash="90950ef02f6e8d1570e9ff66e946b3506c84f0f1" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>IlEmX+XiACqQR57sLOnsM6L/3C5obRyg3qA4sDiB7YY=</DigestValue></Reference></SignedInfo><SignatureValue>o8YpfToFaricuRaoJMNZw1bu1yrysCHRjbgMf7CA5/0VQMXpwkIJJYvbgNry32OFDh+gUZRgo0qOa9TAsjuMqGXeNQ6Vt3zsi5IMRCDVRSxHyPQkO/6C5qCVwwZiWOCMN9Fl+8pI7PwddulgffSIu8kUgIHwBlPOkRYkQwFHuSI=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>5MKxtgy2OnwQkhPWJIUe+WAonYu1QrYEI1GHlcONac2hHNnHXm04iEy76UikGsXLc13KX90AH5VmNl0Jt/hRb9pqb6mC9Hd+jzov5G8TDC77HHtJO81G91vT1CfMD6JZekbTCH5tE4vGk8bXiaMB+XS0cMVLA12tu8x3KatNQpk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="86ed8138b038a0dea01c6d682edcffa233ece92cec9e47902a00e2e55f265122" Description="" Url=""><as:assemblyIdentity name="AsusFanControlGUI.application" version="1.0.0.0" publicKeyToken="e7646ab91e1988e9" language="neutral" processorArchitecture="amd64" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=LAPTOP-IU9A729Q\bow33</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>pse2i08O+Tm2DU9lNWKb8jxz8D3uiNRp0At8cJy+9bY=</DigestValue></Reference></SignedInfo><SignatureValue>oQSz0KTHddVr48+OepgcQXcfLZ496ypQdRFAyWvx+ms1tUi57UgOUggILmnUq0ltplFYnaUt6j4g78CIKPTiWCQy7T/WExnmHz84ywoStLHbk6uvLtYQzHyiDnf/E8CgdMGko+uwyNhNOSSjjY67vSvTnNUBNgRrr56JR7fDl4w=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>5MKxtgy2OnwQkhPWJIUe+WAonYu1QrYEI1GHlcONac2hHNnHXm04iEy76UikGsXLc13KX90AH5VmNl0Jt/hRb9pqb6mC9Hd+jzov5G8TDC77HHtJO81G91vT1CfMD6JZekbTCH5tE4vGk8bXiaMB+XS0cMVLA12tu8x3KatNQpk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB7TCCAVagAwIBAgIQWy5fl7XivKNF8WyXgF7H9DANBgkqhkiG9w0BAQsFADA1MTMwMQYDVQQDHioATABBAFAAVABPAFAALQBJAFUAOQBBADcAMgA5AFEAXABiAG8AdwAzADMwHhcNMjQwNTE4MDUzMTIxWhcNMjUwNTE4MTEzMTIxWjA1MTMwMQYDVQQDHioATABBAFAAVABPAFAALQBJAFUAOQBBADcAMgA5AFEAXABiAG8AdwAzADMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOTCsbYMtjp8EJIT1iSFHvlgKJ2LtUK2BCNRh5XDjWnNoRzZx15tOIhMu+lIpBrFy3Ndyl/dAB+VZjZdCbf4UW/aam+pgvR3fo86L+RvEwwu+xx7STvNRvdb09QnzA+iWXpG0wh+bROLxpPG14mjAfl0tHDFSwNdrbvMdymrTUKZAgMBAAEwDQYJKoZIhvcNAQELBQADgYEAY6EwQVMqSprcsUwrU+DB5jz0aYLWX6iD0Cuq2r+SPbAXaEkPzUOypV155rwOGMeh0jZKF4Jc5EgiYh1njyxQHee4T16pi0uoQ7fQHQQ+MnfoO/wHrG2/yoi6fHbpgMQKz3dQ1UfZkoV2QZgHu9xJAMdAg9QmIJYDsjvZWChIYPw=</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||||
|
<section name="AsusFanControlGUI.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
<startup>
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||||
|
</startup>
|
||||||
|
<userSettings>
|
||||||
|
<AsusFanControlGUI.Properties.Settings>
|
||||||
|
<setting name="fanSpeed" serializeAs="String">
|
||||||
|
<value>90</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="turnOffControlOnExit" serializeAs="String">
|
||||||
|
<value>True</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="forbidUnsafeSettings" serializeAs="String">
|
||||||
|
<value>True</value>
|
||||||
|
</setting>
|
||||||
|
</AsusFanControlGUI.Properties.Settings>
|
||||||
|
</userSettings>
|
||||||
|
</configuration>
|
||||||
Binary file not shown.
@@ -0,0 +1,87 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
||||||
|
<asmv1:assemblyIdentity name="AsusFanControlGUI.exe" version="1.0.0.0" publicKeyToken="e7646ab91e1988e9" language="neutral" processorArchitecture="amd64" type="win32" />
|
||||||
|
<description asmv2:iconFile="propeller.ico" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||||
|
<application />
|
||||||
|
<entryPoint>
|
||||||
|
<assemblyIdentity name="AsusFanControlGUI" version="1.0.0.0" language="neutral" processorArchitecture="amd64" />
|
||||||
|
<commandLine file="AsusFanControlGUI.exe" parameters="" />
|
||||||
|
</entryPoint>
|
||||||
|
<trustInfo>
|
||||||
|
<security>
|
||||||
|
<applicationRequestMinimum>
|
||||||
|
<PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
|
||||||
|
<defaultAssemblyRequest permissionSetReference="Custom" />
|
||||||
|
</applicationRequestMinimum>
|
||||||
|
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<!--
|
||||||
|
UAC Manifest Options
|
||||||
|
If you want to change the Windows User Account Control level replace the
|
||||||
|
requestedExecutionLevel node with one of the following.
|
||||||
|
|
||||||
|
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||||
|
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||||
|
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||||
|
|
||||||
|
If you want to utilize File and Registry Virtualization for backward
|
||||||
|
compatibility then delete the requestedExecutionLevel node.
|
||||||
|
-->
|
||||||
|
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||||
|
</requestedPrivileges>
|
||||||
|
</security>
|
||||||
|
</trustInfo>
|
||||||
|
<dependency>
|
||||||
|
<dependentOS>
|
||||||
|
<osVersionInfo>
|
||||||
|
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
|
||||||
|
</osVersionInfo>
|
||||||
|
</dependentOS>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
||||||
|
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="AsusFanControl.exe" size="7680">
|
||||||
|
<assemblyIdentity name="AsusFanControl" version="1.0.0.0" language="neutral" processorArchitecture="amd64" />
|
||||||
|
<hash>
|
||||||
|
<dsig:Transforms>
|
||||||
|
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||||
|
</dsig:Transforms>
|
||||||
|
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||||
|
<dsig:DigestValue>FqD0p9nxsDK7WrtWEpMKmKxGkVZOX7mhBSS6lLiRHv4=</dsig:DigestValue>
|
||||||
|
</hash>
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="AsusFanControlGUI.exe" size="33760">
|
||||||
|
<assemblyIdentity name="AsusFanControlGUI" version="1.0.0.0" language="neutral" processorArchitecture="amd64" />
|
||||||
|
<hash>
|
||||||
|
<dsig:Transforms>
|
||||||
|
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||||
|
</dsig:Transforms>
|
||||||
|
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||||
|
<dsig:DigestValue>shphuvPjl0LqLcE6eGOcOhm27GlVvrWTzu7aZv0u2No=</dsig:DigestValue>
|
||||||
|
</hash>
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
<file name="AsusFanControlGUI.exe.config" size="1211">
|
||||||
|
<hash>
|
||||||
|
<dsig:Transforms>
|
||||||
|
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||||
|
</dsig:Transforms>
|
||||||
|
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||||
|
<dsig:DigestValue>xzkEIINUne4CANLFpsrdbpDMwHsfvt56VutYVsDnnFA=</dsig:DigestValue>
|
||||||
|
</hash>
|
||||||
|
</file>
|
||||||
|
<file name="propeller.ico" size="4286">
|
||||||
|
<hash>
|
||||||
|
<dsig:Transforms>
|
||||||
|
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||||
|
</dsig:Transforms>
|
||||||
|
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||||
|
<dsig:DigestValue>AGoE/lNX3bWI7MYm49XrYQ1clZaPz8GSZmIatT5AySI=</dsig:DigestValue>
|
||||||
|
</hash>
|
||||||
|
</file>
|
||||||
|
<publisherIdentity name="CN=LAPTOP-IU9A729Q\bow33" issuerKeyHash="90950ef02f6e8d1570e9ff66e946b3506c84f0f1" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>58vzrrWfF/f/ZzVtfc8J+Ik/tBmhZ/LslB3BaqZzp5o=</DigestValue></Reference></SignedInfo><SignatureValue>gBGqEmUWJ8hV8Se0gquUg48FAlug3VPGbQdos/GbbV8BfxzSUl2W9s28ZgDdZ3e3WHnRkNXvWK9JgU+wdVFqOgdgPJiY4cf3gMFYDCzLef6yHXlR4mTCEY6d+R8A8jlVYjkTkBRsAmJ3HMewQStpInf7Ica0HeEMJAjkHZE+S6c=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>5MKxtgy2OnwQkhPWJIUe+WAonYu1QrYEI1GHlcONac2hHNnHXm04iEy76UikGsXLc13KX90AH5VmNl0Jt/hRb9pqb6mC9Hd+jzov5G8TDC77HHtJO81G91vT1CfMD6JZekbTCH5tE4vGk8bXiaMB+XS0cMVLA12tu8x3KatNQpk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="9aa773a66ac11d94ecf267a119b43f89f809cf7d6d3567fff7179fb5aef3cbe7" Description="" Url=""><as:assemblyIdentity name="AsusFanControlGUI.exe" version="1.0.0.0" publicKeyToken="e7646ab91e1988e9" language="neutral" processorArchitecture="amd64" type="win32" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=LAPTOP-IU9A729Q\bow33</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>SQjkLc0bSvtTDP63aP0aWLpD3Mi9Mv4JyxTtM8rSOo4=</DigestValue></Reference></SignedInfo><SignatureValue>u1eQvSEGiTnIFmdhQqXG9V+AKxUTrpupAIs5WCywE29Bc5VyH7NAWa2G1UHsRROSqhwj/ObXfk5NIWEU6QV7UoOtmu70o2ZRi/HcGmMM6fxWBGbeB31hk4SVC74pkgj7ty1W0xN+IeLS1sGnu2dS4q0VGfuAON5fcDCgG0yq8W8=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>5MKxtgy2OnwQkhPWJIUe+WAonYu1QrYEI1GHlcONac2hHNnHXm04iEy76UikGsXLc13KX90AH5VmNl0Jt/hRb9pqb6mC9Hd+jzov5G8TDC77HHtJO81G91vT1CfMD6JZekbTCH5tE4vGk8bXiaMB+XS0cMVLA12tu8x3KatNQpk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB7TCCAVagAwIBAgIQWy5fl7XivKNF8WyXgF7H9DANBgkqhkiG9w0BAQsFADA1MTMwMQYDVQQDHioATABBAFAAVABPAFAALQBJAFUAOQBBADcAMgA5AFEAXABiAG8AdwAzADMwHhcNMjQwNTE4MDUzMTIxWhcNMjUwNTE4MTEzMTIxWjA1MTMwMQYDVQQDHioATABBAFAAVABPAFAALQBJAFUAOQBBADcAMgA5AFEAXABiAG8AdwAzADMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOTCsbYMtjp8EJIT1iSFHvlgKJ2LtUK2BCNRh5XDjWnNoRzZx15tOIhMu+lIpBrFy3Ndyl/dAB+VZjZdCbf4UW/aam+pgvR3fo86L+RvEwwu+xx7STvNRvdb09QnzA+iWXpG0wh+bROLxpPG14mjAfl0tHDFSwNdrbvMdymrTUKZAgMBAAEwDQYJKoZIhvcNAQELBQADgYEAY6EwQVMqSprcsUwrU+DB5jz0aYLWX6iD0Cuq2r+SPbAXaEkPzUOypV155rwOGMeh0jZKF4Jc5EgiYh1njyxQHee4T16pi0uoQ7fQHQQ+MnfoO/wHrG2/yoi6fHbpgMQKz3dQ1UfZkoV2QZgHu9xJAMdAg9QmIJYDsjvZWChIYPw=</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
||||||
BIN
Application Files/AsusFanControlGUI_1_0_0_0/propeller.ico.deploy
Normal file
BIN
Application Files/AsusFanControlGUI_1_0_0_0/propeller.ico.deploy
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
21
AsusFanControlGUI.application
Normal file
21
AsusFanControlGUI.application
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
||||||
|
<assemblyIdentity name="AsusFanControlGUI.application" version="1.0.0.0" publicKeyToken="e7646ab91e1988e9" language="neutral" processorArchitecture="amd64" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||||
|
<description asmv2:publisher="AsusFanControlGUI" asmv2:product="AsusFanControlGUI" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||||
|
<deployment install="true" mapFileExtensions="true" />
|
||||||
|
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
|
||||||
|
<framework targetVersion="4.7.2" profile="Full" supportedRuntime="4.0.30319" />
|
||||||
|
</compatibleFrameworks>
|
||||||
|
<dependency>
|
||||||
|
<dependentAssembly dependencyType="install" codebase="Application Files\AsusFanControlGUI_1_0_0_0\AsusFanControlGUI.exe.manifest" size="8333">
|
||||||
|
<assemblyIdentity name="AsusFanControlGUI.exe" version="1.0.0.0" publicKeyToken="e7646ab91e1988e9" language="neutral" processorArchitecture="amd64" type="win32" />
|
||||||
|
<hash>
|
||||||
|
<dsig:Transforms>
|
||||||
|
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||||
|
</dsig:Transforms>
|
||||||
|
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||||
|
<dsig:DigestValue>VkRZQnzKQEa58EWCSMCnhF2twvcxNIaA5jlw/pXOw4M=</dsig:DigestValue>
|
||||||
|
</hash>
|
||||||
|
</dependentAssembly>
|
||||||
|
</dependency>
|
||||||
|
<publisherIdentity name="CN=LAPTOP-IU9A729Q\bow33" issuerKeyHash="90950ef02f6e8d1570e9ff66e946b3506c84f0f1" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>IlEmX+XiACqQR57sLOnsM6L/3C5obRyg3qA4sDiB7YY=</DigestValue></Reference></SignedInfo><SignatureValue>o8YpfToFaricuRaoJMNZw1bu1yrysCHRjbgMf7CA5/0VQMXpwkIJJYvbgNry32OFDh+gUZRgo0qOa9TAsjuMqGXeNQ6Vt3zsi5IMRCDVRSxHyPQkO/6C5qCVwwZiWOCMN9Fl+8pI7PwddulgffSIu8kUgIHwBlPOkRYkQwFHuSI=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>5MKxtgy2OnwQkhPWJIUe+WAonYu1QrYEI1GHlcONac2hHNnHXm04iEy76UikGsXLc13KX90AH5VmNl0Jt/hRb9pqb6mC9Hd+jzov5G8TDC77HHtJO81G91vT1CfMD6JZekbTCH5tE4vGk8bXiaMB+XS0cMVLA12tu8x3KatNQpk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="86ed8138b038a0dea01c6d682edcffa233ece92cec9e47902a00e2e55f265122" Description="" Url=""><as:assemblyIdentity name="AsusFanControlGUI.application" version="1.0.0.0" publicKeyToken="e7646ab91e1988e9" language="neutral" processorArchitecture="amd64" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=LAPTOP-IU9A729Q\bow33</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>pse2i08O+Tm2DU9lNWKb8jxz8D3uiNRp0At8cJy+9bY=</DigestValue></Reference></SignedInfo><SignatureValue>oQSz0KTHddVr48+OepgcQXcfLZ496ypQdRFAyWvx+ms1tUi57UgOUggILmnUq0ltplFYnaUt6j4g78CIKPTiWCQy7T/WExnmHz84ywoStLHbk6uvLtYQzHyiDnf/E8CgdMGko+uwyNhNOSSjjY67vSvTnNUBNgRrr56JR7fDl4w=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>5MKxtgy2OnwQkhPWJIUe+WAonYu1QrYEI1GHlcONac2hHNnHXm04iEy76UikGsXLc13KX90AH5VmNl0Jt/hRb9pqb6mC9Hd+jzov5G8TDC77HHtJO81G91vT1CfMD6JZekbTCH5tE4vGk8bXiaMB+XS0cMVLA12tu8x3KatNQpk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIB7TCCAVagAwIBAgIQWy5fl7XivKNF8WyXgF7H9DANBgkqhkiG9w0BAQsFADA1MTMwMQYDVQQDHioATABBAFAAVABPAFAALQBJAFUAOQBBADcAMgA5AFEAXABiAG8AdwAzADMwHhcNMjQwNTE4MDUzMTIxWhcNMjUwNTE4MTEzMTIxWjA1MTMwMQYDVQQDHioATABBAFAAVABPAFAALQBJAFUAOQBBADcAMgA5AFEAXABiAG8AdwAzADMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOTCsbYMtjp8EJIT1iSFHvlgKJ2LtUK2BCNRh5XDjWnNoRzZx15tOIhMu+lIpBrFy3Ndyl/dAB+VZjZdCbf4UW/aam+pgvR3fo86L+RvEwwu+xx7STvNRvdb09QnzA+iWXpG0wh+bROLxpPG14mjAfl0tHDFSwNdrbvMdymrTUKZAgMBAAEwDQYJKoZIhvcNAQELBQADgYEAY6EwQVMqSprcsUwrU+DB5jz0aYLWX6iD0Cuq2r+SPbAXaEkPzUOypV155rwOGMeh0jZKF4Jc5EgiYh1njyxQHee4T16pi0uoQ7fQHQQ+MnfoO/wHrG2/yoi6fHbpgMQKz3dQ1UfZkoV2QZgHu9xJAMdAg9QmIJYDsjvZWChIYPw=</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
||||||
@@ -12,6 +12,22 @@
|
|||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
<Deterministic>true</Deterministic>
|
<Deterministic>true</Deterministic>
|
||||||
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
|
<PublishUrl>C:\Users\bow33\Documents\GitHub\AsusFanControlEnhanced\</PublishUrl>
|
||||||
|
<Install>true</Install>
|
||||||
|
<InstallFrom>Disk</InstallFrom>
|
||||||
|
<UpdateEnabled>false</UpdateEnabled>
|
||||||
|
<UpdateMode>Foreground</UpdateMode>
|
||||||
|
<UpdateInterval>7</UpdateInterval>
|
||||||
|
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||||
|
<UpdatePeriodically>false</UpdatePeriodically>
|
||||||
|
<UpdateRequired>false</UpdateRequired>
|
||||||
|
<MapFileExtensions>true</MapFileExtensions>
|
||||||
|
<ApplicationRevision>1</ApplicationRevision>
|
||||||
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
|
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||||
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
@@ -55,6 +71,18 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationIcon>propeller.ico</ApplicationIcon>
|
<ApplicationIcon>propeller.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManifestCertificateThumbprint>3896F9A71C1385218E0E436CCCE1201230675364</ManifestCertificateThumbprint>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManifestKeyFile>AsusFanControlGUI_TemporaryKey.pfx</ManifestKeyFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<GenerateManifests>true</GenerateManifests>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<SignManifests>true</SignManifests>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
@@ -89,6 +117,7 @@
|
|||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<None Include="AsusFanControlGUI_TemporaryKey.pfx" />
|
||||||
<None Include="Properties\Settings.settings">
|
<None Include="Properties\Settings.settings">
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
@@ -111,5 +140,17 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="propeller.ico" />
|
<Content Include="propeller.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>Microsoft .NET Framework 4.7.2 %28x86 and x64%29</ProductName>
|
||||||
|
<Install>true</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||||
|
<Install>false</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
</Project>
|
</Project>
|
||||||
152
AsusFanControlGUI/Form1.Designer.cs
generated
152
AsusFanControlGUI/Form1.Designer.cs
generated
@@ -35,7 +35,6 @@
|
|||||||
this.label2 = new System.Windows.Forms.Label();
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
this.button1 = new System.Windows.Forms.Button();
|
this.button1 = new System.Windows.Forms.Button();
|
||||||
this.labelRPM = new System.Windows.Forms.Label();
|
this.labelRPM = new System.Windows.Forms.Label();
|
||||||
this.checkBoxTurnOn = new System.Windows.Forms.CheckBox();
|
|
||||||
this.labelCPUTemp = new System.Windows.Forms.Label();
|
this.labelCPUTemp = new System.Windows.Forms.Label();
|
||||||
this.button2 = new System.Windows.Forms.Button();
|
this.button2 = new System.Windows.Forms.Button();
|
||||||
this.label4 = new System.Windows.Forms.Label();
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
@@ -44,16 +43,24 @@
|
|||||||
this.toolStripMenuItemTurnOffControlOnExit = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItemTurnOffControlOnExit = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItemForbidUnsafeSettings = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItemForbidUnsafeSettings = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripMenuItemCheckForUpdates = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItemCheckForUpdates = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.label5 = new System.Windows.Forms.Label();
|
||||||
|
this.pictureBoxFanCurve = new System.Windows.Forms.PictureBox();
|
||||||
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.fanControl = new System.Windows.Forms.RadioButton();
|
||||||
|
this.fanCurveControl = new System.Windows.Forms.RadioButton();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.trackBarFanSpeed)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.trackBarFanSpeed)).BeginInit();
|
||||||
this.menuStrip1.SuspendLayout();
|
this.menuStrip1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBoxFanCurve)).BeginInit();
|
||||||
|
this.groupBox1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// trackBarFanSpeed
|
// trackBarFanSpeed
|
||||||
//
|
//
|
||||||
this.trackBarFanSpeed.Location = new System.Drawing.Point(12, 62);
|
this.trackBarFanSpeed.Location = new System.Drawing.Point(17, 54);
|
||||||
|
this.trackBarFanSpeed.Margin = new System.Windows.Forms.Padding(4);
|
||||||
this.trackBarFanSpeed.Maximum = 100;
|
this.trackBarFanSpeed.Maximum = 100;
|
||||||
this.trackBarFanSpeed.Name = "trackBarFanSpeed";
|
this.trackBarFanSpeed.Name = "trackBarFanSpeed";
|
||||||
this.trackBarFanSpeed.Size = new System.Drawing.Size(300, 45);
|
this.trackBarFanSpeed.Size = new System.Drawing.Size(400, 56);
|
||||||
this.trackBarFanSpeed.TabIndex = 0;
|
this.trackBarFanSpeed.TabIndex = 0;
|
||||||
this.trackBarFanSpeed.Value = 100;
|
this.trackBarFanSpeed.Value = 100;
|
||||||
this.trackBarFanSpeed.KeyUp += new System.Windows.Forms.KeyEventHandler(this.trackBarFanSpeed_KeyUp);
|
this.trackBarFanSpeed.KeyUp += new System.Windows.Forms.KeyEventHandler(this.trackBarFanSpeed_KeyUp);
|
||||||
@@ -62,35 +69,39 @@
|
|||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
this.label1.AutoSize = true;
|
this.label1.AutoSize = true;
|
||||||
this.label1.Location = new System.Drawing.Point(12, 110);
|
this.label1.Location = new System.Drawing.Point(13, 401);
|
||||||
|
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||||
this.label1.Name = "label1";
|
this.label1.Name = "label1";
|
||||||
this.label1.Size = new System.Drawing.Size(73, 13);
|
this.label1.Size = new System.Drawing.Size(88, 16);
|
||||||
this.label1.TabIndex = 1;
|
this.label1.TabIndex = 1;
|
||||||
this.label1.Text = "Current value:";
|
this.label1.Text = "Current value:";
|
||||||
//
|
//
|
||||||
// labelValue
|
// labelValue
|
||||||
//
|
//
|
||||||
this.labelValue.AutoSize = true;
|
this.labelValue.AutoSize = true;
|
||||||
this.labelValue.Location = new System.Drawing.Point(91, 110);
|
this.labelValue.Location = new System.Drawing.Point(118, 401);
|
||||||
|
this.labelValue.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||||
this.labelValue.Name = "labelValue";
|
this.labelValue.Name = "labelValue";
|
||||||
this.labelValue.Size = new System.Drawing.Size(10, 13);
|
this.labelValue.Size = new System.Drawing.Size(11, 16);
|
||||||
this.labelValue.TabIndex = 2;
|
this.labelValue.TabIndex = 2;
|
||||||
this.labelValue.Text = "-";
|
this.labelValue.Text = "-";
|
||||||
//
|
//
|
||||||
// label2
|
// label2
|
||||||
//
|
//
|
||||||
this.label2.AutoSize = true;
|
this.label2.AutoSize = true;
|
||||||
this.label2.Location = new System.Drawing.Point(40, 139);
|
this.label2.Location = new System.Drawing.Point(50, 437);
|
||||||
|
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||||
this.label2.Name = "label2";
|
this.label2.Name = "label2";
|
||||||
this.label2.Size = new System.Drawing.Size(71, 13);
|
this.label2.Size = new System.Drawing.Size(85, 16);
|
||||||
this.label2.TabIndex = 3;
|
this.label2.TabIndex = 3;
|
||||||
this.label2.Text = "Current RPM:";
|
this.label2.Text = "Current RPM:";
|
||||||
//
|
//
|
||||||
// button1
|
// button1
|
||||||
//
|
//
|
||||||
this.button1.Location = new System.Drawing.Point(12, 134);
|
this.button1.Location = new System.Drawing.Point(13, 431);
|
||||||
|
this.button1.Margin = new System.Windows.Forms.Padding(4);
|
||||||
this.button1.Name = "button1";
|
this.button1.Name = "button1";
|
||||||
this.button1.Size = new System.Drawing.Size(22, 23);
|
this.button1.Size = new System.Drawing.Size(29, 28);
|
||||||
this.button1.TabIndex = 4;
|
this.button1.TabIndex = 4;
|
||||||
this.button1.Text = "↻";
|
this.button1.Text = "↻";
|
||||||
this.button1.UseVisualStyleBackColor = true;
|
this.button1.UseVisualStyleBackColor = true;
|
||||||
@@ -99,37 +110,29 @@
|
|||||||
// labelRPM
|
// labelRPM
|
||||||
//
|
//
|
||||||
this.labelRPM.AutoSize = true;
|
this.labelRPM.AutoSize = true;
|
||||||
this.labelRPM.Location = new System.Drawing.Point(117, 139);
|
this.labelRPM.Location = new System.Drawing.Point(153, 437);
|
||||||
|
this.labelRPM.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||||
this.labelRPM.Name = "labelRPM";
|
this.labelRPM.Name = "labelRPM";
|
||||||
this.labelRPM.Size = new System.Drawing.Size(10, 13);
|
this.labelRPM.Size = new System.Drawing.Size(11, 16);
|
||||||
this.labelRPM.TabIndex = 5;
|
this.labelRPM.TabIndex = 5;
|
||||||
this.labelRPM.Text = "-";
|
this.labelRPM.Text = "-";
|
||||||
//
|
//
|
||||||
// checkBoxTurnOn
|
|
||||||
//
|
|
||||||
this.checkBoxTurnOn.AutoSize = true;
|
|
||||||
this.checkBoxTurnOn.Location = new System.Drawing.Point(12, 37);
|
|
||||||
this.checkBoxTurnOn.Name = "checkBoxTurnOn";
|
|
||||||
this.checkBoxTurnOn.Size = new System.Drawing.Size(116, 17);
|
|
||||||
this.checkBoxTurnOn.TabIndex = 6;
|
|
||||||
this.checkBoxTurnOn.Text = "Turn on fan control";
|
|
||||||
this.checkBoxTurnOn.UseVisualStyleBackColor = true;
|
|
||||||
this.checkBoxTurnOn.CheckedChanged += new System.EventHandler(this.checkBoxTurnOn_CheckedChanged);
|
|
||||||
//
|
|
||||||
// labelCPUTemp
|
// labelCPUTemp
|
||||||
//
|
//
|
||||||
this.labelCPUTemp.AutoSize = true;
|
this.labelCPUTemp.AutoSize = true;
|
||||||
this.labelCPUTemp.Location = new System.Drawing.Point(141, 168);
|
this.labelCPUTemp.Location = new System.Drawing.Point(185, 473);
|
||||||
|
this.labelCPUTemp.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||||
this.labelCPUTemp.Name = "labelCPUTemp";
|
this.labelCPUTemp.Name = "labelCPUTemp";
|
||||||
this.labelCPUTemp.Size = new System.Drawing.Size(10, 13);
|
this.labelCPUTemp.Size = new System.Drawing.Size(11, 16);
|
||||||
this.labelCPUTemp.TabIndex = 9;
|
this.labelCPUTemp.TabIndex = 9;
|
||||||
this.labelCPUTemp.Text = "-";
|
this.labelCPUTemp.Text = "-";
|
||||||
//
|
//
|
||||||
// button2
|
// button2
|
||||||
//
|
//
|
||||||
this.button2.Location = new System.Drawing.Point(12, 163);
|
this.button2.Location = new System.Drawing.Point(13, 467);
|
||||||
|
this.button2.Margin = new System.Windows.Forms.Padding(4);
|
||||||
this.button2.Name = "button2";
|
this.button2.Name = "button2";
|
||||||
this.button2.Size = new System.Drawing.Size(22, 23);
|
this.button2.Size = new System.Drawing.Size(29, 28);
|
||||||
this.button2.TabIndex = 8;
|
this.button2.TabIndex = 8;
|
||||||
this.button2.Text = "↻";
|
this.button2.Text = "↻";
|
||||||
this.button2.UseVisualStyleBackColor = true;
|
this.button2.UseVisualStyleBackColor = true;
|
||||||
@@ -138,20 +141,22 @@
|
|||||||
// label4
|
// label4
|
||||||
//
|
//
|
||||||
this.label4.AutoSize = true;
|
this.label4.AutoSize = true;
|
||||||
this.label4.Location = new System.Drawing.Point(40, 168);
|
this.label4.Location = new System.Drawing.Point(50, 473);
|
||||||
|
this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||||
this.label4.Name = "label4";
|
this.label4.Name = "label4";
|
||||||
this.label4.Size = new System.Drawing.Size(95, 13);
|
this.label4.Size = new System.Drawing.Size(116, 16);
|
||||||
this.label4.TabIndex = 7;
|
this.label4.TabIndex = 7;
|
||||||
this.label4.Text = "Current CPU temp:";
|
this.label4.Text = "Current CPU temp:";
|
||||||
//
|
//
|
||||||
// menuStrip1
|
// menuStrip1
|
||||||
//
|
//
|
||||||
|
this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.toolStripMenuItem1,
|
this.toolStripMenuItem1,
|
||||||
this.toolStripMenuItemCheckForUpdates});
|
this.toolStripMenuItemCheckForUpdates});
|
||||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.menuStrip1.Name = "menuStrip1";
|
this.menuStrip1.Name = "menuStrip1";
|
||||||
this.menuStrip1.Size = new System.Drawing.Size(324, 24);
|
this.menuStrip1.Size = new System.Drawing.Size(510, 28);
|
||||||
this.menuStrip1.TabIndex = 10;
|
this.menuStrip1.TabIndex = 10;
|
||||||
this.menuStrip1.Text = "menuStrip1";
|
this.menuStrip1.Text = "menuStrip1";
|
||||||
//
|
//
|
||||||
@@ -161,14 +166,14 @@
|
|||||||
this.toolStripMenuItemTurnOffControlOnExit,
|
this.toolStripMenuItemTurnOffControlOnExit,
|
||||||
this.toolStripMenuItemForbidUnsafeSettings});
|
this.toolStripMenuItemForbidUnsafeSettings});
|
||||||
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||||
this.toolStripMenuItem1.Size = new System.Drawing.Size(72, 20);
|
this.toolStripMenuItem1.Size = new System.Drawing.Size(89, 24);
|
||||||
this.toolStripMenuItem1.Text = "Advanced";
|
this.toolStripMenuItem1.Text = "Advanced";
|
||||||
//
|
//
|
||||||
// toolStripMenuItemTurnOffControlOnExit
|
// toolStripMenuItemTurnOffControlOnExit
|
||||||
//
|
//
|
||||||
this.toolStripMenuItemTurnOffControlOnExit.CheckOnClick = true;
|
this.toolStripMenuItemTurnOffControlOnExit.CheckOnClick = true;
|
||||||
this.toolStripMenuItemTurnOffControlOnExit.Name = "toolStripMenuItemTurnOffControlOnExit";
|
this.toolStripMenuItemTurnOffControlOnExit.Name = "toolStripMenuItemTurnOffControlOnExit";
|
||||||
this.toolStripMenuItemTurnOffControlOnExit.Size = new System.Drawing.Size(196, 22);
|
this.toolStripMenuItemTurnOffControlOnExit.Size = new System.Drawing.Size(244, 26);
|
||||||
this.toolStripMenuItemTurnOffControlOnExit.Text = "Turn off control on exit";
|
this.toolStripMenuItemTurnOffControlOnExit.Text = "Turn off control on exit";
|
||||||
this.toolStripMenuItemTurnOffControlOnExit.CheckedChanged += new System.EventHandler(this.toolStripMenuItemTurnOffControlOnExit_CheckedChanged);
|
this.toolStripMenuItemTurnOffControlOnExit.CheckedChanged += new System.EventHandler(this.toolStripMenuItemTurnOffControlOnExit_CheckedChanged);
|
||||||
//
|
//
|
||||||
@@ -176,40 +181,103 @@
|
|||||||
//
|
//
|
||||||
this.toolStripMenuItemForbidUnsafeSettings.CheckOnClick = true;
|
this.toolStripMenuItemForbidUnsafeSettings.CheckOnClick = true;
|
||||||
this.toolStripMenuItemForbidUnsafeSettings.Name = "toolStripMenuItemForbidUnsafeSettings";
|
this.toolStripMenuItemForbidUnsafeSettings.Name = "toolStripMenuItemForbidUnsafeSettings";
|
||||||
this.toolStripMenuItemForbidUnsafeSettings.Size = new System.Drawing.Size(196, 22);
|
this.toolStripMenuItemForbidUnsafeSettings.Size = new System.Drawing.Size(244, 26);
|
||||||
this.toolStripMenuItemForbidUnsafeSettings.Text = "Forbid unsafe settings";
|
this.toolStripMenuItemForbidUnsafeSettings.Text = "Forbid unsafe settings";
|
||||||
this.toolStripMenuItemForbidUnsafeSettings.CheckedChanged += new System.EventHandler(this.toolStripMenuItemForbidUnsafeSettings_CheckedChanged);
|
this.toolStripMenuItemForbidUnsafeSettings.CheckedChanged += new System.EventHandler(this.toolStripMenuItemForbidUnsafeSettings_CheckedChanged);
|
||||||
//
|
//
|
||||||
// toolStripMenuItemCheckForUpdates
|
// toolStripMenuItemCheckForUpdates
|
||||||
//
|
//
|
||||||
this.toolStripMenuItemCheckForUpdates.Name = "toolStripMenuItemCheckForUpdates";
|
this.toolStripMenuItemCheckForUpdates.Name = "toolStripMenuItemCheckForUpdates";
|
||||||
this.toolStripMenuItemCheckForUpdates.Size = new System.Drawing.Size(115, 20);
|
this.toolStripMenuItemCheckForUpdates.Size = new System.Drawing.Size(142, 24);
|
||||||
this.toolStripMenuItemCheckForUpdates.Text = "Check for updates";
|
this.toolStripMenuItemCheckForUpdates.Text = "Check for updates";
|
||||||
this.toolStripMenuItemCheckForUpdates.Click += new System.EventHandler(this.toolStripMenuItemCheckForUpdates_Click);
|
this.toolStripMenuItemCheckForUpdates.Click += new System.EventHandler(this.toolStripMenuItemCheckForUpdates_Click);
|
||||||
//
|
//
|
||||||
|
// label5
|
||||||
|
//
|
||||||
|
this.label5.AutoSize = true;
|
||||||
|
this.label5.Location = new System.Drawing.Point(341, 28);
|
||||||
|
this.label5.Name = "label5";
|
||||||
|
this.label5.Size = new System.Drawing.Size(76, 16);
|
||||||
|
this.label5.TabIndex = 13;
|
||||||
|
this.label5.Text = "PWM value";
|
||||||
|
//
|
||||||
|
// pictureBoxFanCurve
|
||||||
|
//
|
||||||
|
this.pictureBoxFanCurve.Location = new System.Drawing.Point(13, 184);
|
||||||
|
this.pictureBoxFanCurve.Name = "pictureBoxFanCurve";
|
||||||
|
this.pictureBoxFanCurve.Size = new System.Drawing.Size(477, 203);
|
||||||
|
this.pictureBoxFanCurve.TabIndex = 0;
|
||||||
|
this.pictureBoxFanCurve.TabStop = false;
|
||||||
|
this.pictureBoxFanCurve.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBoxFanCurve_Paint);
|
||||||
|
this.pictureBoxFanCurve.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pictureBoxFanCurve_MouseClick);
|
||||||
|
this.pictureBoxFanCurve.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.pictureBoxFanCurve_MouseDoubleClick);
|
||||||
|
this.pictureBoxFanCurve.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBoxFanCurve_MouseDown);
|
||||||
|
this.pictureBoxFanCurve.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBoxFanCurve_MouseMove);
|
||||||
|
this.pictureBoxFanCurve.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pictureBoxFanCurve_MouseUp);
|
||||||
|
//
|
||||||
|
// groupBox1
|
||||||
|
//
|
||||||
|
this.groupBox1.Controls.Add(this.fanControl);
|
||||||
|
this.groupBox1.Controls.Add(this.fanCurveControl);
|
||||||
|
this.groupBox1.Controls.Add(this.trackBarFanSpeed);
|
||||||
|
this.groupBox1.Controls.Add(this.label5);
|
||||||
|
this.groupBox1.Location = new System.Drawing.Point(12, 32);
|
||||||
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.Size = new System.Drawing.Size(486, 146);
|
||||||
|
this.groupBox1.TabIndex = 14;
|
||||||
|
this.groupBox1.TabStop = false;
|
||||||
|
this.groupBox1.Text = "groupBox1";
|
||||||
|
//
|
||||||
|
// fanControl
|
||||||
|
//
|
||||||
|
this.fanControl.AutoSize = true;
|
||||||
|
this.fanControl.Location = new System.Drawing.Point(20, 27);
|
||||||
|
this.fanControl.Name = "fanControl";
|
||||||
|
this.fanControl.Size = new System.Drawing.Size(137, 20);
|
||||||
|
this.fanControl.TabIndex = 15;
|
||||||
|
this.fanControl.Text = "Turn on fan control";
|
||||||
|
this.fanControl.UseVisualStyleBackColor = true;
|
||||||
|
this.fanControl.CheckedChanged += new System.EventHandler(this.radioButton2_CheckedChanged);
|
||||||
|
//
|
||||||
|
// fanCurveControl
|
||||||
|
//
|
||||||
|
this.fanCurveControl.AutoSize = true;
|
||||||
|
this.fanCurveControl.Location = new System.Drawing.Point(20, 108);
|
||||||
|
this.fanCurveControl.Name = "fanCurveControl";
|
||||||
|
this.fanCurveControl.Size = new System.Drawing.Size(130, 20);
|
||||||
|
this.fanCurveControl.TabIndex = 14;
|
||||||
|
this.fanCurveControl.Text = "Turn on fan curve";
|
||||||
|
this.fanCurveControl.UseVisualStyleBackColor = true;
|
||||||
|
this.fanCurveControl.CheckedChanged += new System.EventHandler(this.fanCurve_CheckedChanged);
|
||||||
|
//
|
||||||
// Form1
|
// Form1
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(324, 198);
|
this.ClientSize = new System.Drawing.Size(510, 523);
|
||||||
|
this.Controls.Add(this.pictureBoxFanCurve);
|
||||||
this.Controls.Add(this.labelCPUTemp);
|
this.Controls.Add(this.labelCPUTemp);
|
||||||
this.Controls.Add(this.button2);
|
this.Controls.Add(this.button2);
|
||||||
this.Controls.Add(this.label4);
|
this.Controls.Add(this.label4);
|
||||||
this.Controls.Add(this.checkBoxTurnOn);
|
|
||||||
this.Controls.Add(this.labelRPM);
|
this.Controls.Add(this.labelRPM);
|
||||||
this.Controls.Add(this.button1);
|
this.Controls.Add(this.button1);
|
||||||
this.Controls.Add(this.label2);
|
this.Controls.Add(this.label2);
|
||||||
this.Controls.Add(this.labelValue);
|
this.Controls.Add(this.labelValue);
|
||||||
this.Controls.Add(this.label1);
|
this.Controls.Add(this.label1);
|
||||||
this.Controls.Add(this.trackBarFanSpeed);
|
|
||||||
this.Controls.Add(this.menuStrip1);
|
this.Controls.Add(this.menuStrip1);
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
this.MainMenuStrip = this.menuStrip1;
|
this.MainMenuStrip = this.menuStrip1;
|
||||||
|
this.Margin = new System.Windows.Forms.Padding(4);
|
||||||
this.Name = "Form1";
|
this.Name = "Form1";
|
||||||
this.Text = "Asus Fan Control";
|
this.Text = "Asus Fan Control";
|
||||||
|
this.Load += new System.EventHandler(this.Form1_Load);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.trackBarFanSpeed)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.trackBarFanSpeed)).EndInit();
|
||||||
this.menuStrip1.ResumeLayout(false);
|
this.menuStrip1.ResumeLayout(false);
|
||||||
this.menuStrip1.PerformLayout();
|
this.menuStrip1.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBoxFanCurve)).EndInit();
|
||||||
|
this.groupBox1.ResumeLayout(false);
|
||||||
|
this.groupBox1.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
@@ -223,7 +291,6 @@
|
|||||||
private System.Windows.Forms.Label label2;
|
private System.Windows.Forms.Label label2;
|
||||||
private System.Windows.Forms.Button button1;
|
private System.Windows.Forms.Button button1;
|
||||||
private System.Windows.Forms.Label labelRPM;
|
private System.Windows.Forms.Label labelRPM;
|
||||||
private System.Windows.Forms.CheckBox checkBoxTurnOn;
|
|
||||||
private System.Windows.Forms.Label labelCPUTemp;
|
private System.Windows.Forms.Label labelCPUTemp;
|
||||||
private System.Windows.Forms.Button button2;
|
private System.Windows.Forms.Button button2;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
@@ -232,6 +299,11 @@
|
|||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemTurnOffControlOnExit;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemTurnOffControlOnExit;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemForbidUnsafeSettings;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemForbidUnsafeSettings;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemCheckForUpdates;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemCheckForUpdates;
|
||||||
|
private System.Windows.Forms.Label label5;
|
||||||
|
private System.Windows.Forms.PictureBox pictureBoxFanCurve;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox1;
|
||||||
|
private System.Windows.Forms.RadioButton fanCurveControl;
|
||||||
|
private System.Windows.Forms.RadioButton fanControl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ namespace AsusFanControlGUI
|
|||||||
{
|
{
|
||||||
public partial class Form1 : Form
|
public partial class Form1 : Form
|
||||||
{
|
{
|
||||||
|
private System.Windows.Forms.Timer timer;
|
||||||
AsusControl asusControl = new AsusControl();
|
AsusControl asusControl = new AsusControl();
|
||||||
int fanSpeed = 0;
|
int fanSpeed = 0;
|
||||||
|
|
||||||
@@ -24,7 +25,25 @@ namespace AsusFanControlGUI
|
|||||||
|
|
||||||
toolStripMenuItemTurnOffControlOnExit.Checked = Properties.Settings.Default.turnOffControlOnExit;
|
toolStripMenuItemTurnOffControlOnExit.Checked = Properties.Settings.Default.turnOffControlOnExit;
|
||||||
toolStripMenuItemForbidUnsafeSettings.Checked = Properties.Settings.Default.forbidUnsafeSettings;
|
toolStripMenuItemForbidUnsafeSettings.Checked = Properties.Settings.Default.forbidUnsafeSettings;
|
||||||
trackBarFanSpeed.Value = Properties.Settings.Default.fanSpeed;
|
//trackBarFanSpeed.Value = Properties.Settings.Default.fanSpeed;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Form1_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// Create and start the timer
|
||||||
|
timer = new System.Windows.Forms.Timer();
|
||||||
|
timer.Interval = 1000; // 1000 milliseconds = 1 second
|
||||||
|
timer.Tick += Timer_Tick;
|
||||||
|
timer.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Timer_Tick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// Update fan speeds
|
||||||
|
labelRPM.Text = string.Join(" ", asusControl.GetFanSpeeds());
|
||||||
|
|
||||||
|
// Update CPU temperature
|
||||||
|
labelCPUTemp.Text = $"{asusControl.Thermal_Read_Cpu_Temperature()}";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnProcessExit(object sender, EventArgs e)
|
private void OnProcessExit(object sender, EventArgs e)
|
||||||
@@ -50,13 +69,12 @@ namespace AsusFanControlGUI
|
|||||||
System.Diagnostics.Process.Start("https://github.com/Karmel0x/AsusFanControl/releases");
|
System.Diagnostics.Process.Start("https://github.com/Karmel0x/AsusFanControl/releases");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setFanSpeed()
|
private void setFanSpeed(int value, bool isTurnedOn)
|
||||||
{
|
{
|
||||||
var value = trackBarFanSpeed.Value;
|
|
||||||
Properties.Settings.Default.fanSpeed = value;
|
Properties.Settings.Default.fanSpeed = value;
|
||||||
Properties.Settings.Default.Save();
|
Properties.Settings.Default.Save();
|
||||||
|
|
||||||
if (!checkBoxTurnOn.Checked)
|
if (!isTurnedOn)
|
||||||
value = 0;
|
value = 0;
|
||||||
|
|
||||||
if (value == 0)
|
if (value == 0)
|
||||||
@@ -68,15 +86,9 @@ namespace AsusFanControlGUI
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
fanSpeed = value;
|
fanSpeed = value;
|
||||||
|
|
||||||
asusControl.SetFanSpeeds(value);
|
asusControl.SetFanSpeeds(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkBoxTurnOn_CheckedChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
setFanSpeed();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void trackBarFanSpeed_MouseCaptureChanged(object sender, EventArgs e)
|
private void trackBarFanSpeed_MouseCaptureChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (Properties.Settings.Default.forbidUnsafeSettings)
|
if (Properties.Settings.Default.forbidUnsafeSettings)
|
||||||
@@ -87,7 +99,7 @@ namespace AsusFanControlGUI
|
|||||||
trackBarFanSpeed.Value = 99;
|
trackBarFanSpeed.Value = 99;
|
||||||
}
|
}
|
||||||
|
|
||||||
setFanSpeed();
|
setFanSpeed(trackBarFanSpeed.Value, fanControl.Checked);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void trackBarFanSpeed_KeyUp(object sender, KeyEventArgs e)
|
private void trackBarFanSpeed_KeyUp(object sender, KeyEventArgs e)
|
||||||
@@ -107,5 +119,320 @@ namespace AsusFanControlGUI
|
|||||||
{
|
{
|
||||||
labelCPUTemp.Text = $"{asusControl.Thermal_Read_Cpu_Temperature()}";
|
labelCPUTemp.Text = $"{asusControl.Thermal_Read_Cpu_Temperature()}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// My Code:
|
||||||
|
private Point maxPoint;
|
||||||
|
private Point minPoint;
|
||||||
|
|
||||||
|
private void pictureBoxFanCurve_Paint(object sender, PaintEventArgs e)
|
||||||
|
{
|
||||||
|
// Draw the fan curve graph
|
||||||
|
Graphics g = e.Graphics;
|
||||||
|
|
||||||
|
// Set up the graph dimensions
|
||||||
|
int padding = 20;
|
||||||
|
int graphWidth = pictureBoxFanCurve.Width - 2 * padding;
|
||||||
|
int graphHeight = pictureBoxFanCurve.Height - 2 * padding;
|
||||||
|
|
||||||
|
// Draw the temperature axis and labels
|
||||||
|
int tempMin = 30;
|
||||||
|
int tempMax = 100;
|
||||||
|
int tempInterval = 10;
|
||||||
|
|
||||||
|
g.DrawLine(Pens.Black, padding, pictureBoxFanCurve.Height - padding, pictureBoxFanCurve.Width - padding, pictureBoxFanCurve.Height - padding);
|
||||||
|
|
||||||
|
for (int temp = tempMin; temp <= tempMax; temp += tempInterval)
|
||||||
|
{
|
||||||
|
int x = padding + (temp - tempMin) * graphWidth / (tempMax - tempMin);
|
||||||
|
g.DrawLine(Pens.Black, x, pictureBoxFanCurve.Height - padding - 5, x, pictureBoxFanCurve.Height - padding + 5);
|
||||||
|
g.DrawString(temp.ToString(), DefaultFont, Brushes.Black, x - 10, pictureBoxFanCurve.Height - padding + 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g.DrawString("Temperature (°C)", DefaultFont, Brushes.Black, pictureBoxFanCurve.Width / 2 - 40, pictureBoxFanCurve.Height - padding + 20);
|
||||||
|
|
||||||
|
// Draw the fan speed axis and labels
|
||||||
|
int speedMin = 0;
|
||||||
|
int speedMax = 100;
|
||||||
|
int speedInterval = 20;
|
||||||
|
|
||||||
|
g.DrawLine(Pens.Black, padding, padding, padding, pictureBoxFanCurve.Height - padding);
|
||||||
|
|
||||||
|
for (int speed = speedMin; speed <= speedMax; speed += speedInterval)
|
||||||
|
{
|
||||||
|
int y = pictureBoxFanCurve.Height - padding - speed * graphHeight / speedMax;
|
||||||
|
g.DrawLine(Pens.Black, padding - 5, y, padding + 5, y);
|
||||||
|
g.DrawString(speed.ToString(), DefaultFont, Brushes.Black, 5, y - 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
g.DrawString("Fan Speed (%)", DefaultFont, Brushes.Black, padding - 10, padding - 20, new StringFormat(StringFormatFlags.DirectionVertical));
|
||||||
|
|
||||||
|
// Draw the fan curve points
|
||||||
|
foreach (Point point in fanCurvePoints.Values)
|
||||||
|
{
|
||||||
|
int x = padding + (point.X - tempMin) * graphWidth / (tempMax - tempMin);
|
||||||
|
int y = pictureBoxFanCurve.Height - padding - point.Y * graphHeight / speedMax;
|
||||||
|
g.FillEllipse(Brushes.Green, x - 3, y - 3, 12, 12);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Draw the maximum and minimum temperature points
|
||||||
|
int maxX = padding + (maxPoint.X - tempMin) * graphWidth / (tempMax - tempMin);
|
||||||
|
int maxY = pictureBoxFanCurve.Height - padding - maxPoint.Y * graphHeight / speedMax;
|
||||||
|
g.FillEllipse(Brushes.Red, maxX - 5, maxY - 5, 10, 10);
|
||||||
|
|
||||||
|
int minX = padding + (minPoint.X - tempMin) * graphWidth / (tempMax - tempMin);
|
||||||
|
int minY = pictureBoxFanCurve.Height - padding - minPoint.Y * graphHeight / speedMax;
|
||||||
|
g.FillEllipse(Brushes.Yellow, minX - 5, minY - 5, 10, 10);
|
||||||
|
|
||||||
|
// Draw lines connecting the fan curve points
|
||||||
|
if (fanCurvePoints.Count >= 2)
|
||||||
|
{
|
||||||
|
Point[] graphPoints = fanCurvePoints.Values
|
||||||
|
.OrderBy(p => p.X)
|
||||||
|
.Select(p => new Point(
|
||||||
|
padding + (p.X - tempMin) * graphWidth / (tempMax - tempMin),
|
||||||
|
pictureBoxFanCurve.Height - padding - p.Y * graphHeight / speedMax
|
||||||
|
))
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
|
using (Pen thickPen = new Pen(Color.Black, 3))
|
||||||
|
{
|
||||||
|
g.DrawLines(Pens.Black, graphPoints);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void pictureBoxFanCurve_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
// Set up the graph dimensions
|
||||||
|
int padding = 20;
|
||||||
|
int graphWidth = pictureBoxFanCurve.Width - 2 * padding;
|
||||||
|
int graphHeight = pictureBoxFanCurve.Height - 2 * padding;
|
||||||
|
|
||||||
|
// Define the temperature and fan speed ranges
|
||||||
|
int tempMin = 30;
|
||||||
|
int tempMax = 100;
|
||||||
|
int speedMin = 0;
|
||||||
|
int speedMax = 100;
|
||||||
|
|
||||||
|
// Convert the mouse coordinates to graph coordinates
|
||||||
|
int temperature = tempMin + (e.X - padding) * (tempMax - tempMin) / graphWidth;
|
||||||
|
int fanSpeed = speedMax - (e.Y - padding) * speedMax / graphHeight;
|
||||||
|
|
||||||
|
// Check if a point with the same y-axis already exists
|
||||||
|
if (fanCurvePoints.Values.Any(p => p.Y == fanSpeed))
|
||||||
|
{
|
||||||
|
return; // Do not add the new point
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fanCurvePoints.Count >= 15)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Maximum number of points reached.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate a unique ID for the new point
|
||||||
|
int newID = fanCurvePoints.Count > 0 ? fanCurvePoints.Keys.Max() + 1 : 1;
|
||||||
|
|
||||||
|
// Add a new point to the fan curve
|
||||||
|
Point newPoint = new Point(temperature, fanSpeed);
|
||||||
|
fanCurvePoints[newID] = newPoint;
|
||||||
|
|
||||||
|
pictureBoxFanCurve.Invalidate(); // Redraw the graph
|
||||||
|
}
|
||||||
|
|
||||||
|
private int selectedPointId = 0;
|
||||||
|
|
||||||
|
private (int temperature, int fanSpeed) mousePosition(Point e)
|
||||||
|
{
|
||||||
|
// Set up the graph dimensions
|
||||||
|
int padding = 20;
|
||||||
|
int graphWidth = pictureBoxFanCurve.Width - 2 * padding;
|
||||||
|
int graphHeight = pictureBoxFanCurve.Height - 2 * padding;
|
||||||
|
|
||||||
|
// Define the temperature and fan speed ranges
|
||||||
|
int tempMin = 30;
|
||||||
|
int tempMax = 100;
|
||||||
|
int speedMin = 0;
|
||||||
|
int speedMax = 100;
|
||||||
|
|
||||||
|
// Convert the mouse coordinates to graph coordinates
|
||||||
|
int temperature = tempMin + (e.X - padding) * (tempMax - tempMin) / graphWidth;
|
||||||
|
int fanSpeed = speedMax - (e.Y - padding) * speedMax / graphHeight;
|
||||||
|
|
||||||
|
return (temperature, fanSpeed);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void pictureBoxFanCurve_MouseClick(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Button == MouseButtons.Right)
|
||||||
|
{
|
||||||
|
(int temperature, int fanSpeed) = mousePosition(e.Location);
|
||||||
|
|
||||||
|
var nearestPoints = fanCurvePoints
|
||||||
|
.OrderBy(p => Distance(p.Value, new Point(temperature, fanSpeed)));
|
||||||
|
|
||||||
|
var reachablePoint = nearestPoints
|
||||||
|
.FirstOrDefault(p => Distance(p.Value, new Point(temperature, fanSpeed)) <= 20);
|
||||||
|
|
||||||
|
if (reachablePoint.Value != Point.Empty)
|
||||||
|
{
|
||||||
|
fanCurvePoints.Remove(reachablePoint.Key);
|
||||||
|
Console.WriteLine($"Point ID: {reachablePoint.Key} deleted.");
|
||||||
|
pictureBoxFanCurve.Invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void pictureBoxFanCurve_MouseDown(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
Console.Write("MouseDown: ");
|
||||||
|
|
||||||
|
if (e.Button == MouseButtons.Left)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e.Button);
|
||||||
|
|
||||||
|
// Get mouse position
|
||||||
|
(int temperature, int fanSpeed) = mousePosition(e.Location);
|
||||||
|
|
||||||
|
|
||||||
|
var nearestPoints = fanCurvePoints
|
||||||
|
.OrderBy(p => Distance(p.Value, new Point(temperature, fanSpeed)));
|
||||||
|
|
||||||
|
var reachablePoint = nearestPoints
|
||||||
|
.FirstOrDefault(p => Distance(p.Value, new Point(temperature, fanSpeed)) <= 20);
|
||||||
|
|
||||||
|
if (reachablePoint.Value != Point.Empty)
|
||||||
|
{
|
||||||
|
selectedPointId = reachablePoint.Key;
|
||||||
|
Console.WriteLine($"Distance: {Distance(reachablePoint.Value, new Point(temperature, fanSpeed))}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
selectedPointId = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void pictureBoxFanCurve_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (selectedPointId != 0)
|
||||||
|
{
|
||||||
|
// Console.Write("MouseMove, Key: ");
|
||||||
|
|
||||||
|
// Get mouse location on grid
|
||||||
|
(int temperature, int fanSpeed) = mousePosition(e.Location);
|
||||||
|
fanCurvePoints[selectedPointId] = new Point(temperature, fanSpeed);
|
||||||
|
pictureBoxFanCurve.Invalidate(); // Redraw the graph
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void pictureBoxFanCurve_MouseUp(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
selectedPointId = 0;
|
||||||
|
|
||||||
|
// fanCurvePoints.ToList().ForEach(point => Console.Write($"ID: {point.Key}, X: {point.Value.X}, Y: {point.Value.Y}"));
|
||||||
|
// Console.WriteLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
private double Distance(Point p1, Point p2)
|
||||||
|
{
|
||||||
|
int dx = p1.X - p2.X;
|
||||||
|
int dy = p1.Y - p2.Y;
|
||||||
|
return Math.Sqrt(dx * dx + dy * dy);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Dictionary<int, Point> fanCurvePoints = new Dictionary<int, Point>();
|
||||||
|
|
||||||
|
private Timer fanCurveTimer; // Declare the timer as a class-level variable
|
||||||
|
|
||||||
|
bool isControlYeilded = false;
|
||||||
|
private void fanCurve_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (fanCurveControl.Checked)
|
||||||
|
{
|
||||||
|
// Start a timer to read the temperature and update the fan speed every 3 seconds
|
||||||
|
fanCurveTimer = new Timer();
|
||||||
|
fanCurveTimer.Interval = 1000; // 3 seconds
|
||||||
|
fanCurveTimer.Tick += (s, args) =>
|
||||||
|
{
|
||||||
|
// Read the current temperature
|
||||||
|
ulong currentTemp = asusControl.Thermal_Read_Cpu_Temperature(); // Implement the ReadTemperature method to get the current temperature
|
||||||
|
|
||||||
|
// Find the fan curve points that bracket the current temperature
|
||||||
|
KeyValuePair<int, Point> lowerPoint = fanCurvePoints.OrderByDescending(p => p.Value.X).FirstOrDefault(p => (ulong)p.Value.X <= currentTemp);
|
||||||
|
KeyValuePair<int, Point> upperPoint = fanCurvePoints.OrderBy(p => p.Value.X).FirstOrDefault(p => (ulong)p.Value.X >= currentTemp);
|
||||||
|
|
||||||
|
// Calculate the fan speed based on linear interpolation between the bracket points
|
||||||
|
int fanSpeed;
|
||||||
|
// Check if the current temperature is within the range of the fan curve points
|
||||||
|
if ((ulong)lowerPoint.Key == 0 || (ulong)upperPoint.Key == 0)
|
||||||
|
{
|
||||||
|
// Temperature is outside the range, yield control to the system
|
||||||
|
if (!isControlYeilded)
|
||||||
|
{
|
||||||
|
asusControl.SetFanSpeeds(0);
|
||||||
|
isControlYeilded = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (lowerPoint.Value.X == upperPoint.Value.X)
|
||||||
|
{
|
||||||
|
isControlYeilded = false;
|
||||||
|
fanSpeed = lowerPoint.Value.Y;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
isControlYeilded = false;
|
||||||
|
|
||||||
|
double ratio = (currentTemp - (ulong)lowerPoint.Value.X) / (double)(upperPoint.Value.X - lowerPoint.Value.X);
|
||||||
|
fanSpeed = (int)(lowerPoint.Value.Y + (upperPoint.Value.Y - lowerPoint.Value.Y) * ratio);
|
||||||
|
|
||||||
|
|
||||||
|
// Apply hysteresis to prevent rapid fan speed changes
|
||||||
|
int hysteresis = 2; // Adjust the hysteresis value as needed
|
||||||
|
if (fanSpeed > lastFanSpeed + hysteresis || fanSpeed < lastFanSpeed - hysteresis)
|
||||||
|
{
|
||||||
|
// Update the fan speed
|
||||||
|
fanSpeed = Math.Max(1, Math.Min(100, fanSpeed));
|
||||||
|
setFanSpeed(fanSpeed, true); // Implement the SetFanSpeed method to control the fan speed
|
||||||
|
lastFanSpeed = fanSpeed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
fanCurveTimer.Start();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Stop the timer when the fan curve is unchecked
|
||||||
|
if (fanCurveTimer != null)
|
||||||
|
{
|
||||||
|
fanCurveTimer.Stop();
|
||||||
|
fanCurveTimer.Dispose();
|
||||||
|
fanCurveTimer = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Keep track of the last fan speed to apply hysteresis
|
||||||
|
private int lastFanSpeed = 0;
|
||||||
|
|
||||||
|
private void radioButton2_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (fanControl.Checked)
|
||||||
|
{
|
||||||
|
setFanSpeed(trackBarFanSpeed.Value, fanCurveControl.Checked);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user