Compare commits

...

3 Commits

Author SHA1 Message Date
seerge
3ff2a5f946 New screenshot 2023-02-27 18:43:48 +01:00
seerge
c73c05c24a Project settings 2023-02-27 18:40:47 +01:00
seerge
1131035254 Basic key bindings, second keyboard color, minor fixes 2023-02-27 18:16:05 +01:00
15 changed files with 560 additions and 99 deletions

View File

@@ -12,9 +12,9 @@ public class Aura
public const int Rainbow = 3;
public const int Dingding = 10;
public const int SpeedSlow = 0;
public const int SpeedMedium = 1;
public const int SpeedHigh = 2;
public const int SpeedSlow = 0xe1;
public const int SpeedMedium = 0xeb;
public const int SpeedHigh = 0xf5;
public static int Mode = Static;
public static Color Color1 = Color.White;

12
Fans.Designer.cs generated
View File

@@ -44,13 +44,13 @@
chartCPU.ChartAreas.Add(chartArea1);
chartCPU.Location = new Point(16, 13);
chartCPU.Name = "chartCPU";
chartCPU.Size = new Size(900, 446);
chartCPU.Size = new Size(900, 480);
chartCPU.TabIndex = 0;
chartCPU.Text = "chartCPU";
//
// buttonApply
//
buttonApply.Location = new Point(662, 944);
buttonApply.Location = new Point(661, 1016);
buttonApply.Name = "buttonApply";
buttonApply.Size = new Size(254, 46);
buttonApply.TabIndex = 1;
@@ -59,7 +59,7 @@
//
// buttonReset
//
buttonReset.Location = new Point(402, 944);
buttonReset.Location = new Point(16, 1016);
buttonReset.Name = "buttonReset";
buttonReset.Size = new Size(254, 46);
buttonReset.TabIndex = 2;
@@ -70,9 +70,9 @@
//
chartArea2.Name = "ChartArea1";
chartGPU.ChartAreas.Add(chartArea2);
chartGPU.Location = new Point(16, 477);
chartGPU.Location = new Point(16, 513);
chartGPU.Name = "chartGPU";
chartGPU.Size = new Size(900, 448);
chartGPU.Size = new Size(900, 480);
chartGPU.TabIndex = 3;
chartGPU.Text = "chart1";
//
@@ -80,7 +80,7 @@
//
AutoScaleDimensions = new SizeF(13F, 32F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(940, 1020);
ClientSize = new Size(940, 1089);
Controls.Add(chartGPU);
Controls.Add(buttonReset);
Controls.Add(buttonApply);

36
Fans.cs
View File

@@ -35,6 +35,9 @@ namespace GHelper
chart.ChartAreas[0].AxisY.Minimum = 0;
chart.ChartAreas[0].AxisY.Maximum = 100;
chart.ChartAreas[0].AxisX.Interval = 10;
chart.ChartAreas[0].AxisY.Interval = 10;
if (chart.Legends.Count > 0)
chart.Legends[0].Enabled = false;
@@ -43,7 +46,7 @@ namespace GHelper
private void Fans_Shown(object? sender, EventArgs e)
{
Top = Program.settingsForm.Top;
Left = Program.settingsForm.Left - Width - 10;
Left = Program.settingsForm.Left - Width - 5;
}
public Fans()
@@ -194,18 +197,33 @@ namespace GHelper
if (curPoint != null)
{
Series s = hit.Series;
double dx = ax.PixelPositionToValue(e.X);
double dy = ay.PixelPositionToValue(e.Y);
double dx, dy, dymin;
if (dx < 0) dx = 0;
if (dx > 100) dx = 100;
try
{
dx = ax.PixelPositionToValue(e.X);
dy = ay.PixelPositionToValue(e.Y);
if (dy < 0) dy = 0;
if (dy > 100) dy = 100;
if (dx < 20) dx = 20;
if (dx > 100) dx = 100;
curPoint.XValue = dx;
curPoint.YValues[0] = dy;
if (dy < 0) dy = 0;
if (dy > 100) dy = 100;
dymin = (dx - 60) * 1.2;
if (dy < dymin) dy = dymin;
curPoint.XValue = dx;
curPoint.YValues[0] = dy;
}
catch
{
Debug.WriteLine(e.Y);
}
}
}
}

View File

@@ -13,7 +13,9 @@
<Platforms>AnyCPU;x64</Platforms>
<SupportedOSPlatformVersion>8.0</SupportedOSPlatformVersion>
<AssemblyName>GHelper</AssemblyName>
<PlatformTarget>AnyCPU</PlatformTarget>
<PlatformTarget>x64</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AssemblyVersion>0.9.8.0</AssemblyVersion>
</PropertyGroup>
<ItemGroup>
@@ -37,6 +39,7 @@
<PackageReference Include="hidlibrary" Version="3.3.40" />
<PackageReference Include="System.Management" Version="7.0.0" />
<PackageReference Include="TaskScheduler" Version="2.10.1" />
<PackageReference Include="UToolKit" Version="1.1.0.1" />
<PackageReference Include="WinForms.DataVisualization" Version="1.7.0" />
</ItemGroup>

View File

@@ -18,12 +18,12 @@ Global
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Debug|Any CPU.ActiveCfg = Debug|x64
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Debug|Any CPU.Build.0 = Debug|x64
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Debug|x64.ActiveCfg = Release|x64
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Debug|x64.Build.0 = Release|x64
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Release|Any CPU.Build.0 = Release|Any CPU
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Release|Any CPU.ActiveCfg = Release|x64
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Release|Any CPU.Build.0 = Release|x64
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Release|x64.ActiveCfg = Release|x64
{D6138BB1-8FDB-4835-87EF-2FE41A3DD604}.Release|x64.Build.0 = Release|x64
EndGlobalSection

139
Keyboard.Designer.cs generated Normal file
View File

@@ -0,0 +1,139 @@
namespace GHelper
{
partial class Keyboard
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
groupBox1 = new GroupBox();
textM4 = new TextBox();
textM3 = new TextBox();
comboM4 = new ComboBox();
labelM4 = new Label();
comboM3 = new ComboBox();
labelM3 = new Label();
groupBox1.SuspendLayout();
SuspendLayout();
//
// groupBox1
//
groupBox1.Controls.Add(textM4);
groupBox1.Controls.Add(textM3);
groupBox1.Controls.Add(comboM4);
groupBox1.Controls.Add(labelM4);
groupBox1.Controls.Add(comboM3);
groupBox1.Controls.Add(labelM3);
groupBox1.Dock = DockStyle.Top;
groupBox1.Location = new Point(10, 10);
groupBox1.Name = "groupBox1";
groupBox1.Size = new Size(751, 196);
groupBox1.TabIndex = 0;
groupBox1.TabStop = false;
groupBox1.Text = "Key Bindings";
//
// textM4
//
textM4.Location = new Point(411, 113);
textM4.Name = "textM4";
textM4.PlaceholderText = "notepad /p \"file.txt\"";
textM4.Size = new Size(320, 39);
textM4.TabIndex = 5;
//
// textM3
//
textM3.Location = new Point(411, 54);
textM3.Name = "textM3";
textM3.PlaceholderText = "notepad /p \"file.txt\"";
textM3.Size = new Size(320, 39);
textM3.TabIndex = 4;
//
// comboM4
//
comboM4.FormattingEnabled = true;
comboM4.Items.AddRange(new object[] { "Performance Mode", "Open G-Helper window", "Custom" });
comboM4.Location = new Point(93, 112);
comboM4.Name = "comboM4";
comboM4.Size = new Size(312, 40);
comboM4.TabIndex = 3;
//
// labelM4
//
labelM4.AutoSize = true;
labelM4.Location = new Point(25, 116);
labelM4.Name = "labelM4";
labelM4.Size = new Size(54, 32);
labelM4.TabIndex = 2;
labelM4.Text = "M4:";
//
// comboM3
//
comboM3.FormattingEnabled = true;
comboM3.Items.AddRange(new object[] { "Volume Mute", "Play / Pause", "Toggle Aura", "Custom" });
comboM3.Location = new Point(93, 54);
comboM3.Name = "comboM3";
comboM3.Size = new Size(312, 40);
comboM3.TabIndex = 1;
//
// labelM3
//
labelM3.AutoSize = true;
labelM3.Location = new Point(25, 58);
labelM3.Name = "labelM3";
labelM3.Size = new Size(54, 32);
labelM3.TabIndex = 0;
labelM3.Text = "M3:";
//
// Keyboard
//
AutoScaleDimensions = new SizeF(13F, 32F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(771, 858);
Controls.Add(groupBox1);
FormBorderStyle = FormBorderStyle.FixedSingle;
MaximizeBox = false;
MdiChildrenMinimizedAnchorBottom = false;
MinimizeBox = false;
Name = "Keyboard";
Padding = new Padding(10);
ShowIcon = false;
ShowInTaskbar = false;
Text = "Keyboard";
groupBox1.ResumeLayout(false);
groupBox1.PerformLayout();
ResumeLayout(false);
}
#endregion
private GroupBox groupBox1;
private Label labelM3;
private ComboBox comboM3;
private ComboBox comboM4;
private Label labelM4;
private TextBox textM4;
private TextBox textM3;
}
}

72
Keyboard.cs Normal file
View File

@@ -0,0 +1,72 @@
namespace GHelper
{
public partial class Keyboard : Form
{
public Keyboard()
{
InitializeComponent();
comboM3.DropDownStyle = ComboBoxStyle.DropDownList;
comboM3.SelectedIndex = 0;
comboM4.DropDownStyle = ComboBoxStyle.DropDownList;
comboM4.SelectedIndex = 0;
comboM3.SelectedValueChanged += ComboM3_SelectedValueChanged;
comboM4.SelectedValueChanged += ComboM4_SelectedValueChanged;
textM3.TextChanged += TextM3_TextChanged;
textM4.TextChanged += TextM4_TextChanged;
Shown += Keyboard_Shown;
}
private void TextM3_TextChanged(object? sender, EventArgs e)
{
if (sender is null) return;
TextBox tb = (TextBox)sender;
Program.config.setConfig("m3_custom", tb.Text);
}
private void TextM4_TextChanged(object? sender, EventArgs e)
{
if (sender is null) return;
TextBox tb = (TextBox)sender;
Program.config.setConfig("m4_custom", tb.Text);
}
private void ComboM4_SelectedValueChanged(object? sender, EventArgs e)
{
if (sender is null) return;
ComboBox cmb = (ComboBox)sender;
Program.config.setConfig("m4", cmb.SelectedIndex);
}
private void ComboM3_SelectedValueChanged(object? sender, EventArgs e)
{
if (sender is null) return;
ComboBox cmb = (ComboBox)sender;
Program.config.setConfig("m3", cmb.SelectedIndex);
}
private void Keyboard_Shown(object? sender, EventArgs e)
{
Top = Program.settingsForm.Top;
Left = Program.settingsForm.Left - Width - 5;
int m3 = Program.config.getConfig("m3");
int m4 = Program.config.getConfig("m4");
if (m3 != -1)
comboM3.SelectedIndex = m3;
if (m4 != -1)
comboM4.SelectedIndex = m4;
textM3.Text = Program.config.getConfigString("m3_custom");
textM4.Text = Program.config.getConfigString("m4_custom");
}
}
}

60
Keyboard.resx Normal file
View File

@@ -0,0 +1,60 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -4,6 +4,22 @@ using System.Runtime.InteropServices;
public class NativeMethods
{
public const int KEYEVENTF_EXTENDEDKEY = 1;
public const int KEYEVENTF_KEYUP = 2;
public const int VK_MEDIA_NEXT_TRACK = 0xB0;
public const int VK_MEDIA_PLAY_PAUSE = 0xB3;
public const int VK_MEDIA_PREV_TRACK = 0xB1;
public const int VK_VOLUME_MUTE = 0xAD;
[DllImport("user32.dll", SetLastError = true)]
public static extern void keybd_event(byte virtualKey, byte scanCode, uint flags, IntPtr extraInfo);
public static void KeyPress(int key = VK_MEDIA_PLAY_PAUSE)
{
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
}
[DllImport("user32.dll")]
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);

View File

@@ -273,22 +273,7 @@ namespace OSD
}
#region # Win32 #
internal struct PAINTSTRUCT
{
public IntPtr hdc;
public int fErase;
public Rectangle rcPaint;
public int fRestore;
public int fIncUpdate;
public int Reserved1;
public int Reserved2;
public int Reserved3;
public int Reserved4;
public int Reserved5;
public int Reserved6;
public int Reserved7;
public int Reserved8;
}
[StructLayout(LayoutKind.Sequential)]
internal struct POINT
{
@@ -362,16 +347,12 @@ namespace OSD
[DllImport("User32.dll", CharSet = CharSet.Auto)]
internal static extern bool AnimateWindow(IntPtr hWnd, uint dwTime, uint dwFlags);
[DllImport("User32.dll", CharSet = CharSet.Auto)]
internal static extern IntPtr BeginPaint(IntPtr hWnd, ref PAINTSTRUCT ps);
[DllImport("User32.dll", CharSet = CharSet.Auto)]
internal static extern bool ClientToScreen(IntPtr hWnd, ref POINT pt);
[DllImport("User32.dll", CharSet = CharSet.Auto)]
internal static extern bool DispatchMessage(ref MSG msg);
[DllImport("User32.dll", CharSet = CharSet.Auto)]
internal static extern bool DrawFocusRect(IntPtr hWnd, ref RECT rect);
[DllImport("User32.dll", CharSet = CharSet.Auto)]
internal static extern bool EndPaint(IntPtr hWnd, ref PAINTSTRUCT ps);
[DllImport("User32.dll", CharSet = CharSet.Auto)]
internal static extern IntPtr GetDC(IntPtr hWnd);
[DllImport("User32.dll", CharSet = CharSet.Auto)]
internal static extern IntPtr GetFocus();

View File

@@ -1,11 +1,8 @@
using Microsoft.Win32;
using System.Diagnostics;
using System.Management;
using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Text.Json;
public class AppConfig
{
@@ -124,7 +121,7 @@ namespace GHelper
public static ASUSWmi wmi = new ASUSWmi();
public static AppConfig config = new AppConfig();
public static SettingsForm settingsForm = new SettingsForm();
public static ToastForm toast = new ToastForm();
@@ -162,9 +159,31 @@ namespace GHelper
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
bool isPlugged = (System.Windows.Forms.SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online);
settingsForm.AutoGPUMode(isPlugged ? 1 : 0);
settingsForm.AutoScreen(isPlugged ? 1 : 0);
settingsForm.SetBatteryChargeLimit(config.getConfig("charge_limit"));
}
static void LaunchProcess(string fileName = "")
{
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = fileName;
start.WindowStyle = ProcessWindowStyle.Hidden;
start.CreateNoWindow = true;
try
{
Process proc = Process.Start(start);
} catch
{
Debug.WriteLine("Failed to run " + fileName);
}
}
static void WatcherEventArrived(object sender, EventArrivedEventArgs e)
{
var collection = (ManagementEventWatcher)sender;
@@ -177,14 +196,39 @@ namespace GHelper
switch (EventID)
{
case 56: // Rog button
case 174: // FN+F5
settingsForm.BeginInvoke(delegate
case 124: // M3
switch (config.getConfig("m3"))
{
settingsForm.CyclePerformanceMode();
});
case 1:
NativeMethods.KeyPress(NativeMethods.VK_MEDIA_PLAY_PAUSE);
break;
case 2:
settingsForm.BeginInvoke(settingsForm.CycleAuraMode);
break;
case 3:
LaunchProcess(config.getConfigString("m3_custom"));
break;
default:
NativeMethods.KeyPress(NativeMethods.VK_VOLUME_MUTE);
break;
}
return;
case 56: // M4 / Rog button
switch (config.getConfig("m4"))
{
case 1:
settingsForm.BeginInvoke(SettingsToggle);
break;
case 2:
LaunchProcess(config.getConfigString("m4_custom"));
break;
default:
settingsForm.BeginInvoke(settingsForm.CyclePerformanceMode);
break;
}
return;
case 174: // FN+F5
settingsForm.BeginInvoke(settingsForm.CyclePerformanceMode);
return;
case 179: // FN+F4
settingsForm.BeginInvoke(delegate
@@ -193,18 +237,22 @@ namespace GHelper
});
return;
case 87: // Battery
/*
settingsForm.BeginInvoke(delegate
{
settingsForm.AutoGPUMode(0);
settingsForm.AutoScreen(0);
});
*/
return;
case 88: // Plugged
/*
settingsForm.BeginInvoke(delegate
{
settingsForm.AutoScreen(1);
settingsForm.AutoGPUMode(1);
});
*/
return;
}
@@ -212,19 +260,22 @@ namespace GHelper
}
static void SettingsToggle()
{
if (settingsForm.Visible)
settingsForm.Hide();
else
{
settingsForm.Show();
settingsForm.Activate();
}
}
static void TrayIcon_MouseClick(object? sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left || e.Button == MouseButtons.Right)
{
if (settingsForm.Visible)
settingsForm.Hide();
else
{
settingsForm.Show();
settingsForm.Activate();
}
trayIcon.Icon = trayIcon.Icon; // refreshing icon as it get's blurred when screen resolution changes
SettingsToggle();
}
}

View File

@@ -11,7 +11,8 @@ A small utility that allows you do almost everyting you could do with Armory Cra
7. Monitor CPU temperature, fan speeds and battery discharge rate
8. **Automatically switch to Eco(iGPU)/60hz on battery** and back to Standard(GPU)/120hz modes when plugged
9. Support for M4 key / FN+F5 to cycle through performance modes (with OSD notification) and FN+F4 to cycle through keeyboard animation modes
10. Turn cpu turbo boost on/off with one checkbox to keep temps cooler
10. Basic keybindings for M3 amd M4 keys
11. Turn cpu turbo boost on/off with one checkbox to keep temps cooler
Designed and developer for Asus Zephyrus G14 2022 (with AMD Radeon iGPU and dGPU). But could and should potentially work for G14 of 2021 and 2020, G15, X FLOW, and other ROG models for relevant and supported features.
@@ -42,7 +43,6 @@ PPTs are shown for G14 2022, for other models PPTs will be different as they are
## Things still missing
1. Anime matrix control
2. Custom bindings for M1-M3 keys
## How to install

96
Settings.Designer.cs generated
View File

@@ -62,6 +62,10 @@
buttonKeyboardColor = new Button();
labelBattery = new Label();
buttonFans = new Button();
buttonKeyboard = new Button();
pictureColor = new PictureBox();
pictureColor2 = new PictureBox();
labelVersion = new Label();
((System.ComponentModel.ISupportInitialize)trackBattery).BeginInit();
((System.ComponentModel.ISupportInitialize)pictureBattery).BeginInit();
tableGPU.SuspendLayout();
@@ -71,12 +75,14 @@
((System.ComponentModel.ISupportInitialize)pictureScreen).BeginInit();
tableScreen.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
((System.ComponentModel.ISupportInitialize)pictureColor).BeginInit();
((System.ComponentModel.ISupportInitialize)pictureColor2).BeginInit();
SuspendLayout();
//
// checkStartup
//
checkStartup.AutoSize = true;
checkStartup.Location = new Point(40, 1016);
checkStartup.Location = new Point(33, 1016);
checkStartup.Margin = new Padding(4, 2, 4, 2);
checkStartup.Name = "checkStartup";
checkStartup.Size = new Size(206, 36);
@@ -105,7 +111,7 @@
//
labelBatteryTitle.AutoSize = true;
labelBatteryTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelBatteryTitle.Location = new Point(76, 870);
labelBatteryTitle.Location = new Point(78, 870);
labelBatteryTitle.Margin = new Padding(4, 0, 4, 0);
labelBatteryTitle.Name = "labelBatteryTitle";
labelBatteryTitle.Size = new Size(248, 32);
@@ -116,7 +122,7 @@
//
pictureBattery.BackgroundImage = (Image)resources.GetObject("pictureBattery.BackgroundImage");
pictureBattery.BackgroundImageLayout = ImageLayout.Zoom;
pictureBattery.Location = new Point(32, 868);
pictureBattery.Location = new Point(36, 868);
pictureBattery.Margin = new Padding(4, 2, 4, 2);
pictureBattery.Name = "pictureBattery";
pictureBattery.Size = new Size(36, 38);
@@ -199,7 +205,7 @@
//
labelGPU.AutoSize = true;
labelGPU.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelGPU.Location = new Point(76, 264);
labelGPU.Location = new Point(78, 264);
labelGPU.Margin = new Padding(4, 0, 4, 0);
labelGPU.Name = "labelGPU";
labelGPU.Size = new Size(136, 32);
@@ -210,7 +216,7 @@
//
pictureGPU.BackgroundImage = (Image)resources.GetObject("pictureGPU.BackgroundImage");
pictureGPU.BackgroundImageLayout = ImageLayout.Zoom;
pictureGPU.Location = new Point(32, 262);
pictureGPU.Location = new Point(36, 262);
pictureGPU.Margin = new Padding(4, 2, 4, 2);
pictureGPU.Name = "pictureGPU";
pictureGPU.Size = new Size(36, 38);
@@ -297,7 +303,7 @@
picturePerf.BackgroundImage = (Image)resources.GetObject("picturePerf.BackgroundImage");
picturePerf.BackgroundImageLayout = ImageLayout.Zoom;
picturePerf.InitialImage = null;
picturePerf.Location = new Point(32, 36);
picturePerf.Location = new Point(36, 36);
picturePerf.Margin = new Padding(4, 2, 4, 2);
picturePerf.Name = "picturePerf";
picturePerf.Size = new Size(36, 38);
@@ -308,7 +314,7 @@
//
labelPerf.AutoSize = true;
labelPerf.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelPerf.Location = new Point(76, 38);
labelPerf.Location = new Point(78, 38);
labelPerf.Margin = new Padding(4, 0, 4, 0);
labelPerf.Name = "labelPerf";
labelPerf.Size = new Size(234, 32);
@@ -344,7 +350,7 @@
//
pictureScreen.BackgroundImage = (Image)resources.GetObject("pictureScreen.BackgroundImage");
pictureScreen.BackgroundImageLayout = ImageLayout.Zoom;
pictureScreen.Location = new Point(32, 496);
pictureScreen.Location = new Point(36, 496);
pictureScreen.Margin = new Padding(4, 2, 4, 2);
pictureScreen.Name = "pictureScreen";
pictureScreen.Size = new Size(36, 38);
@@ -355,7 +361,7 @@
//
labelSreen.AutoSize = true;
labelSreen.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelSreen.Location = new Point(76, 496);
labelSreen.Location = new Point(78, 496);
labelSreen.Margin = new Padding(4, 0, 4, 0);
labelSreen.Name = "labelSreen";
labelSreen.Size = new Size(176, 32);
@@ -439,7 +445,7 @@
//
pictureBox1.BackgroundImage = Properties.Resources.icons8_keyboard_48;
pictureBox1.BackgroundImageLayout = ImageLayout.Zoom;
pictureBox1.Location = new Point(32, 724);
pictureBox1.Location = new Point(36, 724);
pictureBox1.Margin = new Padding(4, 2, 4, 2);
pictureBox1.Name = "pictureBox1";
pictureBox1.Size = new Size(36, 36);
@@ -450,7 +456,7 @@
//
label1.AutoSize = true;
label1.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
label1.Location = new Point(76, 724);
label1.Location = new Point(78, 724);
label1.Margin = new Padding(4, 0, 4, 0);
label1.Name = "label1";
label1.Size = new Size(210, 32);
@@ -459,15 +465,14 @@
//
// comboKeyboard
//
comboKeyboard.FlatStyle = FlatStyle.Flat;
comboKeyboard.Font = new Font("Segoe UI", 10F, FontStyle.Regular, GraphicsUnit.Point);
comboKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboKeyboard.FormattingEnabled = true;
comboKeyboard.ItemHeight = 37;
comboKeyboard.ItemHeight = 32;
comboKeyboard.Items.AddRange(new object[] { "Static", "Breathe", "Strobe", "Rainbow" });
comboKeyboard.Location = new Point(36, 777);
comboKeyboard.Location = new Point(32, 778);
comboKeyboard.Margin = new Padding(0);
comboKeyboard.Name = "comboKeyboard";
comboKeyboard.Size = new Size(200, 45);
comboKeyboard.Size = new Size(200, 40);
comboKeyboard.TabIndex = 24;
comboKeyboard.TabStop = false;
//
@@ -477,14 +482,13 @@
buttonKeyboardColor.BackColor = SystemColors.ButtonHighlight;
buttonKeyboardColor.FlatAppearance.BorderColor = Color.Red;
buttonKeyboardColor.FlatAppearance.BorderSize = 2;
buttonKeyboardColor.FlatStyle = FlatStyle.Flat;
buttonKeyboardColor.ForeColor = SystemColors.ControlText;
buttonKeyboardColor.Location = new Point(256, 775);
buttonKeyboardColor.Location = new Point(255, 774);
buttonKeyboardColor.Margin = new Padding(0);
buttonKeyboardColor.Name = "buttonKeyboardColor";
buttonKeyboardColor.Size = new Size(212, 50);
buttonKeyboardColor.Size = new Size(209, 48);
buttonKeyboardColor.TabIndex = 25;
buttonKeyboardColor.Text = "Color";
buttonKeyboardColor.Text = "Color ";
buttonKeyboardColor.UseVisualStyleBackColor = false;
//
// labelBattery
@@ -511,11 +515,55 @@
buttonFans.Text = "Fan Profile";
buttonFans.UseVisualStyleBackColor = false;
//
// buttonKeyboard
//
buttonKeyboard.Anchor = AnchorStyles.Top | AnchorStyles.Right;
buttonKeyboard.BackColor = SystemColors.ButtonFace;
buttonKeyboard.FlatAppearance.BorderSize = 0;
buttonKeyboard.Location = new Point(480, 773);
buttonKeyboard.Margin = new Padding(4, 2, 4, 2);
buttonKeyboard.Name = "buttonKeyboard";
buttonKeyboard.Size = new Size(209, 48);
buttonKeyboard.TabIndex = 29;
buttonKeyboard.Text = "Extra";
buttonKeyboard.UseVisualStyleBackColor = false;
//
// pictureColor
//
pictureColor.Location = new Point(431, 789);
pictureColor.Name = "pictureColor";
pictureColor.Size = new Size(20, 20);
pictureColor.TabIndex = 30;
pictureColor.TabStop = false;
//
// pictureColor2
//
pictureColor2.Location = new Point(405, 789);
pictureColor2.Name = "pictureColor2";
pictureColor2.Size = new Size(20, 20);
pictureColor2.TabIndex = 31;
pictureColor2.TabStop = false;
//
// labelVersion
//
labelVersion.AutoSize = true;
labelVersion.Font = new Font("Segoe UI", 9F, FontStyle.Underline, GraphicsUnit.Point);
labelVersion.ForeColor = SystemColors.ControlDark;
labelVersion.Location = new Point(34, 966);
labelVersion.Name = "labelVersion";
labelVersion.Size = new Size(44, 32);
labelVersion.TabIndex = 32;
labelVersion.Text = "v.0";
//
// SettingsForm
//
AutoScaleDimensions = new SizeF(192F, 192F);
AutoScaleMode = AutoScaleMode.Dpi;
ClientSize = new Size(730, 1086);
ClientSize = new Size(730, 1089);
Controls.Add(labelVersion);
Controls.Add(pictureColor2);
Controls.Add(pictureColor);
Controls.Add(buttonKeyboard);
Controls.Add(buttonFans);
Controls.Add(labelBattery);
Controls.Add(buttonKeyboardColor);
@@ -561,6 +609,8 @@
((System.ComponentModel.ISupportInitialize)pictureScreen).EndInit();
tableScreen.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
((System.ComponentModel.ISupportInitialize)pictureColor).EndInit();
((System.ComponentModel.ISupportInitialize)pictureColor2).EndInit();
ResumeLayout(false);
PerformLayout();
}
@@ -599,5 +649,9 @@
private Button buttonKeyboardColor;
private Label labelBattery;
private Button buttonFans;
private Button buttonKeyboard;
private PictureBox pictureColor;
private PictureBox pictureColor2;
private Label labelVersion;
}
}

View File

@@ -1,6 +1,7 @@
using System.Diagnostics;
using System.Reflection;
using System.Timers;
using System.Windows.Forms.DataVisualization.Charting;
namespace GHelper
{
@@ -17,9 +18,10 @@ namespace GHelper
static System.Timers.Timer aTimer = default!;
public string perfName;
public string perfName = "Balanced";
Fans fans;
Keyboard keyb;
public SettingsForm()
{
@@ -65,6 +67,13 @@ namespace GHelper
buttonKeyboardColor.Click += ButtonKeyboardColor_Click;
buttonFans.Click += ButtonFans_Click;
buttonKeyboard.Click += ButtonKeyboard_Click;
pictureColor.Click += PictureColor_Click;
pictureColor2.Click += PictureColor2_Click;
labelVersion.Text = "Version " + Assembly.GetExecutingAssembly().GetName().Version.ToString();
labelVersion.Click += LabelVersion_Click;
SetTimer();
@@ -72,6 +81,42 @@ namespace GHelper
}
private void LabelVersion_Click(object? sender, EventArgs e)
{
Process.Start(new ProcessStartInfo("http://github.com/seerge/g-helper/releases") { UseShellExecute = true });
}
private void PictureColor2_Click(object? sender, EventArgs e)
{
ColorDialog colorDlg = new ColorDialog();
colorDlg.AllowFullOpen = false;
colorDlg.Color = pictureColor2.BackColor;
if (colorDlg.ShowDialog() == DialogResult.OK)
{
SetAuraColor(color2: colorDlg.Color);
}
}
private void PictureColor_Click(object? sender, EventArgs e)
{
buttonKeyboardColor.PerformClick();
}
private void ButtonKeyboard_Click(object? sender, EventArgs e)
{
if (keyb == null || keyb.Text == "")
{
keyb = new Keyboard();
keyb.Show();
}
else
{
keyb.Close();
}
}
private void ButtonFans_Click(object? sender, EventArgs e)
{
if (fans == null || fans.Text == "")
@@ -96,11 +141,11 @@ namespace GHelper
ColorDialog colorDlg = new ColorDialog();
colorDlg.AllowFullOpen = false;
colorDlg.Color = but.FlatAppearance.BorderColor;
colorDlg.Color = pictureColor.BackColor;
if (colorDlg.ShowDialog() == DialogResult.OK)
{
SetAuraColor(colorDlg.Color);
SetAuraColor(color1: colorDlg.Color);
}
}
@@ -108,9 +153,12 @@ namespace GHelper
{
int mode = Program.config.getConfig("aura_mode");
int colorCode = Program.config.getConfig("aura_color");
int colorCode2 = Program.config.getConfig("aura_color2");
int speed = Program.config.getConfig("aura_speed");
Color color = Color.FromArgb(255, 255, 255);
Color color2 = Color.FromArgb(0, 0, 0);
if (mode == -1)
mode = 0;
@@ -118,8 +166,10 @@ namespace GHelper
if (colorCode != -1)
color = Color.FromArgb(colorCode);
if (colorCode2 != -1)
color2 = Color.FromArgb(colorCode2);
SetAuraColor(color, false);
SetAuraColor(color, color2, false);
SetAuraMode(mode, false);
Aura.Mode = mode;
@@ -127,15 +177,27 @@ namespace GHelper
}
public void SetAuraColor(Color color, bool apply = true)
public void SetAuraColor(Color? color1 = null, Color? color2 = null, bool apply = true)
{
Aura.Color1 = color;
Program.config.setConfig("aura_color", color.ToArgb());
if (color1 is not null)
{
Aura.Color1 = (Color)color1;
Program.config.setConfig("aura_color", Aura.Color1.ToArgb());
}
if (color2 is not null)
{
Aura.Color2 = (Color)color2;
Program.config.setConfig("aura_color2", Aura.Color2.ToArgb());
}
if (apply)
Aura.ApplyAura();
buttonKeyboardColor.FlatAppearance.BorderColor = color;
pictureColor.BackColor = Aura.Color1;
pictureColor2.BackColor = Aura.Color2;
}
public void SetAuraMode(int mode = 0, bool apply = true)
@@ -145,8 +207,11 @@ namespace GHelper
if (mode > 3) mode = 0;
pictureColor2.Visible = (mode == Aura.Breathe);
if (Aura.Mode == mode) return; // same mode
Aura.Mode = mode;
Program.config.setConfig("aura_mode", mode);
@@ -181,7 +246,7 @@ namespace GHelper
CheckBox chk = (CheckBox)sender;
if (chk.Checked)
NativeMethods.SetCPUBoost(3);
NativeMethods.SetCPUBoost(2);
else
NativeMethods.SetCPUBoost(0);
}
@@ -421,17 +486,19 @@ namespace GHelper
if (fans != null && fans.Text != "")
fans.LoadFans();
if (notify) {
if (notify)
{
try
{
Program.toast.RunToast(perfName);
} catch
}
catch
{
Debug.WriteLine("Toast error");
}
}
}
}
public void CyclePerformanceMode()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

After

Width:  |  Height:  |  Size: 2.3 MiB