mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
75 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d1cceda2ab | ||
|
|
381b4dd3e8 | ||
|
|
a99dcbf445 | ||
|
|
4751383a3a | ||
|
|
06320afcb3 | ||
|
|
0eb6209eda | ||
|
|
a342cab9a6 | ||
|
|
12c6482f61 | ||
|
|
20933bfd8d | ||
|
|
c66c8e9030 | ||
|
|
14b677514b | ||
|
|
ce266ffe07 | ||
|
|
f29410fa2a | ||
|
|
7117b58746 | ||
|
|
0456fa013c | ||
|
|
6a4aa4e138 | ||
|
|
d75067b40c | ||
|
|
de45038911 | ||
|
|
e23c727e79 | ||
|
|
2f2c534278 | ||
|
|
bdbec79aba | ||
|
|
e3d0a04fa4 | ||
|
|
4dd7d41cf4 | ||
|
|
8370217cef | ||
|
|
63c1829edd | ||
|
|
69e5a0448e | ||
|
|
b74b9ae257 | ||
|
|
71e007d8ad | ||
|
|
6896166c3c | ||
|
|
fd89d9c13a | ||
|
|
8bec153da8 | ||
|
|
7d968f5f08 | ||
|
|
ac5fc3f96e | ||
|
|
8590d0301a | ||
|
|
8804d19567 | ||
|
|
57ce0631a3 | ||
|
|
b796f9f9d4 | ||
|
|
f39563fcdf | ||
|
|
853d0c231d | ||
|
|
df3324d641 | ||
|
|
75c90ee155 | ||
|
|
4015e0a7f7 | ||
|
|
2a82e41894 | ||
|
|
a5541dfe10 | ||
|
|
fd3a139c47 | ||
|
|
608b8571d4 | ||
|
|
82a39bcfa1 | ||
|
|
f9ccd92dc6 | ||
|
|
1fadc6c31e | ||
|
|
0b7dd42a5d | ||
|
|
51cd700e25 | ||
|
|
7484253007 | ||
|
|
f5cf768017 | ||
|
|
ca57669596 | ||
|
|
35f1a3a25b | ||
|
|
b7afe94b8d | ||
|
|
97c97e8e19 | ||
|
|
ffc5a6f641 | ||
|
|
f87e6c5c88 | ||
|
|
22f136fe9e | ||
|
|
6d85376734 | ||
|
|
62512a7c05 | ||
|
|
7a6301328c | ||
|
|
3c6c4d122d | ||
|
|
0142c25929 | ||
|
|
27bc7339d8 | ||
|
|
2985fe378c | ||
|
|
71daba25a8 | ||
|
|
16feeb05a1 | ||
|
|
c69bf65c84 | ||
|
|
56ea434626 | ||
|
|
432508cfc5 | ||
|
|
deb515066d | ||
|
|
ac19a822f7 | ||
|
|
41caaefc97 |
115
app/ASUSWmi.cs
115
app/ASUSWmi.cs
@@ -1,4 +1,7 @@
|
|||||||
using System.Management;
|
using System.Diagnostics;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.IO.Pipes;
|
||||||
|
using System.Management;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
public class ASUSWmi
|
public class ASUSWmi
|
||||||
@@ -13,6 +16,7 @@ public class ASUSWmi
|
|||||||
public const uint UniversalControl = 0x00100021;
|
public const uint UniversalControl = 0x00100021;
|
||||||
public const int KB_Light_Up = 0xc4;
|
public const int KB_Light_Up = 0xc4;
|
||||||
public const int KB_Light_Down = 0xc5;
|
public const int KB_Light_Down = 0xc5;
|
||||||
|
public const int Touchpad_Toggle = 0x6B;
|
||||||
|
|
||||||
public const int ChargerMode = 0x0012006C;
|
public const int ChargerMode = 0x0012006C;
|
||||||
|
|
||||||
@@ -57,6 +61,13 @@ public class ASUSWmi
|
|||||||
public const int TUF_KB = 0x00100056;
|
public const int TUF_KB = 0x00100056;
|
||||||
public const int TUF_KB_STATE = 0x00100057;
|
public const int TUF_KB_STATE = 0x00100057;
|
||||||
|
|
||||||
|
public const int TabletState = 0x00060077;
|
||||||
|
|
||||||
|
public const int Tablet_Notebook = 0;
|
||||||
|
public const int Tablet_Tablet = 1;
|
||||||
|
public const int Tablet_Tent = 2;
|
||||||
|
public const int Tablet_Rotated = 3;
|
||||||
|
|
||||||
public const int PerformanceBalanced = 0;
|
public const int PerformanceBalanced = 0;
|
||||||
public const int PerformanceTurbo = 1;
|
public const int PerformanceTurbo = 1;
|
||||||
public const int PerformanceSilent = 2;
|
public const int PerformanceSilent = 2;
|
||||||
@@ -116,6 +127,42 @@ public class ASUSWmi
|
|||||||
|
|
||||||
private IntPtr handle;
|
private IntPtr handle;
|
||||||
|
|
||||||
|
// Event handling attempt
|
||||||
|
|
||||||
|
[DllImport("kernel32.dll", SetLastError = true)]
|
||||||
|
private static extern IntPtr CreateEvent(IntPtr lpEventAttributes, bool bManualReset, bool bInitialState, string lpName);
|
||||||
|
|
||||||
|
[DllImport("kernel32.dll", SetLastError = true)]
|
||||||
|
private static extern bool WaitForSingleObject(IntPtr hHandle, int dwMilliseconds);
|
||||||
|
|
||||||
|
private IntPtr eventHandle;
|
||||||
|
|
||||||
|
// still works only with asus optimization service on , if someone knows how to get ACPI events from asus without that - let me know
|
||||||
|
public void RunListener()
|
||||||
|
{
|
||||||
|
|
||||||
|
eventHandle = CreateEvent(IntPtr.Zero, false, false, "ATK Event");
|
||||||
|
|
||||||
|
byte[] outBuffer = new byte[16];
|
||||||
|
byte[] data = new byte[8];
|
||||||
|
bool result;
|
||||||
|
|
||||||
|
data[0] = BitConverter.GetBytes(eventHandle.ToInt32())[0];
|
||||||
|
data[1] = BitConverter.GetBytes(eventHandle.ToInt32())[1];
|
||||||
|
|
||||||
|
result = Control (0x222400, data, outBuffer);
|
||||||
|
Debug.WriteLine(result + ":" + BitConverter.ToString(data) + "|" + BitConverter.ToString(outBuffer));
|
||||||
|
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
WaitForSingleObject(eventHandle, Timeout.Infinite);
|
||||||
|
Control(0x222408, new byte[0], outBuffer);
|
||||||
|
int code = BitConverter.ToInt32(outBuffer);
|
||||||
|
Logger.WriteLine("Code: " + code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public ASUSWmi()
|
public ASUSWmi()
|
||||||
{
|
{
|
||||||
handle = CreateFile(
|
handle = CreateFile(
|
||||||
@@ -127,16 +174,18 @@ public class ASUSWmi
|
|||||||
FILE_ATTRIBUTE_NORMAL,
|
FILE_ATTRIBUTE_NORMAL,
|
||||||
IntPtr.Zero
|
IntPtr.Zero
|
||||||
);
|
);
|
||||||
|
|
||||||
if (handle == new IntPtr(-1))
|
if (handle == new IntPtr(-1))
|
||||||
{
|
{
|
||||||
throw new Exception("Can't connect to ACPI");
|
throw new Exception("Can't connect to ACPI");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Control(uint dwIoControlCode, byte[] lpInBuffer, byte[] lpOutBuffer)
|
public bool Control(uint dwIoControlCode, byte[] lpInBuffer, byte[] lpOutBuffer)
|
||||||
{
|
{
|
||||||
uint lpBytesReturned = 0;
|
uint lpBytesReturned = 0;
|
||||||
bool result = DeviceIoControl(
|
return DeviceIoControl(
|
||||||
handle,
|
handle,
|
||||||
dwIoControlCode,
|
dwIoControlCode,
|
||||||
lpInBuffer,
|
lpInBuffer,
|
||||||
@@ -218,6 +267,20 @@ public class ASUSWmi
|
|||||||
return CallMethod(DSTS, args);
|
return CallMethod(DSTS, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int SetGPUEco(int eco)
|
||||||
|
{
|
||||||
|
int ecoFlag = DeviceGet(GPUEco);
|
||||||
|
if (ecoFlag < 0) return -1;
|
||||||
|
|
||||||
|
if (ecoFlag == 1 && eco == 0)
|
||||||
|
return DeviceSet(GPUEco, eco, "GPUEco");
|
||||||
|
|
||||||
|
if (ecoFlag == 0 && eco == 1)
|
||||||
|
return DeviceSet(GPUEco, eco, "GPUEco");
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public int SetFanCurve(int device, byte[] curve)
|
public int SetFanCurve(int device, byte[] curve)
|
||||||
{
|
{
|
||||||
@@ -228,9 +291,7 @@ public class ASUSWmi
|
|||||||
int result;
|
int result;
|
||||||
|
|
||||||
for (int i = 8; i < curve.Length; i++)
|
for (int i = 8; i < curve.Length; i++)
|
||||||
{
|
|
||||||
curve[i] = Math.Max((byte)0, Math.Min((byte)99, curve[i])); // it seems to be a bug, when some old model's bios can go nuts if fan is set to 100%
|
curve[i] = Math.Max((byte)0, Math.Min((byte)99, curve[i])); // it seems to be a bug, when some old model's bios can go nuts if fan is set to 100%
|
||||||
}
|
|
||||||
|
|
||||||
switch (device)
|
switch (device)
|
||||||
{
|
{
|
||||||
@@ -272,6 +333,47 @@ public class ASUSWmi
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static bool IsEmptyCurve(byte[] curve) {
|
||||||
|
return curve.Length != 16 || curve.All(singleByte => singleByte == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] FixFanCurve(byte[] curve)
|
||||||
|
{
|
||||||
|
if (curve.Length != 16) throw new Exception("Incorrect curve");
|
||||||
|
|
||||||
|
var points = new Dictionary<byte, byte>();
|
||||||
|
for (int i = 0; i < 8; i++) points[curve[i]] = curve[i+8];
|
||||||
|
|
||||||
|
var pointsFixed = new Dictionary<byte, byte>();
|
||||||
|
bool fix = false;
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
foreach (var pair in points.OrderBy(x => x.Key))
|
||||||
|
{
|
||||||
|
if (count == 0 && pair.Key >= 40)
|
||||||
|
{
|
||||||
|
fix = true;
|
||||||
|
pointsFixed.Add(20, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count != 3 || !fix)
|
||||||
|
pointsFixed.Add(pair.Key, pair.Value);
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
count = 0;
|
||||||
|
foreach (var pair in pointsFixed.OrderBy(x => x.Key))
|
||||||
|
{
|
||||||
|
curve[count] =pair.Key;
|
||||||
|
curve[count+8] = pair.Value;
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return curve;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void TUFKeyboardBrightness(int brightness)
|
public void TUFKeyboardBrightness(int brightness)
|
||||||
{
|
{
|
||||||
int param = 0x80 | (brightness & 0x7F);
|
int param = 0x80 | (brightness & 0x7F);
|
||||||
@@ -321,7 +423,8 @@ public class ASUSWmi
|
|||||||
watcher.Scope = new ManagementScope("root\\wmi");
|
watcher.Scope = new ManagementScope("root\\wmi");
|
||||||
watcher.Query = new WqlEventQuery("SELECT * FROM AsusAtkWmiEvent");
|
watcher.Query = new WqlEventQuery("SELECT * FROM AsusAtkWmiEvent");
|
||||||
watcher.Start();
|
watcher.Start();
|
||||||
} catch
|
}
|
||||||
|
catch
|
||||||
{
|
{
|
||||||
Logger.WriteLine("Can't connect to ASUS WMI events");
|
Logger.WriteLine("Can't connect to ASUS WMI events");
|
||||||
}
|
}
|
||||||
|
|||||||
299
app/AnimeMatrix/AniMatrix.cs
Normal file
299
app/AnimeMatrix/AniMatrix.cs
Normal file
@@ -0,0 +1,299 @@
|
|||||||
|
using NAudio.CoreAudioApi;
|
||||||
|
using NAudio.Wave;
|
||||||
|
using Starlight.AnimeMatrix;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using System.Timers;
|
||||||
|
|
||||||
|
namespace GHelper.AnimeMatrix
|
||||||
|
{
|
||||||
|
|
||||||
|
public class AniMatrix
|
||||||
|
{
|
||||||
|
static System.Timers.Timer matrixTimer = default!;
|
||||||
|
static AnimeMatrixDevice mat;
|
||||||
|
|
||||||
|
static double[] AudioValues;
|
||||||
|
static WasapiCapture AudioDevice;
|
||||||
|
|
||||||
|
public static bool IsValid => mat != null;
|
||||||
|
|
||||||
|
private static long lastPresent;
|
||||||
|
private static List<double> maxes = new List<double>();
|
||||||
|
|
||||||
|
public AniMatrix()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
mat = new AnimeMatrixDevice();
|
||||||
|
matrixTimer = new System.Timers.Timer(100);
|
||||||
|
matrixTimer.Elapsed += MatrixTimer_Elapsed;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
mat.Dispose();
|
||||||
|
mat = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetMatrix()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!IsValid) return;
|
||||||
|
|
||||||
|
int brightness = Program.config.getConfig("matrix_brightness");
|
||||||
|
int running = Program.config.getConfig("matrix_running");
|
||||||
|
|
||||||
|
bool auto = Program.config.getConfig("matrix_auto") == 1;
|
||||||
|
|
||||||
|
if (brightness < 0) brightness = 0;
|
||||||
|
if (running < 0) running = 0;
|
||||||
|
|
||||||
|
BuiltInAnimation animation = new BuiltInAnimation(
|
||||||
|
(BuiltInAnimation.Running)running,
|
||||||
|
BuiltInAnimation.Sleeping.Starfield,
|
||||||
|
BuiltInAnimation.Shutdown.SeeYa,
|
||||||
|
BuiltInAnimation.Startup.StaticEmergence
|
||||||
|
);
|
||||||
|
|
||||||
|
StopMatrixTimer();
|
||||||
|
StopMatrixAudio();
|
||||||
|
|
||||||
|
mat.SetProvider();
|
||||||
|
|
||||||
|
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online))
|
||||||
|
{
|
||||||
|
mat.SetDisplayState(false);
|
||||||
|
Logger.WriteLine("Matrix Off");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mat.SetDisplayState(true);
|
||||||
|
mat.SetBrightness((BrightnessMode)brightness);
|
||||||
|
|
||||||
|
switch (running)
|
||||||
|
{
|
||||||
|
case 2:
|
||||||
|
SetMatrixPicture(Program.config.getConfigString("matrix_picture"));
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
StartMatrixTimer(1000);
|
||||||
|
Logger.WriteLine("Matrix Clock");
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
SetMatrixAudio();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
mat.SetBuiltInAnimation(true, animation);
|
||||||
|
Logger.WriteLine("Matrix builtin " + animation.AsByte);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//mat.SetBrightness((BrightnessMode)brightness);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
private static void StartMatrixTimer(int interval = 100)
|
||||||
|
{
|
||||||
|
matrixTimer.Interval = interval;
|
||||||
|
matrixTimer.Enabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void StopMatrixTimer()
|
||||||
|
{
|
||||||
|
matrixTimer.Enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static void MatrixTimer_Elapsed(object? sender, ElapsedEventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsValid) return;
|
||||||
|
|
||||||
|
switch (Program.config.getConfig("matrix_running"))
|
||||||
|
{
|
||||||
|
case 2:
|
||||||
|
mat.PresentNextFrame();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
mat.PresentClock();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void StopMatrixAudio()
|
||||||
|
{
|
||||||
|
if (AudioDevice is not null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
AudioDevice.StopRecording();
|
||||||
|
AudioDevice.Dispose();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetMatrixAudio()
|
||||||
|
{
|
||||||
|
if (!IsValid) return;
|
||||||
|
|
||||||
|
mat.SetBuiltInAnimation(false);
|
||||||
|
StopMatrixTimer();
|
||||||
|
StopMatrixAudio();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var enumerator = new MMDeviceEnumerator())
|
||||||
|
using (MMDevice device = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Console))
|
||||||
|
{
|
||||||
|
AudioDevice = new WasapiLoopbackCapture(device);
|
||||||
|
WaveFormat fmt = AudioDevice.WaveFormat;
|
||||||
|
|
||||||
|
AudioValues = new double[fmt.SampleRate / 1000];
|
||||||
|
AudioDevice.DataAvailable += WaveIn_DataAvailable;
|
||||||
|
AudioDevice.StartRecording();
|
||||||
|
Logger.WriteLine("Matrix Audio");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WaveIn_DataAvailable(object? sender, WaveInEventArgs e)
|
||||||
|
{
|
||||||
|
int bytesPerSamplePerChannel = AudioDevice.WaveFormat.BitsPerSample / 8;
|
||||||
|
int bytesPerSample = bytesPerSamplePerChannel * AudioDevice.WaveFormat.Channels;
|
||||||
|
int bufferSampleCount = e.Buffer.Length / bytesPerSample;
|
||||||
|
|
||||||
|
if (bufferSampleCount >= AudioValues.Length)
|
||||||
|
{
|
||||||
|
bufferSampleCount = AudioValues.Length;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bytesPerSamplePerChannel == 2 && AudioDevice.WaveFormat.Encoding == WaveFormatEncoding.Pcm)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < bufferSampleCount; i++)
|
||||||
|
AudioValues[i] = BitConverter.ToInt16(e.Buffer, i * bytesPerSample);
|
||||||
|
}
|
||||||
|
else if (bytesPerSamplePerChannel == 4 && AudioDevice.WaveFormat.Encoding == WaveFormatEncoding.Pcm)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < bufferSampleCount; i++)
|
||||||
|
AudioValues[i] = BitConverter.ToInt32(e.Buffer, i * bytesPerSample);
|
||||||
|
}
|
||||||
|
else if (bytesPerSamplePerChannel == 4 && AudioDevice.WaveFormat.Encoding == WaveFormatEncoding.IeeeFloat)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < bufferSampleCount; i++)
|
||||||
|
AudioValues[i] = BitConverter.ToSingle(e.Buffer, i * bytesPerSample);
|
||||||
|
}
|
||||||
|
|
||||||
|
double[] paddedAudio = FftSharp.Pad.ZeroPad(AudioValues);
|
||||||
|
double[] fftMag = FftSharp.Transform.FFTmagnitude(paddedAudio);
|
||||||
|
|
||||||
|
PresentAudio(fftMag);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DrawBar(int pos, double h)
|
||||||
|
{
|
||||||
|
int dx = pos * 2;
|
||||||
|
int dy = 20;
|
||||||
|
|
||||||
|
byte color;
|
||||||
|
|
||||||
|
for (int y = 0; y < h - (h % 2); y++)
|
||||||
|
for (int x = 0; x < 2 - (y % 2); x++)
|
||||||
|
{
|
||||||
|
//color = (byte)(Math.Min(1,(h - y - 2)*2) * 255);
|
||||||
|
mat.SetLedPlanar(x + dx, dy + y, (byte)(h * 255 / 30));
|
||||||
|
mat.SetLedPlanar(x + dx, dy - y, 255);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PresentAudio(double[] audio)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastPresent) < 70) return;
|
||||||
|
lastPresent = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||||
|
|
||||||
|
mat.Clear();
|
||||||
|
|
||||||
|
int size = 20;
|
||||||
|
double[] bars = new double[size];
|
||||||
|
double max = 2, maxAverage;
|
||||||
|
|
||||||
|
for (int i = 0; i < size; i++)
|
||||||
|
{
|
||||||
|
bars[i] = Math.Sqrt(audio[i] * 10000);
|
||||||
|
if (bars[i] > max) max = bars[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
maxes.Add(max);
|
||||||
|
if (maxes.Count > 20) maxes.RemoveAt(0);
|
||||||
|
maxAverage = maxes.Average();
|
||||||
|
|
||||||
|
for (int i = 0; i < size; i++) DrawBar(20 - i, bars[i]*20/maxAverage);
|
||||||
|
|
||||||
|
mat.Present();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void SetMatrixPicture(string fileName)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!IsValid) return;
|
||||||
|
StopMatrixTimer();
|
||||||
|
|
||||||
|
Image image;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var fs = new FileStream(fileName, FileMode.Open))
|
||||||
|
{
|
||||||
|
var ms = new MemoryStream();
|
||||||
|
fs.CopyTo(ms);
|
||||||
|
ms.Position = 0;
|
||||||
|
image = Image.FromStream(ms);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Debug.WriteLine("Error loading picture");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mat.SetBuiltInAnimation(false);
|
||||||
|
mat.ClearFrames();
|
||||||
|
|
||||||
|
FrameDimension dimension = new FrameDimension(image.FrameDimensionsList[0]);
|
||||||
|
int frameCount = image.GetFrameCount(dimension);
|
||||||
|
|
||||||
|
if (frameCount > 1)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < frameCount; i++)
|
||||||
|
{
|
||||||
|
image.SelectActiveFrame(dimension, i);
|
||||||
|
mat.GenerateFrame(image);
|
||||||
|
mat.AddFrame();
|
||||||
|
}
|
||||||
|
|
||||||
|
StartMatrixTimer();
|
||||||
|
Logger.WriteLine("Matrix GIF " + fileName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mat.GenerateFrame(image);
|
||||||
|
mat.Present();
|
||||||
|
Logger.WriteLine("Matrix " + fileName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
using Starlight.Communication;
|
using Starlight.Communication;
|
||||||
using System.Drawing.Drawing2D;
|
using System.Drawing.Drawing2D;
|
||||||
|
using System.Drawing.Text;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Management;
|
using System.Management;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@@ -61,7 +62,8 @@ namespace Starlight.AnimeMatrix
|
|||||||
public enum AnimeType
|
public enum AnimeType
|
||||||
{
|
{
|
||||||
GA401,
|
GA401,
|
||||||
GA402
|
GA402,
|
||||||
|
GU604
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -88,12 +90,15 @@ namespace Starlight.AnimeMatrix
|
|||||||
//public int FullEvenRows = -1;
|
//public int FullEvenRows = -1;
|
||||||
|
|
||||||
public int dx = 0;
|
public int dx = 0;
|
||||||
|
//Shifts the whole frame to the left or right to align with the diagonal cut
|
||||||
|
public int frameShiftX = 0;
|
||||||
public int MaxColumns = 34;
|
public int MaxColumns = 34;
|
||||||
|
|
||||||
private int frameIndex = 0;
|
private int frameIndex = 0;
|
||||||
|
|
||||||
private static AnimeType _model = AnimeType.GA402;
|
private static AnimeType _model = AnimeType.GA402;
|
||||||
|
|
||||||
|
|
||||||
public AnimeMatrixDevice()
|
public AnimeMatrixDevice()
|
||||||
: base(0x0B05, 0x193B, 640)
|
: base(0x0B05, 0x193B, 640)
|
||||||
{
|
{
|
||||||
@@ -112,6 +117,16 @@ namespace Starlight.AnimeMatrix
|
|||||||
UpdatePageLength = 410;
|
UpdatePageLength = 410;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (model.Contains("GU604"))
|
||||||
|
{
|
||||||
|
_model = AnimeType.GU604;
|
||||||
|
|
||||||
|
MaxColumns = 39;
|
||||||
|
MaxRows = 92;
|
||||||
|
LedCount = 1711;
|
||||||
|
frameShiftX = -5;
|
||||||
|
UpdatePageLength = 630;
|
||||||
|
}
|
||||||
|
|
||||||
_displayBuffer = new byte[LedCount];
|
_displayBuffer = new byte[LedCount];
|
||||||
|
|
||||||
@@ -173,6 +188,9 @@ namespace Starlight.AnimeMatrix
|
|||||||
{
|
{
|
||||||
return (y + 1) / 2 - 3;
|
return (y + 1) / 2 - 3;
|
||||||
}
|
}
|
||||||
|
case AnimeType.GU604:
|
||||||
|
return (int)Math.Ceiling(Math.Max(0, y - 9) / 2F);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return (int)Math.Ceiling(Math.Max(0, y - 11) / 2F);
|
return (int)Math.Ceiling(Math.Max(0, y - 11) / 2F);
|
||||||
}
|
}
|
||||||
@@ -184,6 +202,8 @@ namespace Starlight.AnimeMatrix
|
|||||||
{
|
{
|
||||||
case AnimeType.GA401:
|
case AnimeType.GA401:
|
||||||
return 33;
|
return 33;
|
||||||
|
case AnimeType.GU604:
|
||||||
|
return 39;
|
||||||
default:
|
default:
|
||||||
return 34;
|
return 34;
|
||||||
}
|
}
|
||||||
@@ -226,7 +246,7 @@ namespace Starlight.AnimeMatrix
|
|||||||
if (!IsRowInRange(y)) return;
|
if (!IsRowInRange(y)) return;
|
||||||
|
|
||||||
if (x >= FirstX(y) && x < Width(y))
|
if (x >= FirstX(y) && x < Width(y))
|
||||||
SetLedLinear(RowToLinearAddress(y) - FirstX(y) + x + dx, value);
|
SetLedLinear(RowToLinearAddress(y) - FirstX(y) + x + dx + frameShiftX, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void WakeUp()
|
public void WakeUp()
|
||||||
@@ -325,13 +345,21 @@ namespace Starlight.AnimeMatrix
|
|||||||
public void PresentClock()
|
public void PresentClock()
|
||||||
{
|
{
|
||||||
int second = DateTime.Now.Second;
|
int second = DateTime.Now.Second;
|
||||||
|
string time;
|
||||||
|
|
||||||
if (CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern.Contains("H"))
|
if (CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern.Contains("H"))
|
||||||
PresentTextDiagonal(DateTime.Now.ToString("H" + ((second % 2 == 0) ? ":" : " ") + "mm"));
|
time = DateTime.Now.ToString("H" + ((second % 2 == 0) ? ":" : " ") + "mm");
|
||||||
else
|
else
|
||||||
PresentTextDiagonal(DateTime.Now.ToString("h" + ((second % 2 == 0) ? ":" : " ") + "mmtt"));
|
time = DateTime.Now.ToString("h" + ((second % 2 == 0) ? ":" : " ") + "mmtt");
|
||||||
|
|
||||||
|
if (_model == AnimeType.GA401)
|
||||||
|
PresentText(time);
|
||||||
|
else
|
||||||
|
PresentTextDiagonal(time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void PresentText(string text1, string text2 = "")
|
public void PresentText(string text1, string text2 = "")
|
||||||
{
|
{
|
||||||
using (Bitmap bmp = new Bitmap(MaxColumns * 3, MaxRows))
|
using (Bitmap bmp = new Bitmap(MaxColumns * 3, MaxRows))
|
||||||
@@ -341,14 +369,14 @@ namespace Starlight.AnimeMatrix
|
|||||||
g.CompositingQuality = CompositingQuality.HighQuality;
|
g.CompositingQuality = CompositingQuality.HighQuality;
|
||||||
g.SmoothingMode = SmoothingMode.AntiAlias;
|
g.SmoothingMode = SmoothingMode.AntiAlias;
|
||||||
|
|
||||||
using (Font font = new Font("Arial", 24F, GraphicsUnit.Pixel))
|
using (Font font = new Font("Consolas", 24F, FontStyle.Regular, GraphicsUnit.Pixel))
|
||||||
{
|
{
|
||||||
SizeF textSize = g.MeasureString(text1, font);
|
SizeF textSize = g.MeasureString(text1, font);
|
||||||
g.DrawString(text1, font, Brushes.White, (MaxColumns * 3 - textSize.Width) + 3, -3);
|
g.DrawString(text1, font, Brushes.White, (MaxColumns * 3 - textSize.Width) + 3, -4);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (text2.Length > 0)
|
if (text2.Length > 0)
|
||||||
using (Font font = new Font("Arial", 18F, GraphicsUnit.Pixel))
|
using (Font font = new Font("Consolas", 18F, GraphicsUnit.Pixel))
|
||||||
{
|
{
|
||||||
SizeF textSize = g.MeasureString(text2, font);
|
SizeF textSize = g.MeasureString(text2, font);
|
||||||
g.DrawString(text2, font, Brushes.White, (MaxColumns * 3 - textSize.Width) + 1, 25);
|
g.DrawString(text2, font, Brushes.White, (MaxColumns * 3 - textSize.Width) + 1, 25);
|
||||||
@@ -419,6 +447,24 @@ namespace Starlight.AnimeMatrix
|
|||||||
|
|
||||||
Clear();
|
Clear();
|
||||||
|
|
||||||
|
|
||||||
|
InstalledFontCollection installedFontCollection = new InstalledFontCollection();
|
||||||
|
|
||||||
|
|
||||||
|
string familyName;
|
||||||
|
string familyList = "";
|
||||||
|
FontFamily[] fontFamilies;
|
||||||
|
// Get the array of FontFamily objects.
|
||||||
|
fontFamilies = installedFontCollection.Families;
|
||||||
|
|
||||||
|
int count = fontFamilies.Length;
|
||||||
|
for (int j = 0; j < count; ++j)
|
||||||
|
{
|
||||||
|
familyName = fontFamilies[j].Name;
|
||||||
|
familyList = familyList + familyName;
|
||||||
|
familyList = familyList + ", ";
|
||||||
|
}
|
||||||
|
|
||||||
int maxX = (int)Math.Sqrt(MaxRows * MaxRows + MaxColumns * MaxColumns);
|
int maxX = (int)Math.Sqrt(MaxRows * MaxRows + MaxColumns * MaxColumns);
|
||||||
|
|
||||||
using (Bitmap bmp = new Bitmap(maxX, MaxRows))
|
using (Bitmap bmp = new Bitmap(maxX, MaxRows))
|
||||||
@@ -428,10 +474,10 @@ namespace Starlight.AnimeMatrix
|
|||||||
g.CompositingQuality = CompositingQuality.HighQuality;
|
g.CompositingQuality = CompositingQuality.HighQuality;
|
||||||
g.SmoothingMode = SmoothingMode.AntiAlias;
|
g.SmoothingMode = SmoothingMode.AntiAlias;
|
||||||
|
|
||||||
using (Font font = new Font("Calibri", 13F, GraphicsUnit.Pixel))
|
using (Font font = new Font("Consolas", 13F, FontStyle.Regular, GraphicsUnit.Pixel))
|
||||||
{
|
{
|
||||||
SizeF textSize = g.MeasureString(text, font);
|
SizeF textSize = g.MeasureString(text, font);
|
||||||
g.DrawString(text, font, Brushes.White, 4, 0);
|
g.DrawString(text, font, Brushes.White, 4, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
65
app/Aura.cs
65
app/Aura.cs
@@ -1,5 +1,5 @@
|
|||||||
using HidLibrary;
|
using HidLibrary;
|
||||||
using OSD;
|
using Microsoft.Win32;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace GHelper
|
namespace GHelper
|
||||||
@@ -16,14 +16,10 @@ namespace GHelper
|
|||||||
SleepKeyb = 1 << 5,
|
SleepKeyb = 1 << 5,
|
||||||
ShutdownLogo = 1 << 6,
|
ShutdownLogo = 1 << 6,
|
||||||
ShutdownKeyb = 1 << 7,
|
ShutdownKeyb = 1 << 7,
|
||||||
Unknown1 = 1 << 8,
|
|
||||||
BootBar = 1u << (7 + 2),
|
BootBar = 1u << (7 + 2),
|
||||||
AwakeBar = 1u << (7 + 3),
|
AwakeBar = 1u << (7 + 3),
|
||||||
SleepBar = 1u << (7 + 4),
|
SleepBar = 1u << (7 + 4),
|
||||||
ShutdownBar = 1u << (7 + 5),
|
ShutdownBar = 1u << (7 + 5),
|
||||||
Unknown2 = 1 << 13,
|
|
||||||
Unknown3 = 1 << 14,
|
|
||||||
Unknown4 = 1 << 15,
|
|
||||||
BootLid = 1u << (15 + 1),
|
BootLid = 1u << (15 + 1),
|
||||||
AwakeLid = 1u << (15 + 2),
|
AwakeLid = 1u << (15 + 2),
|
||||||
SleepLid = 1u << (15 + 3),
|
SleepLid = 1u << (15 + 3),
|
||||||
@@ -59,7 +55,7 @@ namespace GHelper
|
|||||||
static byte[] MESSAGE_SET = { 0x5d, 0xb5, 0, 0, 0 };
|
static byte[] MESSAGE_SET = { 0x5d, 0xb5, 0, 0, 0 };
|
||||||
static byte[] MESSAGE_APPLY = { 0x5d, 0xb4 };
|
static byte[] MESSAGE_APPLY = { 0x5d, 0xb4 };
|
||||||
|
|
||||||
static int[] deviceIds = { 0x1a30, 0x1854, 0x1869, 0x1866, 0x19b6, 0x1822, 0x1837, 0x1854, 0x184a, 0x183d, 0x8502, 0x1807, 0x17e0 };
|
static int[] deviceIds = { 0x1a30, 0x1854, 0x1869, 0x1866, 0x19b6, 0x1822, 0x1837, 0x1854, 0x184a, 0x183d, 0x8502, 0x1807, 0x17e0, 0x18c6 };
|
||||||
|
|
||||||
private static int mode = 0;
|
private static int mode = 0;
|
||||||
private static int speed = 1;
|
private static int speed = 1;
|
||||||
@@ -165,11 +161,14 @@ namespace GHelper
|
|||||||
Color2 = Color.FromArgb(colorCode);
|
Color2 = Color.FromArgb(colorCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IEnumerable<HidDevice> GetHidDevices(int[] deviceIds)
|
|
||||||
|
private static IEnumerable<HidDevice> GetHidDevices(int[] deviceIds, int minInput = 18)
|
||||||
{
|
{
|
||||||
HidDevice[] HidDeviceList = HidDevices.Enumerate(0x0b05, deviceIds).ToArray();
|
HidDevice[] HidDeviceList = HidDevices.Enumerate(0x0b05, deviceIds).ToArray();
|
||||||
foreach (HidDevice device in HidDeviceList)
|
foreach (HidDevice device in HidDeviceList)
|
||||||
if (device.IsConnected && device.Description.ToLower().Contains("hid") && device.Capabilities.FeatureReportByteLength >= 64)
|
if (device.IsConnected
|
||||||
|
&& device.Capabilities.FeatureReportByteLength > 0
|
||||||
|
&& device.Capabilities.InputReportByteLength >= minInput) //
|
||||||
yield return device;
|
yield return device;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,15 +196,17 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
byte[] msg = { 0x5d, 0xba, 0xc5, 0xc4, (byte)brightness };
|
byte[] msg = { 0x5d, 0xba, 0xc5, 0xc4, (byte)brightness };
|
||||||
|
|
||||||
foreach (HidDevice device in GetHidDevices(new int[] { 0x19b6 }))
|
var devices = GetHidDevices(deviceIds);
|
||||||
|
//Logger.WriteLine("USB-KB = " + BitConverter.ToString(msg));
|
||||||
|
|
||||||
|
foreach (HidDevice device in devices)
|
||||||
{
|
{
|
||||||
device.OpenDevice();
|
device.OpenDevice();
|
||||||
device.Write(msg);
|
device.Write(msg);
|
||||||
|
Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg));
|
||||||
device.CloseDevice();
|
device.CloseDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.WriteLine("USB-KB = " + BitConverter.ToString(msg));
|
|
||||||
|
|
||||||
if (Program.config.ContainsModel("TUF"))
|
if (Program.config.ContainsModel("TUF"))
|
||||||
Program.wmi.TUFKeyboardBrightness(brightness);
|
Program.wmi.TUFKeyboardBrightness(brightness);
|
||||||
}
|
}
|
||||||
@@ -216,18 +217,19 @@ namespace GHelper
|
|||||||
|
|
||||||
byte[] msg = AuraDev19b6Extensions.ToBytes(flags.ToArray());
|
byte[] msg = AuraDev19b6Extensions.ToBytes(flags.ToArray());
|
||||||
|
|
||||||
Debug.WriteLine(BitConverter.ToString(msg));
|
|
||||||
|
|
||||||
foreach (HidDevice device in GetHidDevices(new int[] { 0x19b6 }))
|
var devices = GetHidDevices(deviceIds);
|
||||||
|
//Logger.WriteLine("USB-KB = " + BitConverter.ToString(msg));
|
||||||
|
|
||||||
|
foreach (HidDevice device in devices)
|
||||||
{
|
{
|
||||||
device.OpenDevice();
|
device.OpenDevice();
|
||||||
device.Write(msg);
|
device.Write(msg);
|
||||||
|
Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg));
|
||||||
device.CloseDevice();
|
device.CloseDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.WriteLine("USB-KB = " + BitConverter.ToString(msg));
|
if (Program.config.ContainsModel("TUF"))
|
||||||
|
|
||||||
//if (Program.config.ContainsModel("TUF"))
|
|
||||||
Program.wmi.TUFKeyboardPower(
|
Program.wmi.TUFKeyboardPower(
|
||||||
flags.Contains(AuraDev19b6.AwakeKeyb),
|
flags.Contains(AuraDev19b6.AwakeKeyb),
|
||||||
flags.Contains(AuraDev19b6.BootKeyb),
|
flags.Contains(AuraDev19b6.BootKeyb),
|
||||||
@@ -238,7 +240,7 @@ namespace GHelper
|
|||||||
|
|
||||||
public static void ApplyXGMLight(bool status)
|
public static void ApplyXGMLight(bool status)
|
||||||
{
|
{
|
||||||
byte value = status? (byte)0x50:(byte)0;
|
byte value = status ? (byte)0x50 : (byte)0;
|
||||||
var msg = new byte[] { 0x5e, 0xc5, value };
|
var msg = new byte[] { 0x5e, 0xc5, value };
|
||||||
|
|
||||||
foreach (HidDevice device in GetHidDevices(new int[] { 0x1970 }))
|
foreach (HidDevice device in GetHidDevices(new int[] { 0x1970 }))
|
||||||
@@ -273,19 +275,46 @@ namespace GHelper
|
|||||||
|
|
||||||
byte[] msg = AuraMessage(Mode, Color1, Color2, _speed);
|
byte[] msg = AuraMessage(Mode, Color1, Color2, _speed);
|
||||||
|
|
||||||
foreach (HidDevice device in GetHidDevices(deviceIds))
|
var devices = GetHidDevices(deviceIds);
|
||||||
|
if (devices.Count() == 0)
|
||||||
|
{
|
||||||
|
Logger.WriteLine("USB-KB : not found");
|
||||||
|
GetHidDevices(deviceIds, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (HidDevice device in devices)
|
||||||
{
|
{
|
||||||
device.OpenDevice();
|
device.OpenDevice();
|
||||||
device.Write(msg);
|
device.Write(msg);
|
||||||
device.Write(MESSAGE_SET);
|
device.Write(MESSAGE_SET);
|
||||||
device.Write(MESSAGE_APPLY);
|
device.Write(MESSAGE_APPLY);
|
||||||
device.CloseDevice();
|
device.CloseDevice();
|
||||||
|
Logger.WriteLine("USB-KB " + device.Capabilities.FeatureReportByteLength + "|" + device.Capabilities.InputReportByteLength + device.Description + device.DevicePath + ":" + BitConverter.ToString(msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Program.config.ContainsModel("TUF"))
|
if (Program.config.ContainsModel("TUF"))
|
||||||
Program.wmi.TUFKeyboardRGB(Mode, Color1, _speed);
|
Program.wmi.TUFKeyboardRGB(Mode, Color1, _speed);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SetBacklightOffDelay(int value = 60)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
RegistryKey myKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\ASUS\ASUS System Control Interface\AsusOptimization\ASUS Keyboard Hotkeys", true);
|
||||||
|
if (myKey != null)
|
||||||
|
{
|
||||||
|
myKey.SetValue("TurnOffKeybdLight", value, RegistryValueKind.DWord);
|
||||||
|
myKey.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -92,7 +92,7 @@ public static class ControlHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
var chk = control as CheckBox;
|
var chk = control as CheckBox;
|
||||||
if (chk != null && chk.Padding.Left > 5)
|
if (chk != null && chk.Padding.Right > 5)
|
||||||
{
|
{
|
||||||
chk.BackColor = RForm.buttonSecond;
|
chk.BackColor = RForm.buttonSecond;
|
||||||
}
|
}
|
||||||
|
|||||||
227
app/Extra.Designer.cs
generated
227
app/Extra.Designer.cs
generated
@@ -44,6 +44,8 @@ namespace GHelper
|
|||||||
labelM3 = new Label();
|
labelM3 = new Label();
|
||||||
groupLight = new GroupBox();
|
groupLight = new GroupBox();
|
||||||
panelBacklightExtra = new Panel();
|
panelBacklightExtra = new Panel();
|
||||||
|
numericBacklightTime = new NumericUpDown();
|
||||||
|
labelBacklightTimeout = new Label();
|
||||||
labelBrightness = new Label();
|
labelBrightness = new Label();
|
||||||
trackBrightness = new TrackBar();
|
trackBrightness = new TrackBar();
|
||||||
labelSpeed = new Label();
|
labelSpeed = new Label();
|
||||||
@@ -72,14 +74,16 @@ namespace GHelper
|
|||||||
checkSleepLid = new CheckBox();
|
checkSleepLid = new CheckBox();
|
||||||
checkShutdownLid = new CheckBox();
|
checkShutdownLid = new CheckBox();
|
||||||
groupOther = new GroupBox();
|
groupOther = new GroupBox();
|
||||||
|
checkAutoApplyWindowsPowerMode = new CheckBox();
|
||||||
|
checkKeyboardAuto = new CheckBox();
|
||||||
checkUSBC = new CheckBox();
|
checkUSBC = new CheckBox();
|
||||||
checkNoOverdrive = new CheckBox();
|
checkNoOverdrive = new CheckBox();
|
||||||
checkKeyboardAuto = new CheckBox();
|
|
||||||
checkTopmost = new CheckBox();
|
checkTopmost = new CheckBox();
|
||||||
groupBindings.SuspendLayout();
|
groupBindings.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureHelp).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureHelp).BeginInit();
|
||||||
groupLight.SuspendLayout();
|
groupLight.SuspendLayout();
|
||||||
panelBacklightExtra.SuspendLayout();
|
panelBacklightExtra.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericBacklightTime).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)trackBrightness).BeginInit();
|
((System.ComponentModel.ISupportInitialize)trackBrightness).BeginInit();
|
||||||
panelXMG.SuspendLayout();
|
panelXMG.SuspendLayout();
|
||||||
tableBacklight.SuspendLayout();
|
tableBacklight.SuspendLayout();
|
||||||
@@ -101,7 +105,7 @@ namespace GHelper
|
|||||||
groupBindings.Dock = DockStyle.Top;
|
groupBindings.Dock = DockStyle.Top;
|
||||||
groupBindings.Location = new Point(10, 10);
|
groupBindings.Location = new Point(10, 10);
|
||||||
groupBindings.Name = "groupBindings";
|
groupBindings.Name = "groupBindings";
|
||||||
groupBindings.Size = new Size(848, 242);
|
groupBindings.Size = new Size(954, 242);
|
||||||
groupBindings.TabIndex = 0;
|
groupBindings.TabIndex = 0;
|
||||||
groupBindings.TabStop = false;
|
groupBindings.TabStop = false;
|
||||||
groupBindings.Text = "Key Bindings";
|
groupBindings.Text = "Key Bindings";
|
||||||
@@ -111,7 +115,7 @@ namespace GHelper
|
|||||||
pictureHelp.BackgroundImage = Resources.icons8_help_64;
|
pictureHelp.BackgroundImage = Resources.icons8_help_64;
|
||||||
pictureHelp.BackgroundImageLayout = ImageLayout.Zoom;
|
pictureHelp.BackgroundImageLayout = ImageLayout.Zoom;
|
||||||
pictureHelp.Cursor = Cursors.Hand;
|
pictureHelp.Cursor = Cursors.Hand;
|
||||||
pictureHelp.Location = new Point(744, 57);
|
pictureHelp.Location = new Point(884, 58);
|
||||||
pictureHelp.Name = "pictureHelp";
|
pictureHelp.Name = "pictureHelp";
|
||||||
pictureHelp.Size = new Size(32, 32);
|
pictureHelp.Size = new Size(32, 32);
|
||||||
pictureHelp.TabIndex = 9;
|
pictureHelp.TabIndex = 9;
|
||||||
@@ -122,7 +126,7 @@ namespace GHelper
|
|||||||
textFNF4.Location = new Point(415, 176);
|
textFNF4.Location = new Point(415, 176);
|
||||||
textFNF4.Name = "textFNF4";
|
textFNF4.Name = "textFNF4";
|
||||||
textFNF4.PlaceholderText = "action";
|
textFNF4.PlaceholderText = "action";
|
||||||
textFNF4.Size = new Size(320, 39);
|
textFNF4.Size = new Size(448, 39);
|
||||||
textFNF4.TabIndex = 8;
|
textFNF4.TabIndex = 8;
|
||||||
//
|
//
|
||||||
// comboFNF4
|
// comboFNF4
|
||||||
@@ -149,7 +153,7 @@ namespace GHelper
|
|||||||
textM4.Location = new Point(415, 113);
|
textM4.Location = new Point(415, 113);
|
||||||
textM4.Name = "textM4";
|
textM4.Name = "textM4";
|
||||||
textM4.PlaceholderText = "action";
|
textM4.PlaceholderText = "action";
|
||||||
textM4.Size = new Size(320, 39);
|
textM4.Size = new Size(448, 39);
|
||||||
textM4.TabIndex = 5;
|
textM4.TabIndex = 5;
|
||||||
//
|
//
|
||||||
// textM3
|
// textM3
|
||||||
@@ -157,7 +161,7 @@ namespace GHelper
|
|||||||
textM3.Location = new Point(415, 54);
|
textM3.Location = new Point(415, 54);
|
||||||
textM3.Name = "textM3";
|
textM3.Name = "textM3";
|
||||||
textM3.PlaceholderText = "notepad /p \"file.txt\"";
|
textM3.PlaceholderText = "notepad /p \"file.txt\"";
|
||||||
textM3.Size = new Size(320, 39);
|
textM3.Size = new Size(448, 39);
|
||||||
textM3.TabIndex = 4;
|
textM3.TabIndex = 4;
|
||||||
//
|
//
|
||||||
// comboM4
|
// comboM4
|
||||||
@@ -209,14 +213,15 @@ namespace GHelper
|
|||||||
groupLight.Dock = DockStyle.Top;
|
groupLight.Dock = DockStyle.Top;
|
||||||
groupLight.Location = new Point(10, 252);
|
groupLight.Location = new Point(10, 252);
|
||||||
groupLight.Name = "groupLight";
|
groupLight.Name = "groupLight";
|
||||||
groupLight.Size = new Size(848, 475);
|
groupLight.Size = new Size(954, 516);
|
||||||
groupLight.TabIndex = 1;
|
groupLight.TabIndex = 1;
|
||||||
groupLight.TabStop = false;
|
groupLight.TabStop = false;
|
||||||
groupLight.Text = "Keyboard Backlight";
|
groupLight.Text = "Keyboard Backlight";
|
||||||
//
|
//
|
||||||
// panelBacklightExtra
|
// panelBacklightExtra
|
||||||
//
|
//
|
||||||
panelBacklightExtra.AutoSize = true;
|
panelBacklightExtra.Controls.Add(numericBacklightTime);
|
||||||
|
panelBacklightExtra.Controls.Add(labelBacklightTimeout);
|
||||||
panelBacklightExtra.Controls.Add(labelBrightness);
|
panelBacklightExtra.Controls.Add(labelBrightness);
|
||||||
panelBacklightExtra.Controls.Add(trackBrightness);
|
panelBacklightExtra.Controls.Add(trackBrightness);
|
||||||
panelBacklightExtra.Controls.Add(labelSpeed);
|
panelBacklightExtra.Controls.Add(labelSpeed);
|
||||||
@@ -224,33 +229,48 @@ namespace GHelper
|
|||||||
panelBacklightExtra.Dock = DockStyle.Top;
|
panelBacklightExtra.Dock = DockStyle.Top;
|
||||||
panelBacklightExtra.Location = new Point(3, 319);
|
panelBacklightExtra.Location = new Point(3, 319);
|
||||||
panelBacklightExtra.Name = "panelBacklightExtra";
|
panelBacklightExtra.Name = "panelBacklightExtra";
|
||||||
panelBacklightExtra.Size = new Size(842, 153);
|
panelBacklightExtra.Size = new Size(948, 194);
|
||||||
panelBacklightExtra.TabIndex = 43;
|
panelBacklightExtra.TabIndex = 43;
|
||||||
//
|
//
|
||||||
|
// numericBacklightTime
|
||||||
|
//
|
||||||
|
numericBacklightTime.Location = new Point(655, 133);
|
||||||
|
numericBacklightTime.Maximum = new decimal(new int[] { 3600, 0, 0, 0 });
|
||||||
|
numericBacklightTime.Name = "numericBacklightTime";
|
||||||
|
numericBacklightTime.Size = new Size(240, 39);
|
||||||
|
numericBacklightTime.TabIndex = 47;
|
||||||
|
//
|
||||||
|
// labelBacklightTimeout
|
||||||
|
//
|
||||||
|
labelBacklightTimeout.Location = new Point(13, 135);
|
||||||
|
labelBacklightTimeout.Name = "labelBacklightTimeout";
|
||||||
|
labelBacklightTimeout.Size = new Size(636, 45);
|
||||||
|
labelBacklightTimeout.TabIndex = 46;
|
||||||
|
labelBacklightTimeout.Text = "Seconds to turn off backlight on battery";
|
||||||
|
//
|
||||||
// labelBrightness
|
// labelBrightness
|
||||||
//
|
//
|
||||||
labelBrightness.Location = new Point(13, 76);
|
labelBrightness.Location = new Point(13, 75);
|
||||||
labelBrightness.Name = "labelBrightness";
|
labelBrightness.Name = "labelBrightness";
|
||||||
labelBrightness.Size = new Size(197, 49);
|
labelBrightness.Size = new Size(336, 43);
|
||||||
labelBrightness.TabIndex = 41;
|
labelBrightness.TabIndex = 41;
|
||||||
labelBrightness.Text = "Brightness";
|
labelBrightness.Text = "Brightness";
|
||||||
//
|
//
|
||||||
// trackBrightness
|
// trackBrightness
|
||||||
//
|
//
|
||||||
trackBrightness.Location = new Point(216, 60);
|
trackBrightness.LargeChange = 1;
|
||||||
|
trackBrightness.Location = new Point(355, 60);
|
||||||
trackBrightness.Maximum = 3;
|
trackBrightness.Maximum = 3;
|
||||||
trackBrightness.Name = "trackBrightness";
|
trackBrightness.Name = "trackBrightness";
|
||||||
trackBrightness.Size = new Size(600, 90);
|
trackBrightness.Size = new Size(558, 90);
|
||||||
trackBrightness.TabIndex = 42;
|
trackBrightness.TabIndex = 42;
|
||||||
trackBrightness.TickStyle = TickStyle.TopLeft;
|
trackBrightness.TickStyle = TickStyle.TopLeft;
|
||||||
//
|
//
|
||||||
// labelSpeed
|
// labelSpeed
|
||||||
//
|
//
|
||||||
labelSpeed.AutoSize = true;
|
|
||||||
labelSpeed.Location = new Point(13, 15);
|
labelSpeed.Location = new Point(13, 15);
|
||||||
labelSpeed.MaximumSize = new Size(200, 0);
|
|
||||||
labelSpeed.Name = "labelSpeed";
|
labelSpeed.Name = "labelSpeed";
|
||||||
labelSpeed.Size = new Size(198, 32);
|
labelSpeed.Size = new Size(538, 40);
|
||||||
labelSpeed.TabIndex = 44;
|
labelSpeed.TabIndex = 44;
|
||||||
labelSpeed.Text = "Animation Speed";
|
labelSpeed.Text = "Animation Speed";
|
||||||
//
|
//
|
||||||
@@ -263,7 +283,7 @@ namespace GHelper
|
|||||||
comboKeyboardSpeed.FormattingEnabled = true;
|
comboKeyboardSpeed.FormattingEnabled = true;
|
||||||
comboKeyboardSpeed.ItemHeight = 32;
|
comboKeyboardSpeed.ItemHeight = 32;
|
||||||
comboKeyboardSpeed.Items.AddRange(new object[] { "Slow", "Normal", "Fast" });
|
comboKeyboardSpeed.Items.AddRange(new object[] { "Slow", "Normal", "Fast" });
|
||||||
comboKeyboardSpeed.Location = new Point(220, 12);
|
comboKeyboardSpeed.Location = new Point(607, 15);
|
||||||
comboKeyboardSpeed.Margin = new Padding(4, 10, 4, 8);
|
comboKeyboardSpeed.Margin = new Padding(4, 10, 4, 8);
|
||||||
comboKeyboardSpeed.Name = "comboKeyboardSpeed";
|
comboKeyboardSpeed.Name = "comboKeyboardSpeed";
|
||||||
comboKeyboardSpeed.Size = new Size(291, 40);
|
comboKeyboardSpeed.Size = new Size(291, 40);
|
||||||
@@ -276,7 +296,7 @@ namespace GHelper
|
|||||||
panelXMG.Dock = DockStyle.Top;
|
panelXMG.Dock = DockStyle.Top;
|
||||||
panelXMG.Location = new Point(3, 261);
|
panelXMG.Location = new Point(3, 261);
|
||||||
panelXMG.Name = "panelXMG";
|
panelXMG.Name = "panelXMG";
|
||||||
panelXMG.Size = new Size(842, 58);
|
panelXMG.Size = new Size(948, 58);
|
||||||
panelXMG.TabIndex = 42;
|
panelXMG.TabIndex = 42;
|
||||||
//
|
//
|
||||||
// checkXMG
|
// checkXMG
|
||||||
@@ -328,247 +348,269 @@ namespace GHelper
|
|||||||
tableBacklight.RowStyles.Add(new RowStyle());
|
tableBacklight.RowStyles.Add(new RowStyle());
|
||||||
tableBacklight.RowStyles.Add(new RowStyle());
|
tableBacklight.RowStyles.Add(new RowStyle());
|
||||||
tableBacklight.RowStyles.Add(new RowStyle());
|
tableBacklight.RowStyles.Add(new RowStyle());
|
||||||
tableBacklight.Size = new Size(842, 226);
|
tableBacklight.Size = new Size(948, 226);
|
||||||
tableBacklight.TabIndex = 41;
|
tableBacklight.TabIndex = 41;
|
||||||
//
|
//
|
||||||
// labelBacklight
|
// labelBacklight
|
||||||
//
|
//
|
||||||
labelBacklight.AutoSize = true;
|
labelBacklight.Dock = DockStyle.Fill;
|
||||||
labelBacklight.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
labelBacklight.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
labelBacklight.Location = new Point(3, 0);
|
labelBacklight.Location = new Point(3, 0);
|
||||||
labelBacklight.Name = "labelBacklight";
|
labelBacklight.Name = "labelBacklight";
|
||||||
labelBacklight.Padding = new Padding(10, 5, 5, 5);
|
labelBacklight.Padding = new Padding(10, 5, 5, 5);
|
||||||
labelBacklight.Size = new Size(139, 42);
|
labelBacklight.Size = new Size(231, 42);
|
||||||
labelBacklight.TabIndex = 6;
|
labelBacklight.TabIndex = 6;
|
||||||
labelBacklight.Text = "Keyboard";
|
labelBacklight.Text = "Keyboard";
|
||||||
//
|
//
|
||||||
// checkAwake
|
// checkAwake
|
||||||
//
|
//
|
||||||
checkAwake.AutoSize = true;
|
checkAwake.Dock = DockStyle.Fill;
|
||||||
checkAwake.Location = new Point(3, 45);
|
checkAwake.Location = new Point(3, 45);
|
||||||
checkAwake.Name = "checkAwake";
|
checkAwake.Name = "checkAwake";
|
||||||
checkAwake.Padding = new Padding(15, 2, 5, 2);
|
checkAwake.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkAwake.Size = new Size(135, 40);
|
checkAwake.Size = new Size(231, 40);
|
||||||
checkAwake.TabIndex = 1;
|
checkAwake.TabIndex = 1;
|
||||||
checkAwake.Text = Strings.Awake;
|
checkAwake.Text = Strings.Awake;
|
||||||
checkAwake.UseVisualStyleBackColor = true;
|
checkAwake.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkBoot
|
// checkBoot
|
||||||
//
|
//
|
||||||
checkBoot.AutoSize = true;
|
checkBoot.Dock = DockStyle.Fill;
|
||||||
checkBoot.Location = new Point(3, 91);
|
checkBoot.Location = new Point(3, 91);
|
||||||
checkBoot.Name = "checkBoot";
|
checkBoot.Name = "checkBoot";
|
||||||
checkBoot.Padding = new Padding(15, 2, 5, 2);
|
checkBoot.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkBoot.Size = new Size(116, 40);
|
checkBoot.Size = new Size(231, 40);
|
||||||
checkBoot.TabIndex = 2;
|
checkBoot.TabIndex = 2;
|
||||||
checkBoot.Text = Strings.Boot;
|
checkBoot.Text = Strings.Boot;
|
||||||
checkBoot.UseVisualStyleBackColor = true;
|
checkBoot.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkSleep
|
// checkSleep
|
||||||
//
|
//
|
||||||
checkSleep.AutoSize = true;
|
checkSleep.Dock = DockStyle.Fill;
|
||||||
checkSleep.Location = new Point(3, 137);
|
checkSleep.Location = new Point(3, 137);
|
||||||
checkSleep.Name = "checkSleep";
|
checkSleep.Name = "checkSleep";
|
||||||
checkSleep.Padding = new Padding(15, 2, 5, 2);
|
checkSleep.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkSleep.Size = new Size(125, 40);
|
checkSleep.Size = new Size(231, 40);
|
||||||
checkSleep.TabIndex = 3;
|
checkSleep.TabIndex = 3;
|
||||||
checkSleep.Text = Strings.Sleep;
|
checkSleep.Text = "Sleep";
|
||||||
checkSleep.UseVisualStyleBackColor = true;
|
checkSleep.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkShutdown
|
// checkShutdown
|
||||||
//
|
//
|
||||||
checkShutdown.AutoSize = true;
|
checkShutdown.Dock = DockStyle.Fill;
|
||||||
checkShutdown.Location = new Point(3, 183);
|
checkShutdown.Location = new Point(3, 183);
|
||||||
checkShutdown.Name = "checkShutdown";
|
checkShutdown.Name = "checkShutdown";
|
||||||
checkShutdown.Padding = new Padding(15, 2, 5, 2);
|
checkShutdown.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkShutdown.Size = new Size(174, 40);
|
checkShutdown.Size = new Size(231, 40);
|
||||||
checkShutdown.TabIndex = 4;
|
checkShutdown.TabIndex = 4;
|
||||||
checkShutdown.Text = Strings.Shutdown;
|
checkShutdown.Text = Strings.Shutdown;
|
||||||
checkShutdown.UseVisualStyleBackColor = true;
|
checkShutdown.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// labelBacklightLogo
|
// labelBacklightLogo
|
||||||
//
|
//
|
||||||
labelBacklightLogo.AutoSize = true;
|
labelBacklightLogo.Dock = DockStyle.Fill;
|
||||||
labelBacklightLogo.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
labelBacklightLogo.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
labelBacklightLogo.Location = new Point(213, 0);
|
labelBacklightLogo.Location = new Point(240, 0);
|
||||||
labelBacklightLogo.Name = "labelBacklightLogo";
|
labelBacklightLogo.Name = "labelBacklightLogo";
|
||||||
labelBacklightLogo.Padding = new Padding(10, 5, 5, 5);
|
labelBacklightLogo.Padding = new Padding(10, 5, 5, 5);
|
||||||
labelBacklightLogo.Size = new Size(86, 42);
|
labelBacklightLogo.Size = new Size(231, 42);
|
||||||
labelBacklightLogo.TabIndex = 21;
|
labelBacklightLogo.TabIndex = 21;
|
||||||
labelBacklightLogo.Text = "Logo";
|
labelBacklightLogo.Text = "Logo";
|
||||||
//
|
//
|
||||||
// checkAwakeLogo
|
// checkAwakeLogo
|
||||||
//
|
//
|
||||||
checkAwakeLogo.AutoSize = true;
|
checkAwakeLogo.Dock = DockStyle.Fill;
|
||||||
checkAwakeLogo.Location = new Point(213, 45);
|
checkAwakeLogo.Location = new Point(240, 45);
|
||||||
checkAwakeLogo.Name = "checkAwakeLogo";
|
checkAwakeLogo.Name = "checkAwakeLogo";
|
||||||
checkAwakeLogo.Padding = new Padding(15, 2, 5, 2);
|
checkAwakeLogo.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkAwakeLogo.Size = new Size(135, 40);
|
checkAwakeLogo.Size = new Size(231, 40);
|
||||||
checkAwakeLogo.TabIndex = 17;
|
checkAwakeLogo.TabIndex = 17;
|
||||||
checkAwakeLogo.Text = Strings.Awake;
|
checkAwakeLogo.Text = Strings.Awake;
|
||||||
checkAwakeLogo.UseVisualStyleBackColor = true;
|
checkAwakeLogo.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkBootLogo
|
// checkBootLogo
|
||||||
//
|
//
|
||||||
checkBootLogo.AutoSize = true;
|
checkBootLogo.Dock = DockStyle.Fill;
|
||||||
checkBootLogo.Location = new Point(213, 91);
|
checkBootLogo.Location = new Point(240, 91);
|
||||||
checkBootLogo.Name = "checkBootLogo";
|
checkBootLogo.Name = "checkBootLogo";
|
||||||
checkBootLogo.Padding = new Padding(15, 2, 5, 2);
|
checkBootLogo.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkBootLogo.Size = new Size(116, 40);
|
checkBootLogo.Size = new Size(231, 40);
|
||||||
checkBootLogo.TabIndex = 18;
|
checkBootLogo.TabIndex = 18;
|
||||||
checkBootLogo.Text = Strings.Boot;
|
checkBootLogo.Text = Strings.Boot;
|
||||||
checkBootLogo.UseVisualStyleBackColor = true;
|
checkBootLogo.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkSleepLogo
|
// checkSleepLogo
|
||||||
//
|
//
|
||||||
checkSleepLogo.AutoSize = true;
|
checkSleepLogo.Dock = DockStyle.Fill;
|
||||||
checkSleepLogo.Location = new Point(213, 137);
|
checkSleepLogo.Location = new Point(240, 137);
|
||||||
checkSleepLogo.Name = "checkSleepLogo";
|
checkSleepLogo.Name = "checkSleepLogo";
|
||||||
checkSleepLogo.Padding = new Padding(15, 2, 5, 2);
|
checkSleepLogo.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkSleepLogo.Size = new Size(125, 40);
|
checkSleepLogo.Size = new Size(231, 40);
|
||||||
checkSleepLogo.TabIndex = 19;
|
checkSleepLogo.TabIndex = 19;
|
||||||
checkSleepLogo.Text = Strings.Sleep;
|
checkSleepLogo.Text = Strings.Sleep;
|
||||||
checkSleepLogo.UseVisualStyleBackColor = true;
|
checkSleepLogo.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkShutdownLogo
|
// checkShutdownLogo
|
||||||
//
|
//
|
||||||
checkShutdownLogo.AutoSize = true;
|
checkShutdownLogo.Dock = DockStyle.Fill;
|
||||||
checkShutdownLogo.Location = new Point(213, 183);
|
checkShutdownLogo.Location = new Point(240, 183);
|
||||||
checkShutdownLogo.Name = "checkShutdownLogo";
|
checkShutdownLogo.Name = "checkShutdownLogo";
|
||||||
checkShutdownLogo.Padding = new Padding(15, 2, 5, 2);
|
checkShutdownLogo.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkShutdownLogo.Size = new Size(174, 40);
|
checkShutdownLogo.Size = new Size(231, 40);
|
||||||
checkShutdownLogo.TabIndex = 20;
|
checkShutdownLogo.TabIndex = 20;
|
||||||
checkShutdownLogo.Text = Strings.Shutdown;
|
checkShutdownLogo.Text = Strings.Shutdown;
|
||||||
checkShutdownLogo.UseVisualStyleBackColor = true;
|
checkShutdownLogo.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// labelBacklightBar
|
// labelBacklightBar
|
||||||
//
|
//
|
||||||
labelBacklightBar.AutoSize = true;
|
labelBacklightBar.Dock = DockStyle.Fill;
|
||||||
labelBacklightBar.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
labelBacklightBar.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
labelBacklightBar.Location = new Point(423, 0);
|
labelBacklightBar.Location = new Point(477, 0);
|
||||||
labelBacklightBar.Name = "labelBacklightBar";
|
labelBacklightBar.Name = "labelBacklightBar";
|
||||||
labelBacklightBar.Padding = new Padding(10, 5, 5, 5);
|
labelBacklightBar.Padding = new Padding(10, 5, 5, 5);
|
||||||
labelBacklightBar.Size = new Size(124, 42);
|
labelBacklightBar.Size = new Size(231, 42);
|
||||||
labelBacklightBar.TabIndex = 11;
|
labelBacklightBar.TabIndex = 11;
|
||||||
labelBacklightBar.Text = "Lightbar";
|
labelBacklightBar.Text = "Lightbar";
|
||||||
//
|
//
|
||||||
// checkAwakeBar
|
// checkAwakeBar
|
||||||
//
|
//
|
||||||
checkAwakeBar.AutoSize = true;
|
checkAwakeBar.Dock = DockStyle.Fill;
|
||||||
checkAwakeBar.Location = new Point(423, 45);
|
checkAwakeBar.Location = new Point(477, 45);
|
||||||
checkAwakeBar.Name = "checkAwakeBar";
|
checkAwakeBar.Name = "checkAwakeBar";
|
||||||
checkAwakeBar.Padding = new Padding(15, 2, 5, 2);
|
checkAwakeBar.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkAwakeBar.Size = new Size(135, 40);
|
checkAwakeBar.Size = new Size(231, 40);
|
||||||
checkAwakeBar.TabIndex = 7;
|
checkAwakeBar.TabIndex = 7;
|
||||||
checkAwakeBar.Text = Strings.Awake;
|
checkAwakeBar.Text = Strings.Awake;
|
||||||
checkAwakeBar.UseVisualStyleBackColor = true;
|
checkAwakeBar.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkBootBar
|
// checkBootBar
|
||||||
//
|
//
|
||||||
checkBootBar.AutoSize = true;
|
checkBootBar.Dock = DockStyle.Fill;
|
||||||
checkBootBar.Location = new Point(423, 91);
|
checkBootBar.Location = new Point(477, 91);
|
||||||
checkBootBar.Name = "checkBootBar";
|
checkBootBar.Name = "checkBootBar";
|
||||||
checkBootBar.Padding = new Padding(15, 2, 5, 2);
|
checkBootBar.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkBootBar.Size = new Size(116, 40);
|
checkBootBar.Size = new Size(231, 40);
|
||||||
checkBootBar.TabIndex = 8;
|
checkBootBar.TabIndex = 8;
|
||||||
checkBootBar.Text = Strings.Boot;
|
checkBootBar.Text = Strings.Boot;
|
||||||
checkBootBar.UseVisualStyleBackColor = true;
|
checkBootBar.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkSleepBar
|
// checkSleepBar
|
||||||
//
|
//
|
||||||
checkSleepBar.AutoSize = true;
|
checkSleepBar.Dock = DockStyle.Fill;
|
||||||
checkSleepBar.Location = new Point(423, 137);
|
checkSleepBar.Location = new Point(477, 137);
|
||||||
checkSleepBar.Name = "checkSleepBar";
|
checkSleepBar.Name = "checkSleepBar";
|
||||||
checkSleepBar.Padding = new Padding(15, 2, 5, 2);
|
checkSleepBar.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkSleepBar.Size = new Size(125, 40);
|
checkSleepBar.Size = new Size(231, 40);
|
||||||
checkSleepBar.TabIndex = 9;
|
checkSleepBar.TabIndex = 9;
|
||||||
checkSleepBar.Text = Strings.Sleep;
|
checkSleepBar.Text = Strings.Sleep;
|
||||||
checkSleepBar.UseVisualStyleBackColor = true;
|
checkSleepBar.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkShutdownBar
|
// checkShutdownBar
|
||||||
//
|
//
|
||||||
checkShutdownBar.AutoSize = true;
|
checkShutdownBar.Dock = DockStyle.Fill;
|
||||||
checkShutdownBar.Location = new Point(423, 183);
|
checkShutdownBar.Location = new Point(477, 183);
|
||||||
checkShutdownBar.Name = "checkShutdownBar";
|
checkShutdownBar.Name = "checkShutdownBar";
|
||||||
checkShutdownBar.Padding = new Padding(15, 2, 5, 2);
|
checkShutdownBar.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkShutdownBar.Size = new Size(174, 40);
|
checkShutdownBar.Size = new Size(231, 40);
|
||||||
checkShutdownBar.TabIndex = 10;
|
checkShutdownBar.TabIndex = 10;
|
||||||
checkShutdownBar.Text = Strings.Shutdown;
|
checkShutdownBar.Text = Strings.Shutdown;
|
||||||
checkShutdownBar.UseVisualStyleBackColor = true;
|
checkShutdownBar.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// labelBacklightLid
|
// labelBacklightLid
|
||||||
//
|
//
|
||||||
labelBacklightLid.AutoSize = true;
|
labelBacklightLid.Dock = DockStyle.Fill;
|
||||||
labelBacklightLid.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
labelBacklightLid.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
labelBacklightLid.Location = new Point(633, 0);
|
labelBacklightLid.Location = new Point(714, 0);
|
||||||
labelBacklightLid.Name = "labelBacklightLid";
|
labelBacklightLid.Name = "labelBacklightLid";
|
||||||
labelBacklightLid.Padding = new Padding(10, 5, 5, 5);
|
labelBacklightLid.Padding = new Padding(10, 5, 5, 5);
|
||||||
labelBacklightLid.Size = new Size(63, 42);
|
labelBacklightLid.Size = new Size(231, 42);
|
||||||
labelBacklightLid.TabIndex = 16;
|
labelBacklightLid.TabIndex = 16;
|
||||||
labelBacklightLid.Text = "Lid";
|
labelBacklightLid.Text = "Lid";
|
||||||
//
|
//
|
||||||
// checkAwakeLid
|
// checkAwakeLid
|
||||||
//
|
//
|
||||||
checkAwakeLid.AutoSize = true;
|
checkAwakeLid.Dock = DockStyle.Fill;
|
||||||
checkAwakeLid.Location = new Point(633, 45);
|
checkAwakeLid.Location = new Point(714, 45);
|
||||||
checkAwakeLid.Name = "checkAwakeLid";
|
checkAwakeLid.Name = "checkAwakeLid";
|
||||||
checkAwakeLid.Padding = new Padding(15, 2, 5, 2);
|
checkAwakeLid.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkAwakeLid.Size = new Size(135, 40);
|
checkAwakeLid.Size = new Size(231, 40);
|
||||||
checkAwakeLid.TabIndex = 12;
|
checkAwakeLid.TabIndex = 12;
|
||||||
checkAwakeLid.Text = Strings.Awake;
|
checkAwakeLid.Text = Strings.Awake;
|
||||||
checkAwakeLid.UseVisualStyleBackColor = true;
|
checkAwakeLid.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkBootLid
|
// checkBootLid
|
||||||
//
|
//
|
||||||
checkBootLid.AutoSize = true;
|
checkBootLid.Dock = DockStyle.Fill;
|
||||||
checkBootLid.Location = new Point(633, 91);
|
checkBootLid.Location = new Point(714, 91);
|
||||||
checkBootLid.Name = "checkBootLid";
|
checkBootLid.Name = "checkBootLid";
|
||||||
checkBootLid.Padding = new Padding(15, 2, 5, 2);
|
checkBootLid.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkBootLid.Size = new Size(116, 40);
|
checkBootLid.Size = new Size(231, 40);
|
||||||
checkBootLid.TabIndex = 13;
|
checkBootLid.TabIndex = 13;
|
||||||
checkBootLid.Text = Strings.Boot;
|
checkBootLid.Text = Strings.Boot;
|
||||||
checkBootLid.UseVisualStyleBackColor = true;
|
checkBootLid.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkSleepLid
|
// checkSleepLid
|
||||||
//
|
//
|
||||||
checkSleepLid.AutoSize = true;
|
checkSleepLid.Dock = DockStyle.Fill;
|
||||||
checkSleepLid.Location = new Point(633, 137);
|
checkSleepLid.Location = new Point(714, 137);
|
||||||
checkSleepLid.Name = "checkSleepLid";
|
checkSleepLid.Name = "checkSleepLid";
|
||||||
checkSleepLid.Padding = new Padding(15, 2, 5, 2);
|
checkSleepLid.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkSleepLid.Size = new Size(125, 40);
|
checkSleepLid.Size = new Size(231, 40);
|
||||||
checkSleepLid.TabIndex = 14;
|
checkSleepLid.TabIndex = 14;
|
||||||
checkSleepLid.Text = Strings.Sleep;
|
checkSleepLid.Text = Strings.Sleep;
|
||||||
checkSleepLid.UseVisualStyleBackColor = true;
|
checkSleepLid.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkShutdownLid
|
// checkShutdownLid
|
||||||
//
|
//
|
||||||
checkShutdownLid.AutoSize = true;
|
checkShutdownLid.Dock = DockStyle.Fill;
|
||||||
checkShutdownLid.Location = new Point(633, 183);
|
checkShutdownLid.Location = new Point(714, 183);
|
||||||
checkShutdownLid.Name = "checkShutdownLid";
|
checkShutdownLid.Name = "checkShutdownLid";
|
||||||
checkShutdownLid.Padding = new Padding(15, 2, 5, 2);
|
checkShutdownLid.Padding = new Padding(15, 2, 5, 2);
|
||||||
checkShutdownLid.Size = new Size(174, 40);
|
checkShutdownLid.Size = new Size(231, 40);
|
||||||
checkShutdownLid.TabIndex = 15;
|
checkShutdownLid.TabIndex = 15;
|
||||||
checkShutdownLid.Text = Strings.Shutdown;
|
checkShutdownLid.Text = Strings.Shutdown;
|
||||||
checkShutdownLid.UseVisualStyleBackColor = true;
|
checkShutdownLid.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// groupOther
|
// groupOther
|
||||||
//
|
//
|
||||||
|
groupOther.Controls.Add(checkAutoApplyWindowsPowerMode);
|
||||||
|
groupOther.Controls.Add(checkKeyboardAuto);
|
||||||
groupOther.Controls.Add(checkUSBC);
|
groupOther.Controls.Add(checkUSBC);
|
||||||
groupOther.Controls.Add(checkNoOverdrive);
|
groupOther.Controls.Add(checkNoOverdrive);
|
||||||
groupOther.Controls.Add(checkKeyboardAuto);
|
|
||||||
groupOther.Controls.Add(checkTopmost);
|
groupOther.Controls.Add(checkTopmost);
|
||||||
groupOther.Dock = DockStyle.Top;
|
groupOther.Dock = DockStyle.Top;
|
||||||
groupOther.Location = new Point(10, 727);
|
groupOther.Location = new Point(10, 768);
|
||||||
groupOther.Name = "groupOther";
|
groupOther.Name = "groupOther";
|
||||||
groupOther.Size = new Size(848, 293);
|
groupOther.Size = new Size(954, 276);
|
||||||
groupOther.TabIndex = 2;
|
groupOther.TabIndex = 2;
|
||||||
groupOther.TabStop = false;
|
groupOther.TabStop = false;
|
||||||
groupOther.Text = "Other";
|
groupOther.Text = "Other";
|
||||||
//
|
//
|
||||||
|
// checkAutoApplyWindowsPowerMode
|
||||||
|
//
|
||||||
|
checkAutoApplyWindowsPowerMode.AutoSize = true;
|
||||||
|
checkAutoApplyWindowsPowerMode.Location = new Point(25, 220);
|
||||||
|
checkAutoApplyWindowsPowerMode.Name = "checkAutoApplyWindowsPowerMode";
|
||||||
|
checkAutoApplyWindowsPowerMode.Size = new Size(416, 36);
|
||||||
|
checkAutoApplyWindowsPowerMode.TabIndex = 47;
|
||||||
|
checkAutoApplyWindowsPowerMode.Text = "Auto Adjust Windows Power Mode";
|
||||||
|
checkAutoApplyWindowsPowerMode.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// checkKeyboardAuto
|
||||||
|
//
|
||||||
|
checkKeyboardAuto.AutoSize = true;
|
||||||
|
checkKeyboardAuto.Location = new Point(25, 40);
|
||||||
|
checkKeyboardAuto.MaximumSize = new Size(780, 0);
|
||||||
|
checkKeyboardAuto.Name = "checkKeyboardAuto";
|
||||||
|
checkKeyboardAuto.Size = new Size(712, 36);
|
||||||
|
checkKeyboardAuto.TabIndex = 46;
|
||||||
|
checkKeyboardAuto.Text = Strings.KeyboardAuto;
|
||||||
|
checkKeyboardAuto.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// checkUSBC
|
// checkUSBC
|
||||||
//
|
//
|
||||||
checkUSBC.AutoSize = true;
|
checkUSBC.AutoSize = true;
|
||||||
checkUSBC.Location = new Point(25, 210);
|
checkUSBC.Location = new Point(25, 85);
|
||||||
checkUSBC.Name = "checkUSBC";
|
checkUSBC.Name = "checkUSBC";
|
||||||
checkUSBC.Size = new Size(659, 36);
|
checkUSBC.Size = new Size(659, 36);
|
||||||
checkUSBC.TabIndex = 4;
|
checkUSBC.TabIndex = 4;
|
||||||
@@ -578,28 +620,17 @@ namespace GHelper
|
|||||||
// checkNoOverdrive
|
// checkNoOverdrive
|
||||||
//
|
//
|
||||||
checkNoOverdrive.AutoSize = true;
|
checkNoOverdrive.AutoSize = true;
|
||||||
checkNoOverdrive.Location = new Point(25, 156);
|
checkNoOverdrive.Location = new Point(25, 130);
|
||||||
checkNoOverdrive.Name = "checkNoOverdrive";
|
checkNoOverdrive.Name = "checkNoOverdrive";
|
||||||
checkNoOverdrive.Size = new Size(307, 36);
|
checkNoOverdrive.Size = new Size(307, 36);
|
||||||
checkNoOverdrive.TabIndex = 3;
|
checkNoOverdrive.TabIndex = 3;
|
||||||
checkNoOverdrive.Text = Strings.DisableOverdrive;
|
checkNoOverdrive.Text = Strings.DisableOverdrive;
|
||||||
checkNoOverdrive.UseVisualStyleBackColor = true;
|
checkNoOverdrive.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkKeyboardAuto
|
|
||||||
//
|
|
||||||
checkKeyboardAuto.AutoSize = true;
|
|
||||||
checkKeyboardAuto.Location = new Point(25, 52);
|
|
||||||
checkKeyboardAuto.MaximumSize = new Size(780, 0);
|
|
||||||
checkKeyboardAuto.Name = "checkKeyboardAuto";
|
|
||||||
checkKeyboardAuto.Size = new Size(712, 36);
|
|
||||||
checkKeyboardAuto.TabIndex = 2;
|
|
||||||
checkKeyboardAuto.Text = Strings.KeyboardAuto;
|
|
||||||
checkKeyboardAuto.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// checkTopmost
|
// checkTopmost
|
||||||
//
|
//
|
||||||
checkTopmost.AutoSize = true;
|
checkTopmost.AutoSize = true;
|
||||||
checkTopmost.Location = new Point(25, 104);
|
checkTopmost.Location = new Point(25, 175);
|
||||||
checkTopmost.Name = "checkTopmost";
|
checkTopmost.Name = "checkTopmost";
|
||||||
checkTopmost.Size = new Size(390, 36);
|
checkTopmost.Size = new Size(390, 36);
|
||||||
checkTopmost.TabIndex = 1;
|
checkTopmost.TabIndex = 1;
|
||||||
@@ -610,7 +641,9 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(13F, 32F);
|
AutoScaleDimensions = new SizeF(13F, 32F);
|
||||||
AutoScaleMode = AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
ClientSize = new Size(868, 1011);
|
AutoSize = true;
|
||||||
|
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
ClientSize = new Size(974, 1059);
|
||||||
Controls.Add(groupOther);
|
Controls.Add(groupOther);
|
||||||
Controls.Add(groupLight);
|
Controls.Add(groupLight);
|
||||||
Controls.Add(groupBindings);
|
Controls.Add(groupBindings);
|
||||||
@@ -618,6 +651,7 @@ namespace GHelper
|
|||||||
MaximizeBox = false;
|
MaximizeBox = false;
|
||||||
MdiChildrenMinimizedAnchorBottom = false;
|
MdiChildrenMinimizedAnchorBottom = false;
|
||||||
MinimizeBox = false;
|
MinimizeBox = false;
|
||||||
|
MinimumSize = new Size(1000, 0);
|
||||||
Name = "Extra";
|
Name = "Extra";
|
||||||
Padding = new Padding(10);
|
Padding = new Padding(10);
|
||||||
ShowIcon = false;
|
ShowIcon = false;
|
||||||
@@ -630,11 +664,11 @@ namespace GHelper
|
|||||||
groupLight.PerformLayout();
|
groupLight.PerformLayout();
|
||||||
panelBacklightExtra.ResumeLayout(false);
|
panelBacklightExtra.ResumeLayout(false);
|
||||||
panelBacklightExtra.PerformLayout();
|
panelBacklightExtra.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericBacklightTime).EndInit();
|
||||||
((System.ComponentModel.ISupportInitialize)trackBrightness).EndInit();
|
((System.ComponentModel.ISupportInitialize)trackBrightness).EndInit();
|
||||||
panelXMG.ResumeLayout(false);
|
panelXMG.ResumeLayout(false);
|
||||||
panelXMG.PerformLayout();
|
panelXMG.PerformLayout();
|
||||||
tableBacklight.ResumeLayout(false);
|
tableBacklight.ResumeLayout(false);
|
||||||
tableBacklight.PerformLayout();
|
|
||||||
groupOther.ResumeLayout(false);
|
groupOther.ResumeLayout(false);
|
||||||
groupOther.PerformLayout();
|
groupOther.PerformLayout();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
@@ -656,7 +690,6 @@ namespace GHelper
|
|||||||
private GroupBox groupLight;
|
private GroupBox groupLight;
|
||||||
private GroupBox groupOther;
|
private GroupBox groupOther;
|
||||||
private CheckBox checkTopmost;
|
private CheckBox checkTopmost;
|
||||||
private CheckBox checkKeyboardAuto;
|
|
||||||
private CheckBox checkNoOverdrive;
|
private CheckBox checkNoOverdrive;
|
||||||
private PictureBox pictureHelp;
|
private PictureBox pictureHelp;
|
||||||
private CheckBox checkUSBC;
|
private CheckBox checkUSBC;
|
||||||
@@ -688,5 +721,9 @@ namespace GHelper
|
|||||||
private RComboBox comboKeyboardSpeed;
|
private RComboBox comboKeyboardSpeed;
|
||||||
private Panel panelXMG;
|
private Panel panelXMG;
|
||||||
private CheckBox checkXMG;
|
private CheckBox checkXMG;
|
||||||
|
private Label labelBacklightTimeout;
|
||||||
|
private NumericUpDown numericBacklightTime;
|
||||||
|
private CheckBox checkKeyboardAuto;
|
||||||
|
private CheckBox checkAutoApplyWindowsPowerMode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
26
app/Extra.cs
26
app/Extra.cs
@@ -68,11 +68,13 @@ namespace GHelper
|
|||||||
|
|
||||||
labelSpeed.Text = Properties.Strings.AnimationSpeed;
|
labelSpeed.Text = Properties.Strings.AnimationSpeed;
|
||||||
labelBrightness.Text = Properties.Strings.Brightness;
|
labelBrightness.Text = Properties.Strings.Brightness;
|
||||||
|
labelBacklightTimeout.Text = Properties.Strings.BacklightTimeout;
|
||||||
|
|
||||||
checkKeyboardAuto.Text = Properties.Strings.KeyboardAuto;
|
checkKeyboardAuto.Text = Properties.Strings.KeyboardAuto;
|
||||||
checkNoOverdrive.Text = Properties.Strings.DisableOverdrive;
|
checkNoOverdrive.Text = Properties.Strings.DisableOverdrive;
|
||||||
checkTopmost.Text = Properties.Strings.WindowTop;
|
checkTopmost.Text = Properties.Strings.WindowTop;
|
||||||
checkUSBC.Text = Properties.Strings.OptimizedUSBC;
|
checkUSBC.Text = Properties.Strings.OptimizedUSBC;
|
||||||
|
checkAutoApplyWindowsPowerMode.Text = Properties.Strings.ApplyWindowsPowerPlan;
|
||||||
|
|
||||||
labelBacklight.Text = Properties.Strings.Keyboard;
|
labelBacklight.Text = Properties.Strings.Keyboard;
|
||||||
labelBacklightBar.Text = Properties.Strings.Lightbar;
|
labelBacklightBar.Text = Properties.Strings.Lightbar;
|
||||||
@@ -176,6 +178,9 @@ namespace GHelper
|
|||||||
checkUSBC.Checked = (Program.config.getConfig("optimized_usbc") == 1);
|
checkUSBC.Checked = (Program.config.getConfig("optimized_usbc") == 1);
|
||||||
checkUSBC.CheckedChanged += CheckUSBC_CheckedChanged;
|
checkUSBC.CheckedChanged += CheckUSBC_CheckedChanged;
|
||||||
|
|
||||||
|
checkAutoApplyWindowsPowerMode.Checked = (Program.config.getConfig("auto_apply_power_plan") != 0);
|
||||||
|
checkAutoApplyWindowsPowerMode.CheckedChanged += checkAutoApplyWindowsPowerMode_CheckedChanged;
|
||||||
|
|
||||||
int kb_brightness = Program.config.getConfig("keyboard_brightness");
|
int kb_brightness = Program.config.getConfig("keyboard_brightness");
|
||||||
trackBrightness.Value = (kb_brightness >= 0 && kb_brightness <= 3) ? kb_brightness : 3;
|
trackBrightness.Value = (kb_brightness >= 0 && kb_brightness <= 3) ? kb_brightness : 3;
|
||||||
|
|
||||||
@@ -186,7 +191,18 @@ namespace GHelper
|
|||||||
checkXMG.Checked = !(Program.config.getConfig("xmg_light") == 0);
|
checkXMG.Checked = !(Program.config.getConfig("xmg_light") == 0);
|
||||||
checkXMG.CheckedChanged += CheckXMG_CheckedChanged;
|
checkXMG.CheckedChanged += CheckXMG_CheckedChanged;
|
||||||
|
|
||||||
|
int kb_timeout = Program.config.getConfig("keyboard_light_tiomeout");
|
||||||
|
numericBacklightTime.Value = (kb_timeout >= 0) ? kb_timeout : 60;
|
||||||
|
|
||||||
|
numericBacklightTime.ValueChanged += NumericBacklightTime_ValueChanged;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void NumericBacklightTime_ValueChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Program.RunAsAdmin("extra");
|
||||||
|
Program.config.setConfig("keyboard_light_tiomeout", (int)numericBacklightTime.Value);
|
||||||
|
Aura.SetBacklightOffDelay((int)numericBacklightTime.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CheckXMG_CheckedChanged(object? sender, EventArgs e)
|
private void CheckXMG_CheckedChanged(object? sender, EventArgs e)
|
||||||
@@ -272,11 +288,6 @@ namespace GHelper
|
|||||||
if (checkSleepLogo.Checked) flags.Add(AuraDev19b6.SleepLogo);
|
if (checkSleepLogo.Checked) flags.Add(AuraDev19b6.SleepLogo);
|
||||||
if (checkShutdownLogo.Checked) flags.Add(AuraDev19b6.ShutdownLogo);
|
if (checkShutdownLogo.Checked) flags.Add(AuraDev19b6.ShutdownLogo);
|
||||||
|
|
||||||
flags.Add(AuraDev19b6.Unknown1);
|
|
||||||
flags.Add(AuraDev19b6.Unknown2);
|
|
||||||
flags.Add(AuraDev19b6.Unknown3);
|
|
||||||
flags.Add(AuraDev19b6.Unknown4);
|
|
||||||
|
|
||||||
Aura.ApplyAuraPower(flags);
|
Aura.ApplyAuraPower(flags);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -293,5 +304,10 @@ namespace GHelper
|
|||||||
Top = Program.settingsForm.Top;
|
Top = Program.settingsForm.Top;
|
||||||
Left = Program.settingsForm.Left - Width - 5;
|
Left = Program.settingsForm.Left - Width - 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void checkAutoApplyWindowsPowerMode_CheckedChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Program.config.setConfig("auto_apply_power_plan", checkAutoApplyWindowsPowerMode.Checked ? 1 : 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,64 @@
|
|||||||
<root>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing"">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<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:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
|||||||
79
app/Fans.cs
79
app/Fans.cs
@@ -15,6 +15,8 @@ namespace GHelper
|
|||||||
|
|
||||||
static int MinRPM, MaxRPM;
|
static int MinRPM, MaxRPM;
|
||||||
|
|
||||||
|
const int fansMax = 100;
|
||||||
|
|
||||||
NvidiaGpuControl? nvControl = null;
|
NvidiaGpuControl? nvControl = null;
|
||||||
|
|
||||||
public Fans()
|
public Fans()
|
||||||
@@ -34,6 +36,11 @@ namespace GHelper
|
|||||||
|
|
||||||
labelGPU.Text = Properties.Strings.GPUSettings;
|
labelGPU.Text = Properties.Strings.GPUSettings;
|
||||||
|
|
||||||
|
labelGPUCoreTitle.Text = Properties.Strings.GPUCoreClockOffset;
|
||||||
|
labelGPUMemoryTitle.Text = Properties.Strings.GPUMemoryClockOffset;
|
||||||
|
labelGPUBoostTitle.Text = Properties.Strings.GPUBoost;
|
||||||
|
labelGPUTempTitle.Text = Properties.Strings.GPUTempTarget;
|
||||||
|
|
||||||
InitTheme();
|
InitTheme();
|
||||||
|
|
||||||
MinRPM = 18;
|
MinRPM = 18;
|
||||||
@@ -107,7 +114,7 @@ namespace GHelper
|
|||||||
InitFans();
|
InitFans();
|
||||||
InitPower();
|
InitPower();
|
||||||
InitBoost();
|
InitBoost();
|
||||||
InitGPU();
|
InitGPU(true);
|
||||||
|
|
||||||
comboBoost.SelectedValueChanged += ComboBoost_Changed;
|
comboBoost.SelectedValueChanged += ComboBoost_Changed;
|
||||||
|
|
||||||
@@ -119,10 +126,11 @@ namespace GHelper
|
|||||||
|
|
||||||
private void TrackGPU_MouseUp(object? sender, MouseEventArgs e)
|
private void TrackGPU_MouseUp(object? sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
Program.settingsForm.AutoGPUSettings(true);
|
Program.settingsForm.SetGPUPower();
|
||||||
|
Program.settingsForm.SetGPUClocks(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitGPU()
|
public void InitGPU(bool readClocks = false)
|
||||||
{
|
{
|
||||||
if (HardwareControl.GpuControl is not null && HardwareControl.GpuControl.IsNvidia)
|
if (HardwareControl.GpuControl is not null && HardwareControl.GpuControl.IsNvidia)
|
||||||
{
|
{
|
||||||
@@ -138,18 +146,39 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
panelGPU.Visible = true;
|
panelGPU.Visible = true;
|
||||||
|
|
||||||
nvControl.GetClocks(out int core, out int memory, out string gpuTitle);
|
|
||||||
|
|
||||||
trackGPUCore.Value = Math.Max(Math.Min(core, NvidiaGpuControl.MaxCoreOffset), NvidiaGpuControl.MinCoreOffset);
|
|
||||||
trackGPUMemory.Value = Math.Max(Math.Min(memory, NvidiaGpuControl.MaxMemoryOffset), NvidiaGpuControl.MinMemoryOffset);
|
|
||||||
labelGPU.Text = gpuTitle;
|
|
||||||
|
|
||||||
int gpu_boost = Program.config.getConfigPerf("gpu_boost");
|
int gpu_boost = Program.config.getConfigPerf("gpu_boost");
|
||||||
int gpu_temp = Program.config.getConfigPerf("gpu_temp");
|
int gpu_temp = Program.config.getConfigPerf("gpu_temp");
|
||||||
|
int core = Program.config.getConfigPerf("gpu_core");
|
||||||
|
int memory = Program.config.getConfigPerf("gpu_memory");
|
||||||
|
|
||||||
if (gpu_boost < 0) gpu_boost = ASUSWmi.MaxGPUBoost;
|
if (gpu_boost < 0) gpu_boost = ASUSWmi.MaxGPUBoost;
|
||||||
if (gpu_temp < 0) gpu_temp = ASUSWmi.MaxGPUTemp;
|
if (gpu_temp < 0) gpu_temp = ASUSWmi.MaxGPUTemp;
|
||||||
|
|
||||||
|
if (core == -1) core = 0;
|
||||||
|
if (memory == -1) memory = 0;
|
||||||
|
|
||||||
|
//if (readClocks)
|
||||||
|
//{
|
||||||
|
int status = nvControl.GetClocks(out int current_core, out int current_memory);
|
||||||
|
if (status != -1)
|
||||||
|
{
|
||||||
|
core = current_core;
|
||||||
|
memory = current_memory;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
labelGPU.Text = nvControl.FullName;
|
||||||
|
} catch
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//}
|
||||||
|
|
||||||
|
trackGPUCore.Value = Math.Max(Math.Min(core, NvidiaGpuControl.MaxCoreOffset), NvidiaGpuControl.MinCoreOffset);
|
||||||
|
trackGPUMemory.Value = Math.Max(Math.Min(memory, NvidiaGpuControl.MaxMemoryOffset), NvidiaGpuControl.MinMemoryOffset);
|
||||||
|
|
||||||
trackGPUBoost.Value = Math.Max(Math.Min(gpu_boost, ASUSWmi.MaxGPUBoost), ASUSWmi.MinGPUBoost);
|
trackGPUBoost.Value = Math.Max(Math.Min(gpu_boost, ASUSWmi.MaxGPUBoost), ASUSWmi.MinGPUBoost);
|
||||||
trackGPUTemp.Value = Math.Max(Math.Min(gpu_temp, ASUSWmi.MaxGPUTemp), ASUSWmi.MinGPUTemp);
|
trackGPUTemp.Value = Math.Max(Math.Min(gpu_temp, ASUSWmi.MaxGPUTemp), ASUSWmi.MinGPUTemp);
|
||||||
|
|
||||||
@@ -225,7 +254,7 @@ namespace GHelper
|
|||||||
chart.ChartAreas[0].AxisX.Interval = 10;
|
chart.ChartAreas[0].AxisX.Interval = 10;
|
||||||
|
|
||||||
chart.ChartAreas[0].AxisY.Minimum = 0;
|
chart.ChartAreas[0].AxisY.Minimum = 0;
|
||||||
chart.ChartAreas[0].AxisY.Maximum = 100;
|
chart.ChartAreas[0].AxisY.Maximum = fansMax;
|
||||||
|
|
||||||
chart.ChartAreas[0].AxisY.LabelStyle.Font = new Font("Arial", 7F);
|
chart.ChartAreas[0].AxisY.LabelStyle.Font = new Font("Arial", 7F);
|
||||||
|
|
||||||
@@ -234,10 +263,10 @@ namespace GHelper
|
|||||||
chart.ChartAreas[0].AxisX.LineColor = chartGrid;
|
chart.ChartAreas[0].AxisX.LineColor = chartGrid;
|
||||||
chart.ChartAreas[0].AxisY.LineColor = chartGrid;
|
chart.ChartAreas[0].AxisY.LineColor = chartGrid;
|
||||||
|
|
||||||
for (int i = 0; i <= 90; i += 10)
|
for (int i = 0; i <= fansMax-10; i += 10)
|
||||||
chart.ChartAreas[0].AxisY.CustomLabels.Add(i - 2, i + 2, ChartPercToRPM(i));
|
chart.ChartAreas[0].AxisY.CustomLabels.Add(i - 2, i + 2, ChartPercToRPM(i));
|
||||||
|
|
||||||
chart.ChartAreas[0].AxisY.CustomLabels.Add(98, 102, Properties.Strings.RPM);
|
chart.ChartAreas[0].AxisY.CustomLabels.Add(fansMax-2, fansMax+2, Properties.Strings.RPM);
|
||||||
|
|
||||||
chart.ChartAreas[0].AxisY.Interval = 10;
|
chart.ChartAreas[0].AxisY.Interval = 10;
|
||||||
|
|
||||||
@@ -248,6 +277,8 @@ namespace GHelper
|
|||||||
|
|
||||||
private void Fans_Shown(object? sender, EventArgs e)
|
private void Fans_Shown(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
panelSliders.Visible = panelGPU.Visible || panelPower.Visible;
|
||||||
|
|
||||||
if (Height > Program.settingsForm.Height)
|
if (Height > Program.settingsForm.Height)
|
||||||
{
|
{
|
||||||
Top = Program.settingsForm.Top + Program.settingsForm.Height - Height;
|
Top = Program.settingsForm.Top + Program.settingsForm.Height - Height;
|
||||||
@@ -259,8 +290,8 @@ namespace GHelper
|
|||||||
Top = Program.settingsForm.Top;
|
Top = Program.settingsForm.Top;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Left = Program.settingsForm.Left - Width - 5;
|
Left = Program.settingsForm.Left - Width - 5;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -444,11 +475,16 @@ namespace GHelper
|
|||||||
int mode = Program.config.getConfig("performance_mode");
|
int mode = Program.config.getConfig("performance_mode");
|
||||||
byte[] curve = Program.config.getFanConfig(device);
|
byte[] curve = Program.config.getFanConfig(device);
|
||||||
|
|
||||||
if (def == 1 || curve.Length != 16)
|
if (def == 1 || ASUSWmi.IsEmptyCurve(curve))
|
||||||
|
{
|
||||||
curve = Program.wmi.GetFanCurve(device, mode);
|
curve = Program.wmi.GetFanCurve(device, mode);
|
||||||
|
|
||||||
if (curve.Length != 16 || curve.All(singleByte => singleByte == 0))
|
if (ASUSWmi.IsEmptyCurve(curve))
|
||||||
curve = Program.config.getDefaultCurve(device);
|
curve = Program.config.getDefaultCurve(device);
|
||||||
|
|
||||||
|
curve = ASUSWmi.FixFanCurve(curve);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//Debug.WriteLine(BitConverter.ToString(curve));
|
//Debug.WriteLine(BitConverter.ToString(curve));
|
||||||
|
|
||||||
@@ -502,7 +538,14 @@ namespace GHelper
|
|||||||
trackGPUBoost.Value = ASUSWmi.MaxGPUBoost;
|
trackGPUBoost.Value = ASUSWmi.MaxGPUBoost;
|
||||||
trackGPUTemp.Value = ASUSWmi.MaxGPUTemp;
|
trackGPUTemp.Value = ASUSWmi.MaxGPUTemp;
|
||||||
|
|
||||||
Program.settingsForm.AutoGPUSettings(true);
|
Program.config.setConfigPerf("gpu_boost", trackGPUBoost.Value);
|
||||||
|
Program.config.setConfigPerf("gpu_temp", trackGPUTemp.Value);
|
||||||
|
Program.config.setConfigPerf("gpu_core", trackGPUCore.Value);
|
||||||
|
Program.config.setConfigPerf("gpu_memory", trackGPUMemory.Value);
|
||||||
|
VisualiseGPUSettings();
|
||||||
|
|
||||||
|
Program.settingsForm.SetGPUClocks(true);
|
||||||
|
Program.settingsForm.SetGPUPower();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ChartCPU_MouseUp(object? sender, MouseEventArgs e)
|
private void ChartCPU_MouseUp(object? sender, MouseEventArgs e)
|
||||||
@@ -554,7 +597,7 @@ namespace GHelper
|
|||||||
if (dx > 100) dx = 100;
|
if (dx > 100) dx = 100;
|
||||||
|
|
||||||
if (dy < 0) dy = 0;
|
if (dy < 0) dy = 0;
|
||||||
if (dy > 100) dy = 100;
|
if (dy > fansMax) dy = fansMax;
|
||||||
|
|
||||||
dymin = (dx - 65) * 1.2;
|
dymin = (dx - 65) * 1.2;
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.59</AssemblyVersion>
|
<AssemblyVersion>0.64</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
@@ -59,8 +59,10 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="FftSharp" Version="2.0.0" />
|
||||||
<PackageReference Include="hidlibrary" Version="3.3.40" />
|
<PackageReference Include="hidlibrary" Version="3.3.40" />
|
||||||
<PackageReference Include="HidSharpCore" Version="1.2.1.1" />
|
<PackageReference Include="HidSharpCore" Version="1.2.1.1" />
|
||||||
|
<PackageReference Include="NAudio" Version="2.1.0" />
|
||||||
<PackageReference Include="System.Management" Version="7.0.1" />
|
<PackageReference Include="System.Management" Version="7.0.1" />
|
||||||
<PackageReference Include="TaskScheduler" Version="2.10.1" />
|
<PackageReference Include="TaskScheduler" Version="2.10.1" />
|
||||||
<PackageReference Include="WinForms.DataVisualization" Version="1.8.0" />
|
<PackageReference Include="WinForms.DataVisualization" Version="1.8.0" />
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ public class AmdGpuControl : IGpuControl {
|
|||||||
|
|
||||||
public bool IsNvidia => false;
|
public bool IsNvidia => false;
|
||||||
|
|
||||||
|
public string FullName => _internalDiscreteAdapter!.AdapterName;
|
||||||
public AmdGpuControl() {
|
public AmdGpuControl() {
|
||||||
if (!Adl2.Load())
|
if (!Adl2.Load())
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
public interface IGpuControl : IDisposable {
|
public interface IGpuControl : IDisposable {
|
||||||
bool IsNvidia { get; }
|
bool IsNvidia { get; }
|
||||||
bool IsValid { get; }
|
bool IsValid { get; }
|
||||||
|
public string FullName { get; }
|
||||||
int? GetCurrentTemperature();
|
int? GetCurrentTemperature();
|
||||||
int? GetGpuUse();
|
int? GetGpuUse();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
using NvAPIWrapper.GPU;
|
using NvAPIWrapper.GPU;
|
||||||
using NvAPIWrapper.Native;
|
using NvAPIWrapper.Native;
|
||||||
|
using NvAPIWrapper.Native.Delegates;
|
||||||
using NvAPIWrapper.Native.GPU;
|
using NvAPIWrapper.Native.GPU;
|
||||||
using NvAPIWrapper.Native.GPU.Structures;
|
using NvAPIWrapper.Native.GPU.Structures;
|
||||||
using NvAPIWrapper.Native.Interfaces.GPU;
|
using NvAPIWrapper.Native.Interfaces.GPU;
|
||||||
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Management;
|
||||||
using static NvAPIWrapper.Native.GPU.Structures.PerformanceStates20InfoV1;
|
using static NvAPIWrapper.Native.GPU.Structures.PerformanceStates20InfoV1;
|
||||||
|
|
||||||
namespace GHelper.Gpu;
|
namespace GHelper.Gpu;
|
||||||
@@ -28,6 +31,8 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
|
|
||||||
public bool IsNvidia => IsValid;
|
public bool IsNvidia => IsValid;
|
||||||
|
|
||||||
|
public string FullName => _internalGpu!.FullName;
|
||||||
|
|
||||||
public int? GetCurrentTemperature()
|
public int? GetCurrentTemperature()
|
||||||
{
|
{
|
||||||
if (!IsValid)
|
if (!IsValid)
|
||||||
@@ -46,25 +51,83 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int GetClocks(out int core, out int memory)
|
||||||
public void GetClocks(out int core, out int memory, out string gpu)
|
|
||||||
{
|
{
|
||||||
PhysicalGPU internalGpu = _internalGpu!;
|
PhysicalGPU internalGpu = _internalGpu!;
|
||||||
|
|
||||||
gpu = internalGpu.FullName;
|
//Logger.WriteLine(internalGpu.FullName);
|
||||||
|
//Logger.WriteLine(internalGpu.ArchitectInformation.ToString());
|
||||||
|
|
||||||
Logger.WriteLine(internalGpu.FullName);
|
try
|
||||||
Logger.WriteLine(internalGpu.ArchitectInformation.ToString());
|
{
|
||||||
|
IPerformanceStates20Info states = GPUApi.GetPerformanceStates20(internalGpu.Handle);
|
||||||
|
core = states.Clocks[PerformanceStateId.P0_3DPerformance][0].FrequencyDeltaInkHz.DeltaValue / 1000;
|
||||||
|
memory = states.Clocks[PerformanceStateId.P0_3DPerformance][1].FrequencyDeltaInkHz.DeltaValue / 1000;
|
||||||
|
Logger.WriteLine($"GET GPU CLOCKS: {core}, {memory}");
|
||||||
|
return 0;
|
||||||
|
|
||||||
IPerformanceStates20Info states = GPUApi.GetPerformanceStates20(internalGpu.Handle);
|
} catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine("GET GPU CLOCKS:" + ex.Message);
|
||||||
|
core = memory = 0;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
//Logger.WriteLine("IPerformanceStates20Info type : " + states.GetType());
|
}
|
||||||
|
|
||||||
core = states.Clocks[PerformanceStateId.P0_3DPerformance][0].FrequencyDeltaInkHz.DeltaValue / 1000;
|
private static void RunCMD(string name, string args)
|
||||||
memory = states.Clocks[PerformanceStateId.P0_3DPerformance][1].FrequencyDeltaInkHz.DeltaValue / 1000;
|
{
|
||||||
|
var cmd = new Process();
|
||||||
|
cmd.StartInfo.UseShellExecute = false;
|
||||||
|
cmd.StartInfo.CreateNoWindow = true;
|
||||||
|
cmd.StartInfo.RedirectStandardOutput = true;
|
||||||
|
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
||||||
|
cmd.StartInfo.FileName = name;
|
||||||
|
cmd.StartInfo.Arguments = args;
|
||||||
|
cmd.Start();
|
||||||
|
Logger.WriteLine(cmd.StandardOutput.ReadToEnd());
|
||||||
|
cmd.WaitForExit();
|
||||||
|
}
|
||||||
|
|
||||||
Logger.WriteLine($"GET GPU Clock offsets : {core}, {memory}");
|
|
||||||
|
|
||||||
|
public bool RestartGPUPnP()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!IsValid) return false;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
PhysicalGPU internalGpu = _internalGpu!;
|
||||||
|
var pnpDeviceId = internalGpu.BusInformation.PCIIdentifiers.ToString();
|
||||||
|
Logger.WriteLine("Device ID:" + pnpDeviceId);
|
||||||
|
RunCMD("pnputil", $"/disable-device /deviceid \"{pnpDeviceId}\"");
|
||||||
|
Thread.Sleep(3000);
|
||||||
|
RunCMD("pnputil", $"/enable-device /deviceid \"{pnpDeviceId}\"");
|
||||||
|
Thread.Sleep(2000);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool RestartGPU()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string script = @"$device = Get-PnpDevice | Where-Object { $_.FriendlyName -imatch 'NVIDIA' -and $_.Class -eq 'Display' }; Disable-PnpDevice $device.InstanceId -Confirm:$false; Start-Sleep -Seconds 3; Enable-PnpDevice $device.InstanceId -Confirm:$false";
|
||||||
|
Logger.WriteLine(script);
|
||||||
|
RunCMD("powershell", script);
|
||||||
|
//Thread.Sleep(2000);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception ex )
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int SetClocksFromConfig()
|
public int SetClocksFromConfig()
|
||||||
@@ -86,7 +149,7 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
var coreClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Graphics, new PerformanceStates20ParameterDelta(core * 1000));
|
var coreClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Graphics, new PerformanceStates20ParameterDelta(core * 1000));
|
||||||
var memoryClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Memory, new PerformanceStates20ParameterDelta(memory * 1000));
|
var memoryClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Memory, new PerformanceStates20ParameterDelta(memory * 1000));
|
||||||
|
|
||||||
PerformanceStates20ClockEntryV1[] clocks = { coreClock , memoryClock};
|
PerformanceStates20ClockEntryV1[] clocks = { coreClock, memoryClock };
|
||||||
PerformanceStates20BaseVoltageEntryV1[] voltages = { };
|
PerformanceStates20BaseVoltageEntryV1[] voltages = { };
|
||||||
|
|
||||||
PerformanceState20[] performanceStates = { new PerformanceState20(PerformanceStateId.P0_3DPerformance, clocks, voltages) };
|
PerformanceState20[] performanceStates = { new PerformanceState20(PerformanceStateId.P0_3DPerformance, clocks, voltages) };
|
||||||
@@ -95,12 +158,12 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
Logger.WriteLine($"SET GPU CLOCKS: {core}, {memory}");
|
||||||
GPUApi.SetPerformanceStates20(internalGpu.Handle, overclock);
|
GPUApi.SetPerformanceStates20(internalGpu.Handle, overclock);
|
||||||
Logger.WriteLine($"SET GPU Clock offsets : {core}, {memory}");
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.WriteLine(ex.Message);
|
Logger.WriteLine("SET GPU CLOCKS: "+ex.Message);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,9 +41,9 @@ public static class HardwareControl
|
|||||||
if (fan > fanMax && fan < 110) SetFanMax(fan);
|
if (fan > fanMax && fan < 110) SetFanMax(fan);
|
||||||
|
|
||||||
if (Program.config.getConfig("fan_rpm") == 1)
|
if (Program.config.getConfig("fan_rpm") == 1)
|
||||||
return " Fan: " + (fan * 100).ToString() + "RPM";
|
return GHelper.Properties.Strings.FanSpeed + (fan * 100).ToString() + GHelper.Properties.Strings.RPM;
|
||||||
else
|
else
|
||||||
return " Fan: " + Math.Min(Math.Round((float)fan / fanMax * 100), 100).ToString() + "%"; // relatively to 6000 rpm
|
return GHelper.Properties.Strings.FanSpeed + Math.Min(Math.Round((float)fan / fanMax * 100), 100).ToString() + "%"; // relatively to 6000 rpm
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int GetGpuUse()
|
private static int GetGpuUse()
|
||||||
@@ -51,6 +51,7 @@ public static class HardwareControl
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
int? gpuUse = GpuControl?.GetGpuUse();
|
int? gpuUse = GpuControl?.GetGpuUse();
|
||||||
|
Logger.WriteLine("GPU usage: " + GpuControl?.FullName + " " + gpuUse + "%");
|
||||||
if (gpuUse is not null) return (int)gpuUse;
|
if (gpuUse is not null) return (int)gpuUse;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@@ -81,9 +82,9 @@ public static class HardwareControl
|
|||||||
cpuTemp = ct.NextValue() - 273;
|
cpuTemp = ct.NextValue() - 273;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.WriteLine("Failed reading CPU temp");
|
Debug.WriteLine("Failed reading CPU temp :" + ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -94,8 +95,7 @@ public static class HardwareControl
|
|||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
gpuTemp = -1;
|
gpuTemp = -1;
|
||||||
Debug.WriteLine("Failed reading GPU temp");
|
Debug.WriteLine("Failed reading GPU temp :" + ex.Message);
|
||||||
Debug.WriteLine(ex.ToString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gpuTemp is null || gpuTemp < 0)
|
if (gpuTemp is null || gpuTemp < 0)
|
||||||
@@ -114,7 +114,7 @@ public static class HardwareControl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsUsedGPU(int threshold = 20)
|
public static bool IsUsedGPU(int threshold = 10)
|
||||||
{
|
{
|
||||||
if (GetGpuUse() > threshold)
|
if (GetGpuUse() > threshold)
|
||||||
{
|
{
|
||||||
@@ -133,7 +133,7 @@ public static class HardwareControl
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RecreateGpuControlWithDelay(int delay = 3)
|
public static void RecreateGpuControlWithDelay(int delay = 5)
|
||||||
{
|
{
|
||||||
// Re-enabling the discrete GPU takes a bit of time,
|
// Re-enabling the discrete GPU takes a bit of time,
|
||||||
// so a simple workaround is to refresh again after that happens
|
// so a simple workaround is to refresh again after that happens
|
||||||
|
|||||||
@@ -647,12 +647,14 @@ public class NativeMethods
|
|||||||
//Logger.WriteLine(screen.DeviceName);
|
//Logger.WriteLine(screen.DeviceName);
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (displayNum > 0 && count == 0) laptopScreen = defaultDevice;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.WriteLine(ex.ToString());
|
Logger.WriteLine(ex.ToString());
|
||||||
Logger.WriteLine("Can't detect internal screen");
|
Logger.WriteLine("Can't detect internal screen");
|
||||||
//laptopScreen = Screen.PrimaryScreen.DeviceName;
|
laptopScreen = Screen.PrimaryScreen.DeviceName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -761,6 +763,7 @@ public class NativeMethods
|
|||||||
{
|
{
|
||||||
PowerSetActiveScheme(IntPtr.Zero, new Guid(scheme));
|
PowerSetActiveScheme(IntPtr.Zero, new Guid(scheme));
|
||||||
PowerSetActiveOverlayScheme(new Guid(scheme));
|
PowerSetActiveOverlayScheme(new Guid(scheme));
|
||||||
|
Logger.WriteLine(scheme);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetPowerScheme(int mode)
|
public static void SetPowerScheme(int mode)
|
||||||
|
|||||||
38
app/OptimizationService.cs
Normal file
38
app/OptimizationService.cs
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace GHelper
|
||||||
|
{
|
||||||
|
public static class OptimizationService
|
||||||
|
{
|
||||||
|
public static void SetChargeLimit (int newValue)
|
||||||
|
{
|
||||||
|
// Set the path to the .ini file
|
||||||
|
string path = @"C:\ProgramData\ASUS\ASUS System Control Interface\ASUSOptimization\Customization.ini";
|
||||||
|
|
||||||
|
|
||||||
|
// Make a backup copy of the INI file
|
||||||
|
string backupPath = path + ".bak";
|
||||||
|
File.Copy(path, backupPath, true);
|
||||||
|
|
||||||
|
string fileContents = File.ReadAllText(path, Encoding.Unicode);
|
||||||
|
|
||||||
|
// Find the section [BatteryHealthCharging]
|
||||||
|
string sectionPattern = @"\[BatteryHealthCharging\]\s*(version=\d+)?\s+value=(\d+)";
|
||||||
|
Match sectionMatch = Regex.Match(fileContents, sectionPattern);
|
||||||
|
if (sectionMatch.Success)
|
||||||
|
{
|
||||||
|
// Replace the value with the new value
|
||||||
|
string oldValueString = sectionMatch.Groups[2].Value;
|
||||||
|
int oldValue = int.Parse(oldValueString);
|
||||||
|
string newSection = sectionMatch.Value.Replace($"value={oldValue}", $"value={newValue}");
|
||||||
|
|
||||||
|
// Replace the section in the file contents
|
||||||
|
fileContents = fileContents.Replace(sectionMatch.Value, newSection);
|
||||||
|
|
||||||
|
File.WriteAllText(path, fileContents, Encoding.Unicode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
using GHelper.Gpu;
|
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
@@ -43,7 +42,7 @@ namespace GHelper
|
|||||||
Thread.CurrentThread.CurrentUICulture = CultureInfo.CurrentUICulture;
|
Thread.CurrentThread.CurrentUICulture = CultureInfo.CurrentUICulture;
|
||||||
Debug.WriteLine(CultureInfo.CurrentUICulture);
|
Debug.WriteLine(CultureInfo.CurrentUICulture);
|
||||||
|
|
||||||
//Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("zh");
|
//Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr");
|
||||||
|
|
||||||
CheckProcesses();
|
CheckProcesses();
|
||||||
|
|
||||||
@@ -64,7 +63,7 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
Logger.WriteLine("------------");
|
Logger.WriteLine("------------");
|
||||||
Logger.WriteLine("App launched: " + config.GetModel() + " :" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + (IsUserAdministrator()?"A":""));
|
Logger.WriteLine("App launched: " + config.GetModel() + " :" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + (IsUserAdministrator() ? "A" : ""));
|
||||||
|
|
||||||
Application.EnableVisualStyles();
|
Application.EnableVisualStyles();
|
||||||
|
|
||||||
@@ -91,14 +90,21 @@ namespace GHelper
|
|||||||
unRegPowerNotify = NativeMethods.RegisterPowerSettingNotification(ds, settingGuid.ConsoleDisplayState, NativeMethods.DEVICE_NOTIFY_WINDOW_HANDLE);
|
unRegPowerNotify = NativeMethods.RegisterPowerSettingNotification(ds, settingGuid.ConsoleDisplayState, NativeMethods.DEVICE_NOTIFY_WINDOW_HANDLE);
|
||||||
|
|
||||||
// CTRL + SHIFT + F5 to cycle profiles
|
// CTRL + SHIFT + F5 to cycle profiles
|
||||||
var ghk = new KeyHandler(KeyHandler.SHIFT | KeyHandler.CTRL, Keys.F5, ds);
|
Keys keybind_profile = (config.getConfig("keybind_profile") != -1) ? (Keys)config.getConfig("keybind_profile") : Keys.F5;
|
||||||
ghk.Register();
|
if (keybind_profile != 0)
|
||||||
|
{
|
||||||
|
var ghk = new KeyHandler(KeyHandler.SHIFT | KeyHandler.CTRL, keybind_profile, ds);
|
||||||
|
ghk.Register();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (Environment.CurrentDirectory.Trim('\\') == Application.StartupPath.Trim('\\') || action.Length > 0)
|
if (Environment.CurrentDirectory.Trim('\\') == Application.StartupPath.Trim('\\') || action.Length > 0)
|
||||||
{
|
{
|
||||||
SettingsToggle(action);
|
SettingsToggle(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Task.Run(wmi.RunListener);
|
||||||
|
|
||||||
Application.Run();
|
Application.Run();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -153,7 +159,7 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
settingsForm.AutoKeyboard();
|
settingsForm.AutoKeyboard();
|
||||||
settingsForm.SetMatrix();
|
settingsForm.matrix.SetMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
|
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
|
||||||
@@ -253,6 +259,23 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void TabletMode()
|
||||||
|
{
|
||||||
|
bool touchpadState, tabletState;
|
||||||
|
|
||||||
|
using (var key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\PrecisionTouchPad\Status", false))
|
||||||
|
{
|
||||||
|
touchpadState = (key?.GetValue("Enabled")?.ToString() == "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
tabletState = wmi.DeviceGet(ASUSWmi.TabletState) > 0;
|
||||||
|
|
||||||
|
Logger.WriteLine("Tablet: " + tabletState + " Touchpad: " + touchpadState);
|
||||||
|
|
||||||
|
if ((tabletState && touchpadState) || (!tabletState && !touchpadState))
|
||||||
|
wmi.DeviceSet(ASUSWmi.UniversalControl, ASUSWmi.Touchpad_Toggle, "Touchpad");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static void WatcherEventArrived(object sender, EventArrivedEventArgs e)
|
static void WatcherEventArrived(object sender, EventArrivedEventArgs e)
|
||||||
{
|
{
|
||||||
@@ -278,6 +301,10 @@ namespace GHelper
|
|||||||
case 179: // FN+F4
|
case 179: // FN+F4
|
||||||
KeyProcess("fnf4");
|
KeyProcess("fnf4");
|
||||||
return;
|
return;
|
||||||
|
case 189: // Tablet mode
|
||||||
|
TabletMode();
|
||||||
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -291,16 +318,19 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
settingsForm.Show();
|
settingsForm.Show();
|
||||||
settingsForm.Activate();
|
settingsForm.Activate();
|
||||||
|
settingsForm.VisualiseGPUMode();
|
||||||
|
|
||||||
if (action == "gpu")
|
switch (action)
|
||||||
{
|
{
|
||||||
Startup.ReScheduleAdmin();
|
case "gpu":
|
||||||
settingsForm.FansToggle();
|
Startup.ReScheduleAdmin();
|
||||||
|
settingsForm.FansToggle();
|
||||||
|
break;
|
||||||
|
case "gpurestart":
|
||||||
|
settingsForm.RestartGPU(false);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
settingsForm.VisualiseGPUMode();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TrayIcon_MouseClick(object? sender, MouseEventArgs e)
|
static void TrayIcon_MouseClick(object? sender, MouseEventArgs e)
|
||||||
@@ -368,7 +398,7 @@ namespace GHelper
|
|||||||
startInfo.Arguments = param;
|
startInfo.Arguments = param;
|
||||||
startInfo.Verb = "runas";
|
startInfo.Verb = "runas";
|
||||||
Process.Start(startInfo);
|
Process.Start(startInfo);
|
||||||
//Application.Exit();
|
Application.Exit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
82
app/Properties/Strings.Designer.cs
generated
82
app/Properties/Strings.Designer.cs
generated
@@ -1,7 +1,6 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:4.0.30319.42000
|
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
@@ -168,6 +167,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Auto adjust Windows Power Mode.
|
||||||
|
/// </summary>
|
||||||
|
internal static string ApplyWindowsPowerPlan {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("ApplyWindowsPowerPlan", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Breathe.
|
/// Looks up a localized string similar to Breathe.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -267,6 +275,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Seconds to turn off backlight on battery.
|
||||||
|
/// </summary>
|
||||||
|
internal static string BacklightTimeout {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("BacklightTimeout", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Balanced.
|
/// Looks up a localized string similar to Balanced.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -465,6 +482,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Fan: .
|
||||||
|
/// </summary>
|
||||||
|
internal static string FanSpeed {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("FanSpeed", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Fans + Power.
|
/// Looks up a localized string similar to Fans + Power.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -474,6 +500,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Dynamic Boost.
|
||||||
|
/// </summary>
|
||||||
|
internal static string GPUBoost {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("GPUBoost", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Changing.
|
/// Looks up a localized string similar to Changing.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -483,6 +518,24 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Core Clock Offset.
|
||||||
|
/// </summary>
|
||||||
|
internal static string GPUCoreClockOffset {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("GPUCoreClockOffset", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Memory Clock Offset.
|
||||||
|
/// </summary>
|
||||||
|
internal static string GPUMemoryClockOffset {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("GPUMemoryClockOffset", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to GPU Mode.
|
/// Looks up a localized string similar to GPU Mode.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -528,6 +581,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Temperature Target.
|
||||||
|
/// </summary>
|
||||||
|
internal static string GPUTempTarget {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("GPUTempTarget", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Key Bindings.
|
/// Looks up a localized string similar to Key Bindings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -609,6 +671,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Audio Visualizer.
|
||||||
|
/// </summary>
|
||||||
|
internal static string MatrixAudio {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("MatrixAudio", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Binary Banner.
|
/// Looks up a localized string similar to Binary Banner.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -825,6 +896,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Something is using dGPU and preventing Eco mode. Restart dGPU in device manager? * Please proceed on your own risk..
|
||||||
|
/// </summary>
|
||||||
|
internal static string RestartGPU {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("RestartGPU", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to RPM.
|
/// Looks up a localized string similar to RPM.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -59,106 +59,115 @@
|
|||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="ACPIError" xml:space="preserve">
|
<data name="ACPIError" xml:space="preserve">
|
||||||
<value>Can't connect to ASUS ACPI. Application can't function without it. Try to install Asus System Control Interface</value>
|
<value>Verbindung zu ASUS ACPI fehlgeschlagen. G-Helper kann nicht ausgeführt werden. Bitte installiere ASUS System Control Interface.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertDGPU" xml:space="preserve">
|
<data name="AlertDGPU" xml:space="preserve">
|
||||||
<value>Looks like GPU is in heavy use, disable it?</value>
|
<value>Die GPU wird gerade verwendet. Trotzdem deaktivieren?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertDGPUTitle" xml:space="preserve">
|
<data name="AlertDGPUTitle" xml:space="preserve">
|
||||||
<value>Eco Mode</value>
|
<value>Eco Modus</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateOff" xml:space="preserve">
|
<data name="AlertUltimateOff" xml:space="preserve">
|
||||||
<value>Switching off Ultimate Mode requires restart</value>
|
<value>Wechseln in den Ultimate Modus benötigt einen Neustart. Jetzt neustarten?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateOn" xml:space="preserve">
|
<data name="AlertUltimateOn" xml:space="preserve">
|
||||||
<value>Ultimate Mode requires restart</value>
|
<value>Ultimate Modus benötigt einen Neustart</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||||
<value>Reboot now?</value>
|
<value>Jetzt neustarten?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AnimationSpeed" xml:space="preserve">
|
<data name="AnimationSpeed" xml:space="preserve">
|
||||||
<value>Animation Speed</value>
|
<value>Animationsgeschwindigkeit</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AnimeMatrix" xml:space="preserve">
|
<data name="AnimeMatrix" xml:space="preserve">
|
||||||
<value>Anime Matrix</value>
|
<value>AniMeMatrix</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AppAlreadyRunning" xml:space="preserve">
|
<data name="AppAlreadyRunning" xml:space="preserve">
|
||||||
<value>App already running</value>
|
<value>Die Anwendung läuft bereits</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AppAlreadyRunningText" xml:space="preserve">
|
<data name="AppAlreadyRunningText" xml:space="preserve">
|
||||||
<value>G-Helper is already running. Check system tray for an icon.</value>
|
<value>G-Helper läuft bereits. Bitte prüfe den Systemtray.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyFanCurve" xml:space="preserve">
|
<data name="ApplyFanCurve" xml:space="preserve">
|
||||||
<value>Apply Custom Fan Curve</value>
|
<value>Lüfterkurve anweden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>Apply Power Limits</value>
|
<value>Leistunsgrenzen anwenden</value>
|
||||||
|
</data>
|
||||||
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
|
<value>Windows Leistungsmodus automatisch anpassen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>Breathe</value>
|
<value>Atmen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraColorCycle" xml:space="preserve">
|
<data name="AuraColorCycle" xml:space="preserve">
|
||||||
<value>Color Cycle</value>
|
<value>Farbwechsel</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraFast" xml:space="preserve">
|
<data name="AuraFast" xml:space="preserve">
|
||||||
<value>Fast</value>
|
<value>Schnell</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraNormal" xml:space="preserve">
|
<data name="AuraNormal" xml:space="preserve">
|
||||||
<value>Normal</value>
|
<value>Normal</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraRainbow" xml:space="preserve">
|
<data name="AuraRainbow" xml:space="preserve">
|
||||||
<value>Rainbow</value>
|
<value>Regenbogen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraSlow" xml:space="preserve">
|
<data name="AuraSlow" xml:space="preserve">
|
||||||
<value>Slow</value>
|
<value>Langsam</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraStatic" xml:space="preserve">
|
<data name="AuraStatic" xml:space="preserve">
|
||||||
<value>Static</value>
|
<value>Statisch</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraStrobe" xml:space="preserve">
|
<data name="AuraStrobe" xml:space="preserve">
|
||||||
<value>Strobe</value>
|
<value>Stroboskop</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutoMode" xml:space="preserve">
|
<data name="AutoMode" xml:space="preserve">
|
||||||
<value>Auto</value>
|
<value>Auto</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutoRefreshTooltip" xml:space="preserve">
|
<data name="AutoRefreshTooltip" xml:space="preserve">
|
||||||
<value>Sets 60Hz to save battery, and back when plugged</value>
|
<value>60Hz im Batteriebetrieb Maximal wenn eingesteckt.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Awake" xml:space="preserve">
|
<data name="Awake" xml:space="preserve">
|
||||||
<value>Awake</value>
|
<value>Im Betrieb</value>
|
||||||
|
</data>
|
||||||
|
<data name="BacklightTimeout" xml:space="preserve">
|
||||||
|
<value>Tastaturbelechtung abschalten in (Sekunden)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="Balanced" xml:space="preserve">
|
||||||
<value>Balanced</value>
|
<value>Ausbalanciert</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||||
<value>Battery Charge Limit</value>
|
<value>Ladebegrenzung</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Boot" xml:space="preserve">
|
<data name="Boot" xml:space="preserve">
|
||||||
<value>Boot</value>
|
<value>Hochfahren</value>
|
||||||
|
</data>
|
||||||
|
<data name="Brightness" xml:space="preserve">
|
||||||
|
<value>Helligkeit</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Color" xml:space="preserve">
|
<data name="Color" xml:space="preserve">
|
||||||
<value>Color</value>
|
<value>Farbe</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPUBoost" xml:space="preserve">
|
<data name="CPUBoost" xml:space="preserve">
|
||||||
<value>CPU Boost</value>
|
<value>CPU Boost</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Custom" xml:space="preserve">
|
<data name="Custom" xml:space="preserve">
|
||||||
<value>Custom</value>
|
<value>Benutzerdefiniert</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>Default</value>
|
<value>Standard</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableOverdrive" xml:space="preserve">
|
<data name="DisableOverdrive" xml:space="preserve">
|
||||||
<value>Disable screen overdrive</value>
|
<value>Overdrive abschalten</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Discharging" xml:space="preserve">
|
<data name="Discharging" xml:space="preserve">
|
||||||
<value>Discharging</value>
|
<value>Entlädt</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DownloadUpdate" xml:space="preserve">
|
<data name="DownloadUpdate" xml:space="preserve">
|
||||||
<value>Download Update</value>
|
<value>Updates herunterladen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EcoGPUTooltip" xml:space="preserve">
|
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||||
<value>Disables dGPU for battery savings</value>
|
<value>dGPU zum Stromsparen abschalten</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EcoMode" xml:space="preserve">
|
<data name="EcoMode" xml:space="preserve">
|
||||||
<value>Eco</value>
|
<value>Eco</value>
|
||||||
@@ -167,172 +176,193 @@
|
|||||||
<value>Extra</value>
|
<value>Extra</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtraSettings" xml:space="preserve">
|
<data name="ExtraSettings" xml:space="preserve">
|
||||||
<value>Extra Settings</value>
|
<value>Extra-Einstellungen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FactoryDefaults" xml:space="preserve">
|
<data name="FactoryDefaults" xml:space="preserve">
|
||||||
<value>Factory Defaults</value>
|
<value>Werkseinstellungen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanCurves" xml:space="preserve">
|
<data name="FanCurves" xml:space="preserve">
|
||||||
<value>Fan Curves</value>
|
<value>Lüfterkurven</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfileCPU" xml:space="preserve">
|
<data name="FanProfileCPU" xml:space="preserve">
|
||||||
<value>CPU Fan Profile</value>
|
<value>CPU Lüfterprofil</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfileGPU" xml:space="preserve">
|
<data name="FanProfileGPU" xml:space="preserve">
|
||||||
<value>GPU Fan Profile</value>
|
<value>GPU Lüfterprofil</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfileMid" xml:space="preserve">
|
<data name="FanProfileMid" xml:space="preserve">
|
||||||
<value>Mid Fan Profile</value>
|
<value>Mittleres Lüfterprofil</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfiles" xml:space="preserve">
|
<data name="FanProfiles" xml:space="preserve">
|
||||||
<value>Fan Profiles</value>
|
<value>Lüfterprofile</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FansAndPower" xml:space="preserve">
|
<data name="FansAndPower" xml:space="preserve">
|
||||||
<value>Fans and Power</value>
|
<value>Lüfter und Leistung</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanSpeed" xml:space="preserve">
|
||||||
|
<value> Lüfter: </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FansPower" xml:space="preserve">
|
<data name="FansPower" xml:space="preserve">
|
||||||
<value>Fans + Power</value>
|
<value>Lüfter + Leistung</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUBoost" xml:space="preserve">
|
||||||
|
<value>Dynamic Boost</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUChanging" xml:space="preserve">
|
<data name="GPUChanging" xml:space="preserve">
|
||||||
<value>Changing</value>
|
<value>Wechseln</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUCoreClockOffset" xml:space="preserve">
|
||||||
|
<value>Kernfrequenz Anpassung</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUMemoryClockOffset" xml:space="preserve">
|
||||||
|
<value>Speicherfrequenz Anpassung</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUMode" xml:space="preserve">
|
<data name="GPUMode" xml:space="preserve">
|
||||||
<value>GPU Mode</value>
|
<value>GPU Modus</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeEco" xml:space="preserve">
|
<data name="GPUModeEco" xml:space="preserve">
|
||||||
<value>iGPU only</value>
|
<value>Nur iGPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeStandard" xml:space="preserve">
|
<data name="GPUModeStandard" xml:space="preserve">
|
||||||
<value>iGPU + dGPU</value>
|
<value>iGPU + dGPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeUltimate" xml:space="preserve">
|
<data name="GPUModeUltimate" xml:space="preserve">
|
||||||
<value>dGPU exclusive</value>
|
<value>Nur dGPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUTempTarget" xml:space="preserve">
|
||||||
|
<value>Maximale GPU Temperatur</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyBindings" xml:space="preserve">
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
<value>Key Bindings</value>
|
<value>Tastenbelegung</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Keyboard" xml:space="preserve">
|
<data name="Keyboard" xml:space="preserve">
|
||||||
<value>Keyboard</value>
|
<value>Tastatur</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyboardAuto" xml:space="preserve">
|
<data name="KeyboardAuto" xml:space="preserve">
|
||||||
<value>Lower backlight brightness on battery and back when plugged</value>
|
<value>Tastaturbeleuchtung im Batteriebetrieb abdunkeln.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyboardBacklight" xml:space="preserve">
|
<data name="KeyboardBacklight" xml:space="preserve">
|
||||||
<value>Keyboard Backlight</value>
|
<value>Tastaturbeleuchtung</value>
|
||||||
|
</data>
|
||||||
|
<data name="LaptopBacklight" xml:space="preserve">
|
||||||
|
<value>Laptopbelechtung</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LaptopKeyboard" xml:space="preserve">
|
<data name="LaptopKeyboard" xml:space="preserve">
|
||||||
<value>Laptop Keyboard</value>
|
<value>Laptoptastatur</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LaptopScreen" xml:space="preserve">
|
<data name="LaptopScreen" xml:space="preserve">
|
||||||
<value>Laptop Screen</value>
|
<value>Laptopbildschirm</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixBanner" xml:space="preserve">
|
<data name="MatrixBanner" xml:space="preserve">
|
||||||
<value>Binary Banner</value>
|
<value>Binary Banner</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixBright" xml:space="preserve">
|
<data name="MatrixBright" xml:space="preserve">
|
||||||
<value>Bright</value>
|
<value>Hell</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixClock" xml:space="preserve">
|
<data name="MatrixClock" xml:space="preserve">
|
||||||
<value>Clock</value>
|
<value>Uhr</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixDim" xml:space="preserve">
|
<data name="MatrixDim" xml:space="preserve">
|
||||||
<value>Dim</value>
|
<value>Dunkel</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixLogo" xml:space="preserve">
|
<data name="MatrixLogo" xml:space="preserve">
|
||||||
<value>Rog Logo</value>
|
<value>ROG Logo</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixMedium" xml:space="preserve">
|
<data name="MatrixMedium" xml:space="preserve">
|
||||||
<value>Medium</value>
|
<value>Mittel</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixOff" xml:space="preserve">
|
<data name="MatrixOff" xml:space="preserve">
|
||||||
<value>Off</value>
|
<value>Aus</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixPicture" xml:space="preserve">
|
<data name="MatrixPicture" xml:space="preserve">
|
||||||
<value>Picture</value>
|
<value>Bild</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MaxRefreshTooltip" xml:space="preserve">
|
<data name="MaxRefreshTooltip" xml:space="preserve">
|
||||||
<value>Max refresh rate for lower latency</value>
|
<value>Maximale Wiederholrate für niedrigste Latenz</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MinRefreshTooltip" xml:space="preserve">
|
<data name="MinRefreshTooltip" xml:space="preserve">
|
||||||
<value>60Hz refresh rate to save battery</value>
|
<value>60Hz um Strom zu sparen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multizone</value>
|
<value>Multi-Zone</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Open G-Helper window</value>
|
<value>G-Helper Fenster öffnen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Optimized" xml:space="preserve">
|
<data name="Optimized" xml:space="preserve">
|
||||||
<value>Optimized</value>
|
<value>Optimiert</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||||
<value>Switch to Eco on battery and to Standard when plugged</value>
|
<value>Eco Modus im Batteriebetrieb, Standard wenn eingesteckt.</value>
|
||||||
|
</data>
|
||||||
|
<data name="OptimizedUSBC" xml:space="preserve">
|
||||||
|
<value>GPU beim USB-C Laden im Optimierten Modus deaktiviert lassen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Other" xml:space="preserve">
|
<data name="Other" xml:space="preserve">
|
||||||
<value>Other</value>
|
<value>Sonstiges</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Overdrive" xml:space="preserve">
|
<data name="Overdrive" xml:space="preserve">
|
||||||
<value>Overdrive</value>
|
<value>Overdrive</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PerformanceMode" xml:space="preserve">
|
<data name="PerformanceMode" xml:space="preserve">
|
||||||
<value>Performance Mode</value>
|
<value>Leistungsmodus</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PictureGif" xml:space="preserve">
|
<data name="PictureGif" xml:space="preserve">
|
||||||
<value>Picture / Gif</value>
|
<value>Bild / GIF</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PlayPause" xml:space="preserve">
|
<data name="PlayPause" xml:space="preserve">
|
||||||
<value>Play / Pause</value>
|
<value>Wiedergabe / Pause</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PowerLimits" xml:space="preserve">
|
<data name="PowerLimits" xml:space="preserve">
|
||||||
<value>Power Limits (PPT)</value>
|
<value>Leistungsbegrenzung (PPT)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PPTExperimental" xml:space="preserve">
|
<data name="PPTExperimental" xml:space="preserve">
|
||||||
<value>Power Limits (PPT) is experimental feature. Use carefully and on your own risk!</value>
|
<value>Leistungsbegrenzung (PPT) ist experimentell. Nutzung erfolgt auf eigene Gefahr!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PrintScreen" xml:space="preserve">
|
<data name="PrintScreen" xml:space="preserve">
|
||||||
<value>PrintScreen</value>
|
<value>Druck</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Quit" xml:space="preserve">
|
<data name="Quit" xml:space="preserve">
|
||||||
<value>Quit</value>
|
<value>Schließen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RPM" xml:space="preserve">
|
<data name="RPM" xml:space="preserve">
|
||||||
<value>RPM</value>
|
<value>U/Min</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RunOnStartup" xml:space="preserve">
|
<data name="RunOnStartup" xml:space="preserve">
|
||||||
<value>Run on Startup</value>
|
<value>Beim Start ausführen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Shutdown" xml:space="preserve">
|
<data name="Shutdown" xml:space="preserve">
|
||||||
<value>Shutdown</value>
|
<value>Herunterfahren</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Silent" xml:space="preserve">
|
<data name="Silent" xml:space="preserve">
|
||||||
<value>Silent</value>
|
<value>Leise</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Sleep" xml:space="preserve">
|
<data name="Sleep" xml:space="preserve">
|
||||||
<value>Sleep</value>
|
<value>Standby</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StandardGPUTooltip" xml:space="preserve">
|
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||||
<value>Enables dGPU for standard use</value>
|
<value>dGPU aktivieren</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StandardMode" xml:space="preserve">
|
<data name="StandardMode" xml:space="preserve">
|
||||||
<value>Standard</value>
|
<value>Standard</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartupError" xml:space="preserve">
|
<data name="StartupError" xml:space="preserve">
|
||||||
<value>Startup Error</value>
|
<value>Startfehler</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleAura" xml:space="preserve">
|
<data name="ToggleAura" xml:space="preserve">
|
||||||
<value>Toggle Aura</value>
|
<value>Aura umschalten</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Turbo" xml:space="preserve">
|
<data name="Turbo" xml:space="preserve">
|
||||||
<value>Turbo</value>
|
<value>Turbo</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TurnedOff" xml:space="preserve">
|
<data name="TurnedOff" xml:space="preserve">
|
||||||
<value>Turned off</value>
|
<value>Ausgeschaltet</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TurnOffOnBattery" xml:space="preserve">
|
<data name="TurnOffOnBattery" xml:space="preserve">
|
||||||
<value>Turn off on battery</value>
|
<value>Im Batteriebetrieb abschalten</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||||
<value>Routes laptop screen to dGPU, maximizing FPS</value>
|
<value>Verbindet den Bildschirm mit der dGPU für maximale Leistung.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UltimateMode" xml:space="preserve">
|
<data name="UltimateMode" xml:space="preserve">
|
||||||
<value>Ultimate</value>
|
<value>Ultimate</value>
|
||||||
@@ -341,9 +371,9 @@
|
|||||||
<value>Version</value>
|
<value>Version</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VolumeMute" xml:space="preserve">
|
<data name="VolumeMute" xml:space="preserve">
|
||||||
<value>Volume Mute</value>
|
<value>Stummschalten</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WindowTop" xml:space="preserve">
|
<data name="WindowTop" xml:space="preserve">
|
||||||
<value>Keep app window always on top</value>
|
<value>Fenster immer über allen anderen</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -153,6 +153,9 @@
|
|||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>Aplicar límites de energía</value>
|
<value>Aplicar límites de energía</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
|
<value>Auto Adjust Windows Power Mode</value>
|
||||||
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>Respiración</value>
|
<value>Respiración</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -270,6 +273,9 @@
|
|||||||
<data name="GPUModeUltimate" xml:space="preserve">
|
<data name="GPUModeUltimate" xml:space="preserve">
|
||||||
<value>Exclusivo dGPU</value>
|
<value>Exclusivo dGPU</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="GPUSettings" xml:space="preserve">
|
||||||
|
<value>Ajustes de GPU</value>
|
||||||
|
</data>
|
||||||
<data name="KeyBindings" xml:space="preserve">
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
<value>Atajos de teclado</value>
|
<value>Atajos de teclado</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -288,6 +294,15 @@
|
|||||||
<data name="LaptopScreen" xml:space="preserve">
|
<data name="LaptopScreen" xml:space="preserve">
|
||||||
<value>Pantalla del portátil</value>
|
<value>Pantalla del portátil</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Lid" xml:space="preserve">
|
||||||
|
<value>Tapa</value>
|
||||||
|
</data>
|
||||||
|
<data name="Lightbar" xml:space="preserve">
|
||||||
|
<value>Barra de luz</value>
|
||||||
|
</data>
|
||||||
|
<data name="Logo" xml:space="preserve">
|
||||||
|
<value>Logo</value>
|
||||||
|
</data>
|
||||||
<data name="MatrixBanner" xml:space="preserve">
|
<data name="MatrixBanner" xml:space="preserve">
|
||||||
<value>Banner binario</value>
|
<value>Banner binario</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -388,7 +403,7 @@
|
|||||||
<value>Alternar Aura</value>
|
<value>Alternar Aura</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleMiniled" xml:space="preserve">
|
<data name="ToggleMiniled" xml:space="preserve">
|
||||||
<value>Alternar Miniled (si es compatible)</value>
|
<value>Alternar Miniled (si comp.)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleScreen" xml:space="preserve">
|
<data name="ToggleScreen" xml:space="preserve">
|
||||||
<value>Alternar pantalla</value>
|
<value>Alternar pantalla</value>
|
||||||
|
|||||||
@@ -59,280 +59,283 @@
|
|||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="ACPIError" xml:space="preserve">
|
<data name="ACPIError" xml:space="preserve">
|
||||||
<value>Can't connect to ASUS ACPI. Application can't function without it. Try to install Asus System Control Interface</value>
|
<value>Connexion impossible avec ASUS ACPI. L’application ne peut fonctionner sans. Veuillez installer Asus System Control Interface.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertDGPU" xml:space="preserve">
|
<data name="AlertDGPU" xml:space="preserve">
|
||||||
<value>Looks like GPU is in heavy use, disable it?</value>
|
<value>Le GPU semble être surchargé, voulez vous le désactiver ?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertDGPUTitle" xml:space="preserve">
|
<data name="AlertDGPUTitle" xml:space="preserve">
|
||||||
<value>Eco Mode</value>
|
<value>Mode Économique</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateOff" xml:space="preserve">
|
<data name="AlertUltimateOff" xml:space="preserve">
|
||||||
<value>Switching off Ultimate Mode requires restart</value>
|
<value>Désactiver le Mode Ultime requiert un redémarrage</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateOn" xml:space="preserve">
|
<data name="AlertUltimateOn" xml:space="preserve">
|
||||||
<value>Ultimate Mode requires restart</value>
|
<value>Activer le Mode Ultime requiert un redémarrage</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||||
<value>Reboot now?</value>
|
<value>Redémarrer maintenant ?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AnimationSpeed" xml:space="preserve">
|
<data name="AnimationSpeed" xml:space="preserve">
|
||||||
<value>Animation Speed</value>
|
<value>Vitesse d’animation</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AnimeMatrix" xml:space="preserve">
|
<data name="AnimeMatrix" xml:space="preserve">
|
||||||
<value>Anime Matrix</value>
|
<value>Anime Matrix</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AppAlreadyRunning" xml:space="preserve">
|
<data name="AppAlreadyRunning" xml:space="preserve">
|
||||||
<value>App already running</value>
|
<value>L’application est déjà en cours d’éxecution</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AppAlreadyRunningText" xml:space="preserve">
|
<data name="AppAlreadyRunningText" xml:space="preserve">
|
||||||
<value>G-Helper is already running. Check system tray for an icon.</value>
|
<value>G-Helper est déjà en cours d'exécution. Vérifiez la barre d'état du système</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyFanCurve" xml:space="preserve">
|
<data name="ApplyFanCurve" xml:space="preserve">
|
||||||
<value>Apply Custom Fan Curve</value>
|
<value>Appliquer la courbe de ventilateur personnalisée</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>Apply Power Limits</value>
|
<value>Appliquer les limites de performance</value>
|
||||||
|
</data>
|
||||||
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
|
<value>Ajuster automatiquement les modes de Performance Windows</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>Breathe</value>
|
<value>Respiration</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraColorCycle" xml:space="preserve">
|
<data name="AuraColorCycle" xml:space="preserve">
|
||||||
<value>Color Cycle</value>
|
<value>Cycle de couleur</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraFast" xml:space="preserve">
|
<data name="AuraFast" xml:space="preserve">
|
||||||
<value>Fast</value>
|
<value>Rapide</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraNormal" xml:space="preserve">
|
<data name="AuraNormal" xml:space="preserve">
|
||||||
<value>Normal</value>
|
<value>Normal</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraRainbow" xml:space="preserve">
|
<data name="AuraRainbow" xml:space="preserve">
|
||||||
<value>Rainbow</value>
|
<value>Arc-en-ciel</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraSlow" xml:space="preserve">
|
<data name="AuraSlow" xml:space="preserve">
|
||||||
<value>Slow</value>
|
<value>Lent</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraStatic" xml:space="preserve">
|
<data name="AuraStatic" xml:space="preserve">
|
||||||
<value>Static</value>
|
<value>Statique</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraStrobe" xml:space="preserve">
|
<data name="AuraStrobe" xml:space="preserve">
|
||||||
<value>Strobe</value>
|
<value>Stroboscopique</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutoMode" xml:space="preserve">
|
<data name="AutoMode" xml:space="preserve">
|
||||||
<value>Auto</value>
|
<value>Automatique</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutoRefreshTooltip" xml:space="preserve">
|
<data name="AutoRefreshTooltip" xml:space="preserve">
|
||||||
<value>Sets 60Hz to save battery, and back when plugged</value>
|
<value>Limiter le rafraîchissement de l’écran à 60Hz pour économiser de la batterie, et retour à la normal en chargement</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Awake" xml:space="preserve">
|
<data name="Awake" xml:space="preserve">
|
||||||
<value>Awake</value>
|
<value>Éveillé</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="Balanced" xml:space="preserve">
|
||||||
<value>Balanced</value>
|
<value>Balancé</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||||
<value>Battery Charge Limit</value>
|
<value>Limite de charge de la batterie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Boot" xml:space="preserve">
|
<data name="Boot" xml:space="preserve">
|
||||||
<value>Boot</value>
|
<value>Au lancement</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Color" xml:space="preserve">
|
<data name="Color" xml:space="preserve">
|
||||||
<value>Color</value>
|
<value>Couleur</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPUBoost" xml:space="preserve">
|
<data name="CPUBoost" xml:space="preserve">
|
||||||
<value>CPU Boost</value>
|
<value>CPU Boost</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Custom" xml:space="preserve">
|
<data name="Custom" xml:space="preserve">
|
||||||
<value>Custom</value>
|
<value>Personnalisé</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>Default</value>
|
<value>Par défaut</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableOverdrive" xml:space="preserve">
|
<data name="DisableOverdrive" xml:space="preserve">
|
||||||
<value>Disable screen overdrive</value>
|
<value>Désactiver l’Overdrive de l’Écran</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Discharging" xml:space="preserve">
|
<data name="Discharging" xml:space="preserve">
|
||||||
<value>Discharging</value>
|
<value>En déchargement</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DownloadUpdate" xml:space="preserve">
|
<data name="DownloadUpdate" xml:space="preserve">
|
||||||
<value>Download Update</value>
|
<value>Télécharger la mise à jour</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EcoGPUTooltip" xml:space="preserve">
|
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||||
<value>Disables dGPU for battery savings</value>
|
<value>Désactive le dGPU pour économiser la batterie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EcoMode" xml:space="preserve">
|
<data name="EcoMode" xml:space="preserve">
|
||||||
<value>Eco</value>
|
<value>Économique</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Extra" xml:space="preserve">
|
<data name="Extra" xml:space="preserve">
|
||||||
<value>Extra</value>
|
<value>Aditionnel</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtraSettings" xml:space="preserve">
|
<data name="ExtraSettings" xml:space="preserve">
|
||||||
<value>Extra Settings</value>
|
<value>Paramètres additionnels</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FactoryDefaults" xml:space="preserve">
|
<data name="FactoryDefaults" xml:space="preserve">
|
||||||
<value>Factory Defaults</value>
|
<value>Paramètres d'usine</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanCurves" xml:space="preserve">
|
<data name="FanCurves" xml:space="preserve">
|
||||||
<value>Fan Curves</value>
|
<value>Courbes des ventilateurs</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfileCPU" xml:space="preserve">
|
<data name="FanProfileCPU" xml:space="preserve">
|
||||||
<value>CPU Fan Profile</value>
|
<value>Profil de ventilateur CPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfileGPU" xml:space="preserve">
|
<data name="FanProfileGPU" xml:space="preserve">
|
||||||
<value>GPU Fan Profile</value>
|
<value>Profil de ventilateur GPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfileMid" xml:space="preserve">
|
<data name="FanProfileMid" xml:space="preserve">
|
||||||
<value>Mid Fan Profile</value>
|
<value>Profil de ventilateur central</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfiles" xml:space="preserve">
|
<data name="FanProfiles" xml:space="preserve">
|
||||||
<value>Fan Profiles</value>
|
<value>Profil des ventilateurs </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FansAndPower" xml:space="preserve">
|
<data name="FansAndPower" xml:space="preserve">
|
||||||
<value>Fans and Power</value>
|
<value>Ventilateurs et Puissance</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FansPower" xml:space="preserve">
|
<data name="FansPower" xml:space="preserve">
|
||||||
<value>Fans + Power</value>
|
<value>Ventilateurs + Puissance</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUChanging" xml:space="preserve">
|
<data name="GPUChanging" xml:space="preserve">
|
||||||
<value>Changing</value>
|
<value>Changement</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUMode" xml:space="preserve">
|
<data name="GPUMode" xml:space="preserve">
|
||||||
<value>GPU Mode</value>
|
<value>Mode de GPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeEco" xml:space="preserve">
|
<data name="GPUModeEco" xml:space="preserve">
|
||||||
<value>iGPU only</value>
|
<value>Seulement iGPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeStandard" xml:space="preserve">
|
<data name="GPUModeStandard" xml:space="preserve">
|
||||||
<value>iGPU + dGPU</value>
|
<value>iGPU + dGPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeUltimate" xml:space="preserve">
|
<data name="GPUModeUltimate" xml:space="preserve">
|
||||||
<value>dGPU exclusive</value>
|
<value>Exclusivement dGPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyBindings" xml:space="preserve">
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
<value>Key Bindings</value>
|
<value>Raccourcis clavier</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Keyboard" xml:space="preserve">
|
<data name="Keyboard" xml:space="preserve">
|
||||||
<value>Keyboard</value>
|
<value>Clavier</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyboardAuto" xml:space="preserve">
|
<data name="KeyboardAuto" xml:space="preserve">
|
||||||
<value>Lower backlight brightness on battery and back when plugged</value>
|
<value>Baisser la luminosité du rétroéclairage sur batterie et retour à la normal en charge</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyboardBacklight" xml:space="preserve">
|
<data name="KeyboardBacklight" xml:space="preserve">
|
||||||
<value>Keyboard Backlight</value>
|
<value>Rétroéclairage du clavier</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LaptopKeyboard" xml:space="preserve">
|
<data name="LaptopKeyboard" xml:space="preserve">
|
||||||
<value>Laptop Keyboard</value>
|
<value>Clavier de l’ordinateur</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LaptopScreen" xml:space="preserve">
|
<data name="LaptopScreen" xml:space="preserve">
|
||||||
<value>Laptop Screen</value>
|
<value>Écran de l’ordinateur</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixBanner" xml:space="preserve">
|
<data name="MatrixBanner" xml:space="preserve">
|
||||||
<value>Binary Banner</value>
|
<value>Bannière binaire</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixBright" xml:space="preserve">
|
<data name="MatrixBright" xml:space="preserve">
|
||||||
<value>Bright</value>
|
<value>Lumineux</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixClock" xml:space="preserve">
|
<data name="MatrixClock" xml:space="preserve">
|
||||||
<value>Clock</value>
|
<value>Horloge</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixDim" xml:space="preserve">
|
<data name="MatrixDim" xml:space="preserve">
|
||||||
<value>Dim</value>
|
<value>Faible</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixLogo" xml:space="preserve">
|
<data name="MatrixLogo" xml:space="preserve">
|
||||||
<value>Rog Logo</value>
|
<value>Logo ROG</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixMedium" xml:space="preserve">
|
<data name="MatrixMedium" xml:space="preserve">
|
||||||
<value>Medium</value>
|
<value>Moyen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixOff" xml:space="preserve">
|
<data name="MatrixOff" xml:space="preserve">
|
||||||
<value>Off</value>
|
<value>Éteint</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixPicture" xml:space="preserve">
|
<data name="MatrixPicture" xml:space="preserve">
|
||||||
<value>Picture</value>
|
<value>Image</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MaxRefreshTooltip" xml:space="preserve">
|
<data name="MaxRefreshTooltip" xml:space="preserve">
|
||||||
<value>Max refresh rate for lower latency</value>
|
<value>Rafraichissement maximum pour baisser la latance</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MinRefreshTooltip" xml:space="preserve">
|
<data name="MinRefreshTooltip" xml:space="preserve">
|
||||||
<value>60Hz refresh rate to save battery</value>
|
<value>Rafraichissement à 60Hz pour économiser de la batterie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Multizone</value>
|
<value>Multizone</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>Open G-Helper window</value>
|
<value>Ouvrir la fenêtre G-Helper</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Optimized" xml:space="preserve">
|
<data name="Optimized" xml:space="preserve">
|
||||||
<value>Optimized</value>
|
<value>Optimizé</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||||
<value>Switch to Eco on battery and to Standard when plugged</value>
|
<value>Passer en Économique sur batterie et sur Standard en chargement</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Other" xml:space="preserve">
|
<data name="Other" xml:space="preserve">
|
||||||
<value>Other</value>
|
<value>Autre</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Overdrive" xml:space="preserve">
|
<data name="Overdrive" xml:space="preserve">
|
||||||
<value>Overdrive</value>
|
<value>Overdrive</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PerformanceMode" xml:space="preserve">
|
<data name="PerformanceMode" xml:space="preserve">
|
||||||
<value>Performance Mode</value>
|
<value>Mode Performance</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PictureGif" xml:space="preserve">
|
<data name="PictureGif" xml:space="preserve">
|
||||||
<value>Picture / Gif</value>
|
<value>Image / Gif</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PlayPause" xml:space="preserve">
|
<data name="PlayPause" xml:space="preserve">
|
||||||
<value>Play / Pause</value>
|
<value>Reproduire / Pause</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PowerLimits" xml:space="preserve">
|
<data name="PowerLimits" xml:space="preserve">
|
||||||
<value>Power Limits (PPT)</value>
|
<value>Limites de puissance (PPT)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PPTExperimental" xml:space="preserve">
|
<data name="PPTExperimental" xml:space="preserve">
|
||||||
<value>Power Limits (PPT) is experimental feature. Use carefully and on your own risk!</value>
|
<value>Limites de puissance (PPT) est une fonctionnalité expérimentale. Utilisez la avec attention et à vos risques.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PrintScreen" xml:space="preserve">
|
<data name="PrintScreen" xml:space="preserve">
|
||||||
<value>PrintScreen</value>
|
<value>Capture d’Écran</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Quit" xml:space="preserve">
|
<data name="Quit" xml:space="preserve">
|
||||||
<value>Quit</value>
|
<value>Quitter</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RPM" xml:space="preserve">
|
<data name="RPM" xml:space="preserve">
|
||||||
<value>RPM</value>
|
<value>RPM</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RunOnStartup" xml:space="preserve">
|
<data name="RunOnStartup" xml:space="preserve">
|
||||||
<value>Run on Startup</value>
|
<value>Executer au lancement</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Shutdown" xml:space="preserve">
|
<data name="Shutdown" xml:space="preserve">
|
||||||
<value>Shutdown</value>
|
<value>Éteindre</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Silent" xml:space="preserve">
|
<data name="Silent" xml:space="preserve">
|
||||||
<value>Silent</value>
|
<value>Silencieux</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Sleep" xml:space="preserve">
|
<data name="Sleep" xml:space="preserve">
|
||||||
<value>Sleep</value>
|
<value>En veille</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StandardGPUTooltip" xml:space="preserve">
|
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||||
<value>Enables dGPU for standard use</value>
|
<value>Active le dGPU pour une utilisation standard</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StandardMode" xml:space="preserve">
|
<data name="StandardMode" xml:space="preserve">
|
||||||
<value>Standard</value>
|
<value>Standard</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartupError" xml:space="preserve">
|
<data name="StartupError" xml:space="preserve">
|
||||||
<value>Startup Error</value>
|
<value>Erreur au lancement</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleAura" xml:space="preserve">
|
<data name="ToggleAura" xml:space="preserve">
|
||||||
<value>Toggle Aura</value>
|
<value>Basculer Aura</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Turbo" xml:space="preserve">
|
<data name="Turbo" xml:space="preserve">
|
||||||
<value>Turbo</value>
|
<value>Turbo</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TurnedOff" xml:space="preserve">
|
<data name="TurnedOff" xml:space="preserve">
|
||||||
<value>Turned off</value>
|
<value>Éteint</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TurnOffOnBattery" xml:space="preserve">
|
<data name="TurnOffOnBattery" xml:space="preserve">
|
||||||
<value>Turn off on battery</value>
|
<value>Éteindre sur batterie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||||
<value>Routes laptop screen to dGPU, maximizing FPS</value>
|
<value>Redirige l’écran de l’ordinateur sur le dGPU pour maximiser le nombre de FPS</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UltimateMode" xml:space="preserve">
|
<data name="UltimateMode" xml:space="preserve">
|
||||||
<value>Ultimate</value>
|
<value>Ultimate</value>
|
||||||
@@ -341,9 +344,57 @@
|
|||||||
<value>Version</value>
|
<value>Version</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VolumeMute" xml:space="preserve">
|
<data name="VolumeMute" xml:space="preserve">
|
||||||
<value>Volume Mute</value>
|
<value>Mettre en sourdine</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WindowTop" xml:space="preserve">
|
<data name="WindowTop" xml:space="preserve">
|
||||||
<value>Keep app window always on top</value>
|
<value>Garder l’application au premier plan</value>
|
||||||
|
</data>
|
||||||
|
<data name="Brightness" xml:space="preserve">
|
||||||
|
<value>Luminosité</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanSpeed" xml:space="preserve">
|
||||||
|
<value>Ventilateurs :</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUBoost" xml:space="preserve">
|
||||||
|
<value>Boost Dynamique</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUCoreClockOffset" xml:space="preserve">
|
||||||
|
<value>Augmentation de la fréquence de base</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUMemoryClockOffset" xml:space="preserve">
|
||||||
|
<value>Augmentation de la fréquence de la mémoire</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUSettings" xml:space="preserve">
|
||||||
|
<value>Paramêtres de GPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUTempTarget" xml:space="preserve">
|
||||||
|
<value>Température ciblée</value>
|
||||||
|
</data>
|
||||||
|
<data name="LaptopBacklight" xml:space="preserve">
|
||||||
|
<value>Rétroéclairage de l’ordinateur</value>
|
||||||
|
</data>
|
||||||
|
<data name="Lid" xml:space="preserve">
|
||||||
|
<value>Capot</value>
|
||||||
|
</data>
|
||||||
|
<data name="Lightbar" xml:space="preserve">
|
||||||
|
<value>Barre de lumière</value>
|
||||||
|
</data>
|
||||||
|
<data name="Logo" xml:space="preserve">
|
||||||
|
<value>Logo</value>
|
||||||
|
</data>
|
||||||
|
<data name="OptimizedUSBC" xml:space="preserve">
|
||||||
|
<value>Garder le GPU désactivé en chargement via USB-C dans le mode Optimisé</value>
|
||||||
|
</data>
|
||||||
|
<data name="RestartGPU" xml:space="preserve">
|
||||||
|
<value>Un processus utilise le dGPU est empêche le passage en mode Économique. Redémarrer le dGPU dans le gestionnaire de périphérique ? * Veuillez procéder à vos risques</value>
|
||||||
|
</data>
|
||||||
|
<data name="ToggleMiniled" xml:space="preserve">
|
||||||
|
<value>Basculer sur Miniled (si supporté)</value>
|
||||||
|
</data>
|
||||||
|
<data name="ToggleScreen" xml:space="preserve">
|
||||||
|
<value>Basculer d’écran</value>
|
||||||
|
</data>
|
||||||
|
<data name="BacklightTimeout" xml:space="preserve">
|
||||||
|
<value>Nombre de secondes avant d’éteindre le rétroéclairage sur batterie</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -94,6 +94,9 @@
|
|||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>Apply Power Limits</value>
|
<value>Apply Power Limits</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
|
<value>Auto Adjust Windows Power Mode</value>
|
||||||
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>Breathe</value>
|
<value>Breathe</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
350
app/Properties/Strings.pt-br.resx
Normal file
350
app/Properties/Strings.pt-br.resx
Normal file
@@ -0,0 +1,350 @@
|
|||||||
|
<root>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>1.3</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="ACPIError" xml:space="preserve">
|
||||||
|
<value>Não foi possível conectar ao ASUS ACPI. O applicativo não pode funcionar sem isso. Tente instalar Asus System Controle Interface</value>
|
||||||
|
</data>
|
||||||
|
<data name="AlertDGPU" xml:space="preserve">
|
||||||
|
<value>Parece que o GPU está em uso pesado.</value>
|
||||||
|
</data>
|
||||||
|
<data name="AlertDGPUTitle" xml:space="preserve">
|
||||||
|
<value>Modo econômico</value>
|
||||||
|
</data>
|
||||||
|
<data name="AlertUltimateOff" xml:space="preserve">
|
||||||
|
<value>Passar ao Modo Final implica na reinicialização do sistema</value>
|
||||||
|
</data>
|
||||||
|
<data name="AlertUltimateOn" xml:space="preserve">
|
||||||
|
<value>Modo Ultimado necessita de reinicialização.</value>
|
||||||
|
</data>
|
||||||
|
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||||
|
<value>Reiniciar agora ?</value>
|
||||||
|
</data>
|
||||||
|
<data name="AnimationSpeed" xml:space="preserve">
|
||||||
|
<value>Velocidade da Animação</value>
|
||||||
|
</data>
|
||||||
|
<data name="AnimeMatrix" xml:space="preserve">
|
||||||
|
<value>Anime Matrix</value>
|
||||||
|
</data>
|
||||||
|
<data name="AppAlreadyRunning" xml:space="preserve">
|
||||||
|
<value>O applicativo já está em execução</value>
|
||||||
|
</data>
|
||||||
|
<data name="AppAlreadyRunningText" xml:space="preserve">
|
||||||
|
<value>G-Helper já está em execução. Verifique a barra de sistema</value>
|
||||||
|
</data>
|
||||||
|
<data name="ApplyFanCurve" xml:space="preserve">
|
||||||
|
<value>Aplicar a curva de ventilador personalizada</value>
|
||||||
|
</data>
|
||||||
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
|
<value>Aplicar as limitações de energia</value>
|
||||||
|
</data>
|
||||||
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
|
<value>Automaticamente ajustar os Modos de Energia Windows</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
|
<value>Repiração</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraColorCycle" xml:space="preserve">
|
||||||
|
<value>Ciclo de cores</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraFast" xml:space="preserve">
|
||||||
|
<value>Rápido</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraNormal" xml:space="preserve">
|
||||||
|
<value>Normal</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraRainbow" xml:space="preserve">
|
||||||
|
<value>Arco-íris</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraSlow" xml:space="preserve">
|
||||||
|
<value>Lento</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraStatic" xml:space="preserve">
|
||||||
|
<value>Estático</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraStrobe" xml:space="preserve">
|
||||||
|
<value>Estroboscópio</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutoMode" xml:space="preserve">
|
||||||
|
<value>Automático</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutoRefreshTooltip" xml:space="preserve">
|
||||||
|
<value>Estabelece 60Hz para economizar energia</value>
|
||||||
|
</data>
|
||||||
|
<data name="Awake" xml:space="preserve">
|
||||||
|
<value>Acordado</value>
|
||||||
|
</data>
|
||||||
|
<data name="BacklightTimeout" xml:space="preserve">
|
||||||
|
<value>Números de segundos para desligar a luz de fundo</value>
|
||||||
|
</data>
|
||||||
|
<data name="Balanced" xml:space="preserve">
|
||||||
|
<value>Equilibrado</value>
|
||||||
|
</data>
|
||||||
|
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||||
|
<value>Limite de carga da bateria</value>
|
||||||
|
</data>
|
||||||
|
<data name="Boot" xml:space="preserve">
|
||||||
|
<value>Durante o lançamento</value>
|
||||||
|
</data>
|
||||||
|
<data name="Brightness" xml:space="preserve">
|
||||||
|
<value>Luminosidade</value>
|
||||||
|
</data>
|
||||||
|
<data name="Color" xml:space="preserve">
|
||||||
|
<value>Cor</value>
|
||||||
|
</data>
|
||||||
|
<data name="CPUBoost" xml:space="preserve">
|
||||||
|
<value>CPU Boost</value>
|
||||||
|
</data>
|
||||||
|
<data name="Custom" xml:space="preserve">
|
||||||
|
<value>Personalizado</value>
|
||||||
|
</data>
|
||||||
|
<data name="Default" xml:space="preserve">
|
||||||
|
<value>Padrão</value>
|
||||||
|
</data>
|
||||||
|
<data name="DisableOverdrive" xml:space="preserve">
|
||||||
|
<value>Desativar o overdrive da tela</value>
|
||||||
|
</data>
|
||||||
|
<data name="Discharging" xml:space="preserve">
|
||||||
|
<value>Descarregando</value>
|
||||||
|
</data>
|
||||||
|
<data name="DownloadUpdate" xml:space="preserve">
|
||||||
|
<value>Baixar a atualização</value>
|
||||||
|
</data>
|
||||||
|
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||||
|
<value>Desativar o dGPU para economisar a energía</value>
|
||||||
|
</data>
|
||||||
|
<data name="EcoMode" xml:space="preserve">
|
||||||
|
<value>Econômico</value>
|
||||||
|
</data>
|
||||||
|
<data name="Extra" xml:space="preserve">
|
||||||
|
<value>Adicional</value>
|
||||||
|
</data>
|
||||||
|
<data name="ExtraSettings" xml:space="preserve">
|
||||||
|
<value>Configurações adicionais</value>
|
||||||
|
</data>
|
||||||
|
<data name="FactoryDefaults" xml:space="preserve">
|
||||||
|
<value>Padrão de fábrica</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanCurves" xml:space="preserve">
|
||||||
|
<value>Curvas de ventilador</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanProfileCPU" xml:space="preserve">
|
||||||
|
<value>Perfil de ventilador CPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanProfileGPU" xml:space="preserve">
|
||||||
|
<value>Perfil de ventilador GPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanProfileMid" xml:space="preserve">
|
||||||
|
<value>Perfil de ventilador central</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanProfiles" xml:space="preserve">
|
||||||
|
<value>Perfis de ventilador</value>
|
||||||
|
</data>
|
||||||
|
<data name="FansAndPower" xml:space="preserve">
|
||||||
|
<value>Ventiladores e Energía</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanSpeed" xml:space="preserve">
|
||||||
|
<value>Ventilador</value>
|
||||||
|
</data>
|
||||||
|
<data name="FansPower" xml:space="preserve">
|
||||||
|
<value>Ventiladores + Energía</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUBoost" xml:space="preserve">
|
||||||
|
<value>Boost dinâmico</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUChanging" xml:space="preserve">
|
||||||
|
<value>Carregando</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUMode" xml:space="preserve">
|
||||||
|
<value>Modo de GPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUModeEco" xml:space="preserve">
|
||||||
|
<value>Só iGPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUModeStandard" xml:space="preserve">
|
||||||
|
<value>iGPU + dGPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUModeUltimate" xml:space="preserve">
|
||||||
|
<value>Exclusivamente dGPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUSettings" xml:space="preserve">
|
||||||
|
<value>Parâmetros de GPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUTempTarget" xml:space="preserve">
|
||||||
|
<value>Alvo de temperatura</value>
|
||||||
|
</data>
|
||||||
|
<data name="Keyboard" xml:space="preserve">
|
||||||
|
<value>Teclado</value>
|
||||||
|
</data>
|
||||||
|
<data name="KeyboardAuto" xml:space="preserve">
|
||||||
|
<value>Abaixar a luz de fundo na bateria e voltar quando carregando</value>
|
||||||
|
</data>
|
||||||
|
<data name="KeyboardBacklight" xml:space="preserve">
|
||||||
|
<value>Luz de fundo do teclado</value>
|
||||||
|
</data>
|
||||||
|
<data name="LaptopBacklight" xml:space="preserve">
|
||||||
|
<value>Luz de fundo do computador</value>
|
||||||
|
</data>
|
||||||
|
<data name="LaptopKeyboard" xml:space="preserve">
|
||||||
|
<value>Teclado do computador</value>
|
||||||
|
</data>
|
||||||
|
<data name="LaptopScreen" xml:space="preserve">
|
||||||
|
<value>Tela do computador</value>
|
||||||
|
</data>
|
||||||
|
<data name="Lid" xml:space="preserve">
|
||||||
|
<value>Tampa</value>
|
||||||
|
</data>
|
||||||
|
<data name="Logo" xml:space="preserve">
|
||||||
|
<value>Logo</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixBanner" xml:space="preserve">
|
||||||
|
<value>Bandeira Binária</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixBright" xml:space="preserve">
|
||||||
|
<value>Brilho</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixClock" xml:space="preserve">
|
||||||
|
<value>Relógio</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixDim" xml:space="preserve">
|
||||||
|
<value>Escuro</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixLogo" xml:space="preserve">
|
||||||
|
<value>Logo ROG</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixMedium" xml:space="preserve">
|
||||||
|
<value>Médio</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixOff" xml:space="preserve">
|
||||||
|
<value>Desligado</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixPicture" xml:space="preserve">
|
||||||
|
<value>Imagem</value>
|
||||||
|
</data>
|
||||||
|
<data name="MaxRefreshTooltip" xml:space="preserve">
|
||||||
|
<value>Taxa de atualização maxíma para abaixar a latência</value>
|
||||||
|
</data>
|
||||||
|
<data name="MinRefreshTooltip" xml:space="preserve">
|
||||||
|
<value>Taxa de atualização à 60Hz para salvar energía</value>
|
||||||
|
</data>
|
||||||
|
<data name="Multizone" xml:space="preserve">
|
||||||
|
<value>Multizona</value>
|
||||||
|
</data>
|
||||||
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
|
<value>Abrir G-Helper</value>
|
||||||
|
</data>
|
||||||
|
<data name="Optimized" xml:space="preserve">
|
||||||
|
<value>Otimizado</value>
|
||||||
|
</data>
|
||||||
|
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||||
|
<value>Passar ao Ecônomico em bateria e voltar quando carregando</value>
|
||||||
|
</data>
|
||||||
|
<data name="OptimizedUSBC" xml:space="preserve">
|
||||||
|
<value>Manter o GPU desligado com um carregador USB-C no Modo Otimizado</value>
|
||||||
|
</data>
|
||||||
|
<data name="Other" xml:space="preserve">
|
||||||
|
<value>Outro</value>
|
||||||
|
</data>
|
||||||
|
<data name="Overdrive" xml:space="preserve">
|
||||||
|
<value>Overdrive</value>
|
||||||
|
</data>
|
||||||
|
<data name="PerformanceMode" xml:space="preserve">
|
||||||
|
<value>Modo Desempenho</value>
|
||||||
|
</data>
|
||||||
|
<data name="PictureGif" xml:space="preserve">
|
||||||
|
<value>Imagem / Gif</value>
|
||||||
|
</data>
|
||||||
|
<data name="PlayPause" xml:space="preserve">
|
||||||
|
<value>Reproduzir / Pausar</value>
|
||||||
|
</data>
|
||||||
|
<data name="PowerLimits" xml:space="preserve">
|
||||||
|
<value>Limitações de Energia (PPT)</value>
|
||||||
|
</data>
|
||||||
|
<data name="PPTExperimental" xml:space="preserve">
|
||||||
|
<value>Limitações de Energia (PPT) é uma funcionalidade experimental. Usar isso com cuidado </value>
|
||||||
|
</data>
|
||||||
|
<data name="PrintScreen" xml:space="preserve">
|
||||||
|
<value>Captura de tela</value>
|
||||||
|
</data>
|
||||||
|
<data name="Quit" xml:space="preserve">
|
||||||
|
<value>Sair</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUCoreClockOffset" xml:space="preserve">
|
||||||
|
<value>Aumento da frequência básica</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUMemoryClockOffset" xml:space="preserve">
|
||||||
|
<value>Aumento da frequência da memória</value>
|
||||||
|
</data>
|
||||||
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
|
<value>Combinações de teclas</value>
|
||||||
|
</data>
|
||||||
|
<data name="RPM" xml:space="preserve">
|
||||||
|
<value>RPM</value>
|
||||||
|
</data>
|
||||||
|
<data name="RestartGPU" xml:space="preserve">
|
||||||
|
<value>Algum processo está usando o dGPU e impedindo o modo Econômico. Reinicialize o dGPU no gerenciador de dispositivos. Por favor, proceda por sua conta e risco. </value>
|
||||||
|
</data>
|
||||||
|
<data name="RunOnStartup" xml:space="preserve">
|
||||||
|
<value>Executar ao iniciar</value>
|
||||||
|
</data>
|
||||||
|
<data name="Shutdown" xml:space="preserve">
|
||||||
|
<value>Desligar</value>
|
||||||
|
</data>
|
||||||
|
<data name="Silent" xml:space="preserve">
|
||||||
|
<value>Silencioso</value>
|
||||||
|
</data>
|
||||||
|
<data name="Sleep" xml:space="preserve">
|
||||||
|
<value>Hibernação</value>
|
||||||
|
</data>
|
||||||
|
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||||
|
<value>Liga o dGPU para uso padrão</value>
|
||||||
|
</data>
|
||||||
|
<data name="StandardMode" xml:space="preserve">
|
||||||
|
<value>Padrão</value>
|
||||||
|
</data>
|
||||||
|
<data name="StartupError" xml:space="preserve">
|
||||||
|
<value>Erro ao iniciar</value>
|
||||||
|
</data>
|
||||||
|
<data name="ToggleAura" xml:space="preserve">
|
||||||
|
<value>Alternar Aura</value>
|
||||||
|
</data>
|
||||||
|
<data name="ToggleMiniled" xml:space="preserve">
|
||||||
|
<value>Alternar Miniled (se suportado) </value>
|
||||||
|
</data>
|
||||||
|
<data name="ToggleScreen" xml:space="preserve">
|
||||||
|
<value>Alternar Tela</value>
|
||||||
|
</data>
|
||||||
|
<data name="Turbo" xml:space="preserve">
|
||||||
|
<value>Turbo</value>
|
||||||
|
</data>
|
||||||
|
<data name="TurnedOff" xml:space="preserve">
|
||||||
|
<value>Desligado</value>
|
||||||
|
</data>
|
||||||
|
<data name="TurnOffOnBattery" xml:space="preserve">
|
||||||
|
<value>Desligar em bateria</value>
|
||||||
|
</data>
|
||||||
|
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||||
|
<value>Direciona a tela do computador ao dGPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="UltimateMode" xml:space="preserve">
|
||||||
|
<value>Ultimate</value>
|
||||||
|
</data>
|
||||||
|
<data name="VersionLabel" xml:space="preserve">
|
||||||
|
<value>Versão</value>
|
||||||
|
</data>
|
||||||
|
<data name="VolumeMute" xml:space="preserve">
|
||||||
|
<value>Mudo</value>
|
||||||
|
</data>
|
||||||
|
<data name="WindowTop" xml:space="preserve">
|
||||||
|
<value>Manter o app em primeiro plano</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -153,6 +153,9 @@
|
|||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>Apply Power Limits</value>
|
<value>Apply Power Limits</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
|
<value>Auto adjust Windows Power Mode</value>
|
||||||
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>Breathe</value>
|
<value>Breathe</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -186,6 +189,9 @@
|
|||||||
<data name="Awake" xml:space="preserve">
|
<data name="Awake" xml:space="preserve">
|
||||||
<value>Awake</value>
|
<value>Awake</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="BacklightTimeout" xml:space="preserve">
|
||||||
|
<value>Seconds to turn off backlight on battery</value>
|
||||||
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="Balanced" xml:space="preserve">
|
||||||
<value>Balanced</value>
|
<value>Balanced</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -252,12 +258,24 @@
|
|||||||
<data name="FansAndPower" xml:space="preserve">
|
<data name="FansAndPower" xml:space="preserve">
|
||||||
<value>Fans and Power</value>
|
<value>Fans and Power</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="FanSpeed" xml:space="preserve">
|
||||||
|
<value> Fan: </value>
|
||||||
|
</data>
|
||||||
<data name="FansPower" xml:space="preserve">
|
<data name="FansPower" xml:space="preserve">
|
||||||
<value>Fans + Power</value>
|
<value>Fans + Power</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="GPUBoost" xml:space="preserve">
|
||||||
|
<value>Dynamic Boost</value>
|
||||||
|
</data>
|
||||||
<data name="GPUChanging" xml:space="preserve">
|
<data name="GPUChanging" xml:space="preserve">
|
||||||
<value>Changing</value>
|
<value>Changing</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="GPUCoreClockOffset" xml:space="preserve">
|
||||||
|
<value>Core Clock Offset</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUMemoryClockOffset" xml:space="preserve">
|
||||||
|
<value>Memory Clock Offset</value>
|
||||||
|
</data>
|
||||||
<data name="GPUMode" xml:space="preserve">
|
<data name="GPUMode" xml:space="preserve">
|
||||||
<value>GPU Mode</value>
|
<value>GPU Mode</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -273,6 +291,9 @@
|
|||||||
<data name="GPUSettings" xml:space="preserve">
|
<data name="GPUSettings" xml:space="preserve">
|
||||||
<value>GPU Settings</value>
|
<value>GPU Settings</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="GPUTempTarget" xml:space="preserve">
|
||||||
|
<value>Temperature Target</value>
|
||||||
|
</data>
|
||||||
<data name="KeyBindings" xml:space="preserve">
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
<value>Key Bindings</value>
|
<value>Key Bindings</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -300,6 +321,9 @@
|
|||||||
<data name="Logo" xml:space="preserve">
|
<data name="Logo" xml:space="preserve">
|
||||||
<value>Logo</value>
|
<value>Logo</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="MatrixAudio" xml:space="preserve">
|
||||||
|
<value>Audio Visualizer</value>
|
||||||
|
</data>
|
||||||
<data name="MatrixBanner" xml:space="preserve">
|
<data name="MatrixBanner" xml:space="preserve">
|
||||||
<value>Binary Banner</value>
|
<value>Binary Banner</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -372,6 +396,9 @@
|
|||||||
<data name="Quit" xml:space="preserve">
|
<data name="Quit" xml:space="preserve">
|
||||||
<value>Quit</value>
|
<value>Quit</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="RestartGPU" xml:space="preserve">
|
||||||
|
<value>Something is using dGPU and preventing Eco mode. Restart dGPU in device manager? * Please proceed on your own risk.</value>
|
||||||
|
</data>
|
||||||
<data name="RPM" xml:space="preserve">
|
<data name="RPM" xml:space="preserve">
|
||||||
<value>RPM</value>
|
<value>RPM</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -153,6 +153,9 @@
|
|||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>Güç Sınırlarını Uygula</value>
|
<value>Güç Sınırlarını Uygula</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
|
<value>Auto adjust Windows Power Mode</value>
|
||||||
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>Nefes</value>
|
<value>Nefes</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -153,6 +153,9 @@
|
|||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>Застосувати потужність</value>
|
<value>Застосувати потужність</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
|
<value>Автоматично застосовувати Windows Power Mode</value>
|
||||||
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>Дихання</value>
|
<value>Дихання</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -153,6 +153,9 @@
|
|||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>应用功率限制</value>
|
<value>应用功率限制</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
|
<value>自动调整Windows电源模式</value>
|
||||||
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>呼吸</value>
|
<value>呼吸</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -153,6 +153,9 @@
|
|||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>套用功率限制</value>
|
<value>套用功率限制</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
|
<value>Auto Adjust Windows Power Mode</value>
|
||||||
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>呼吸</value>
|
<value>呼吸</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
11
app/Settings.Designer.cs
generated
11
app/Settings.Designer.cs
generated
@@ -185,7 +185,7 @@ namespace GHelper
|
|||||||
comboMatrixRunning.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
comboMatrixRunning.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
comboMatrixRunning.FormattingEnabled = true;
|
comboMatrixRunning.FormattingEnabled = true;
|
||||||
comboMatrixRunning.ItemHeight = 32;
|
comboMatrixRunning.ItemHeight = 32;
|
||||||
comboMatrixRunning.Items.AddRange(new object[] { Properties.Strings.MatrixBanner, Properties.Strings.MatrixLogo, Properties.Strings.MatrixPicture, Properties.Strings.MatrixClock });
|
comboMatrixRunning.Items.AddRange(new object[] { Properties.Strings.MatrixBanner, Properties.Strings.MatrixLogo, Properties.Strings.MatrixPicture, Properties.Strings.MatrixClock, Properties.Strings.MatrixAudio });
|
||||||
comboMatrixRunning.Location = new Point(261, 10);
|
comboMatrixRunning.Location = new Point(261, 10);
|
||||||
comboMatrixRunning.Margin = new Padding(4, 10, 4, 8);
|
comboMatrixRunning.Margin = new Padding(4, 10, 4, 8);
|
||||||
comboMatrixRunning.Name = "comboMatrixRunning";
|
comboMatrixRunning.Name = "comboMatrixRunning";
|
||||||
@@ -267,24 +267,25 @@ namespace GHelper
|
|||||||
labelModel.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
labelModel.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
labelModel.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
labelModel.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
labelModel.ForeColor = SystemColors.ControlDark;
|
labelModel.ForeColor = SystemColors.ControlDark;
|
||||||
labelModel.Location = new Point(291, 119);
|
labelModel.Location = new Point(380, 119);
|
||||||
labelModel.Margin = new Padding(8, 0, 8, 0);
|
labelModel.Margin = new Padding(8, 0, 8, 0);
|
||||||
labelModel.Name = "labelModel";
|
labelModel.Name = "labelModel";
|
||||||
labelModel.Size = new Size(492, 32);
|
labelModel.Size = new Size(400, 32);
|
||||||
labelModel.TabIndex = 38;
|
labelModel.TabIndex = 38;
|
||||||
labelModel.TextAlign = ContentAlignment.TopRight;
|
labelModel.TextAlign = ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// labelVersion
|
// labelVersion
|
||||||
//
|
//
|
||||||
labelVersion.AutoSize = true;
|
labelVersion.AutoSize = false;
|
||||||
labelVersion.Font = new Font("Segoe UI", 9F, FontStyle.Underline, GraphicsUnit.Point);
|
labelVersion.Font = new Font("Segoe UI", 9F, FontStyle.Underline, GraphicsUnit.Point);
|
||||||
labelVersion.ForeColor = SystemColors.ControlDark;
|
labelVersion.ForeColor = SystemColors.ControlDark;
|
||||||
labelVersion.Location = new Point(25, 119);
|
labelVersion.Location = new Point(25, 119);
|
||||||
labelVersion.Margin = new Padding(8, 0, 8, 0);
|
labelVersion.Margin = new Padding(8, 0, 8, 0);
|
||||||
labelVersion.Name = "labelVersion";
|
labelVersion.Name = "labelVersion";
|
||||||
labelVersion.Size = new Size(44, 32);
|
labelVersion.Size = new Size(300, 32);
|
||||||
labelVersion.TabIndex = 37;
|
labelVersion.TabIndex = 37;
|
||||||
labelVersion.Text = "v.0";
|
labelVersion.Text = "v.0";
|
||||||
|
labelVersion.Cursor = Cursors.Hand;
|
||||||
//
|
//
|
||||||
// labelBattery
|
// labelBattery
|
||||||
//
|
//
|
||||||
|
|||||||
441
app/Settings.cs
441
app/Settings.cs
@@ -1,14 +1,16 @@
|
|||||||
using CustomControls;
|
using CustomControls;
|
||||||
|
using GHelper.AnimeMatrix;
|
||||||
using GHelper.Gpu;
|
using GHelper.Gpu;
|
||||||
|
using NAudio.CoreAudioApi;
|
||||||
|
using NAudio.Wave;
|
||||||
using Starlight.AnimeMatrix;
|
using Starlight.AnimeMatrix;
|
||||||
using System;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Drawing.Drawing2D;
|
||||||
using System.Drawing.Imaging;
|
using System.Drawing.Imaging;
|
||||||
|
using System.Net;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
using System.Windows.Forms;
|
|
||||||
using Tools;
|
using Tools;
|
||||||
|
|
||||||
namespace GHelper
|
namespace GHelper
|
||||||
@@ -23,16 +25,15 @@ namespace GHelper
|
|||||||
public static System.Timers.Timer aTimer = default!;
|
public static System.Timers.Timer aTimer = default!;
|
||||||
public static Point trayPoint;
|
public static Point trayPoint;
|
||||||
|
|
||||||
static System.Timers.Timer matrixTimer = default!;
|
|
||||||
|
|
||||||
public string versionUrl = "http://github.com/seerge/g-helper/releases";
|
public string versionUrl = "http://github.com/seerge/g-helper/releases";
|
||||||
|
|
||||||
public string perfName = "Balanced";
|
public string perfName = "Balanced";
|
||||||
|
|
||||||
|
public AniMatrix matrix;
|
||||||
|
|
||||||
public Fans fans;
|
public Fans fans;
|
||||||
public Extra keyb;
|
public Extra keyb;
|
||||||
|
|
||||||
static AnimeMatrixDevice mat;
|
|
||||||
static long lastRefresh;
|
static long lastRefresh;
|
||||||
|
|
||||||
private bool customFans = false;
|
private bool customFans = false;
|
||||||
@@ -142,7 +143,7 @@ namespace GHelper
|
|||||||
int trim = model.LastIndexOf("_");
|
int trim = model.LastIndexOf("_");
|
||||||
if (trim > 0) model = model.Substring(0, trim);
|
if (trim > 0) model = model.Substring(0, trim);
|
||||||
|
|
||||||
labelModel.Text = model+(Program.IsUserAdministrator()?".":"");
|
labelModel.Text = model + (Program.IsUserAdministrator() ? "." : "");
|
||||||
|
|
||||||
TopMost = Program.config.getConfig("topmost") == 1;
|
TopMost = Program.config.getConfig("topmost") == 1;
|
||||||
|
|
||||||
@@ -161,7 +162,7 @@ namespace GHelper
|
|||||||
|
|
||||||
contextMenuStrip.Items.Clear();
|
contextMenuStrip.Items.Clear();
|
||||||
|
|
||||||
Padding padding = new Padding(5, 5, 5, 5);
|
Padding padding = new Padding(15, 5, 5, 5);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
TableLayoutPanel[] tables = { tablePerf, tableGPU };
|
TableLayoutPanel[] tables = { tablePerf, tableGPU };
|
||||||
@@ -248,7 +249,7 @@ namespace GHelper
|
|||||||
quit.Margin = padding;
|
quit.Margin = padding;
|
||||||
contextMenuStrip.Items.Add(quit);
|
contextMenuStrip.Items.Add(quit);
|
||||||
|
|
||||||
contextMenuStrip.ShowCheckMargin = true;
|
//contextMenuStrip.ShowCheckMargin = true;
|
||||||
contextMenuStrip.RenderMode = ToolStripRenderMode.System;
|
contextMenuStrip.RenderMode = ToolStripRenderMode.System;
|
||||||
|
|
||||||
if (CheckSystemDarkModeStatus())
|
if (CheckSystemDarkModeStatus())
|
||||||
@@ -297,10 +298,20 @@ namespace GHelper
|
|||||||
|
|
||||||
var gitVersion = new Version(tag);
|
var gitVersion = new Version(tag);
|
||||||
var appVersion = new Version(Assembly.GetExecutingAssembly().GetName().Version.ToString());
|
var appVersion = new Version(Assembly.GetExecutingAssembly().GetName().Version.ToString());
|
||||||
|
//appVersion = new Version("0.50.0.0");
|
||||||
|
|
||||||
if (gitVersion.CompareTo(appVersion) > 0)
|
if (gitVersion.CompareTo(appVersion) > 0)
|
||||||
{
|
{
|
||||||
SetVersionLabel(Properties.Strings.DownloadUpdate + ": " + tag, url);
|
SetVersionLabel(Properties.Strings.DownloadUpdate + ": " + tag, url);
|
||||||
|
if (Program.config.getConfigString("skip_version") != tag)
|
||||||
|
{
|
||||||
|
DialogResult dialogResult = MessageBox.Show(Properties.Strings.DownloadUpdate + ": G-Helper " + tag + "?", "Update", MessageBoxButtons.YesNo);
|
||||||
|
if (dialogResult == DialogResult.Yes)
|
||||||
|
AutoUpdate(url);
|
||||||
|
else
|
||||||
|
Program.config.setConfig("skip_version", tag);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -317,6 +328,57 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetVersionLabel(string label, string url = null)
|
||||||
|
{
|
||||||
|
BeginInvoke(delegate
|
||||||
|
{
|
||||||
|
labelVersion.Text = label;
|
||||||
|
if (url is not null)
|
||||||
|
{
|
||||||
|
this.versionUrl = url;
|
||||||
|
labelVersion.ForeColor = Color.Red;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async void AutoUpdate(string requestUri)
|
||||||
|
{
|
||||||
|
|
||||||
|
Uri uri = new Uri(requestUri);
|
||||||
|
string zipName = Path.GetFileName(uri.LocalPath);
|
||||||
|
|
||||||
|
string exeLocation = Application.ExecutablePath;
|
||||||
|
string exeDir = Path.GetDirectoryName(exeLocation);
|
||||||
|
string zipLocation = exeDir + "\\" + zipName;
|
||||||
|
|
||||||
|
using (WebClient client = new WebClient())
|
||||||
|
{
|
||||||
|
client.DownloadFile(uri, zipLocation);
|
||||||
|
}
|
||||||
|
|
||||||
|
var cmd = new Process();
|
||||||
|
cmd.StartInfo.UseShellExecute = false;
|
||||||
|
cmd.StartInfo.CreateNoWindow = true;
|
||||||
|
cmd.StartInfo.FileName = "powershell";
|
||||||
|
cmd.StartInfo.Arguments = $"Start-Sleep -Seconds 1; Expand-Archive {zipLocation} -DestinationPath {exeDir} -Force; Remove-Item {zipLocation} -Force; {exeLocation}";
|
||||||
|
cmd.Start();
|
||||||
|
|
||||||
|
Debug.WriteLine(requestUri);
|
||||||
|
Debug.WriteLine(zipLocation);
|
||||||
|
|
||||||
|
Application.Exit();
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void LabelVersion_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Process.Start(new ProcessStartInfo(versionUrl) { UseShellExecute = true });
|
||||||
|
}
|
||||||
|
|
||||||
private static void TrayIcon_MouseMove(object? sender, MouseEventArgs e)
|
private static void TrayIcon_MouseMove(object? sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
Program.settingsForm.RefreshSensors();
|
Program.settingsForm.RefreshSensors();
|
||||||
@@ -422,22 +484,8 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SetVersionLabel(string label, string url = null)
|
|
||||||
{
|
|
||||||
labelVersion.Text = label;
|
|
||||||
if (url is not null)
|
|
||||||
{
|
|
||||||
this.versionUrl = url;
|
|
||||||
labelVersion.ForeColor = Color.Red;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void LabelVersion_Click(object? sender, EventArgs e)
|
|
||||||
{
|
|
||||||
Process.Start(new ProcessStartInfo(versionUrl) { UseShellExecute = true });
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void CheckStartup_CheckedChanged(object? sender, EventArgs e)
|
private void CheckStartup_CheckedChanged(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -459,84 +507,9 @@ namespace GHelper
|
|||||||
if (sender is null) return;
|
if (sender is null) return;
|
||||||
CheckBox check = (CheckBox)sender;
|
CheckBox check = (CheckBox)sender;
|
||||||
Program.config.setConfig("matrix_auto", check.Checked ? 1 : 0);
|
Program.config.setConfig("matrix_auto", check.Checked ? 1 : 0);
|
||||||
|
matrix?.SetMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void StartMatrixTimer(int interval = 100)
|
|
||||||
{
|
|
||||||
matrixTimer.Interval = interval;
|
|
||||||
matrixTimer.Enabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void StopMatrixTimer()
|
|
||||||
{
|
|
||||||
matrixTimer.Enabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void MatrixTimer_Elapsed(object? sender, ElapsedEventArgs e)
|
|
||||||
{
|
|
||||||
if (mat is null) return;
|
|
||||||
|
|
||||||
switch (Program.config.getConfig("matrix_running"))
|
|
||||||
{
|
|
||||||
case 2:
|
|
||||||
mat.PresentNextFrame();
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
mat.PresentClock();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetMatrixPicture(string fileName)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (mat is null) return;
|
|
||||||
StopMatrixTimer();
|
|
||||||
|
|
||||||
Image image;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
using (var fs = new FileStream(fileName, FileMode.Open))
|
|
||||||
{
|
|
||||||
var ms = new MemoryStream();
|
|
||||||
fs.CopyTo(ms);
|
|
||||||
ms.Position = 0;
|
|
||||||
image = Image.FromStream(ms);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
Debug.WriteLine("Error loading picture");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mat.SetBuiltInAnimation(false);
|
|
||||||
mat.ClearFrames();
|
|
||||||
|
|
||||||
FrameDimension dimension = new FrameDimension(image.FrameDimensionsList[0]);
|
|
||||||
int frameCount = image.GetFrameCount(dimension);
|
|
||||||
|
|
||||||
if (frameCount > 1)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < frameCount; i++)
|
|
||||||
{
|
|
||||||
image.SelectActiveFrame(dimension, i);
|
|
||||||
mat.GenerateFrame(image);
|
|
||||||
mat.AddFrame();
|
|
||||||
}
|
|
||||||
|
|
||||||
StartMatrixTimer();
|
|
||||||
Logger.WriteLine("Matrix GIF " + fileName);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mat.GenerateFrame(image);
|
|
||||||
mat.Present();
|
|
||||||
Logger.WriteLine("Matrix " + fileName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void ButtonMatrix_Click(object? sender, EventArgs e)
|
private void ButtonMatrix_Click(object? sender, EventArgs e)
|
||||||
@@ -563,7 +536,7 @@ namespace GHelper
|
|||||||
Program.config.setConfig("matrix_picture", fileName);
|
Program.config.setConfig("matrix_picture", fileName);
|
||||||
Program.config.setConfig("matrix_running", 2);
|
Program.config.setConfig("matrix_running", 2);
|
||||||
|
|
||||||
SetMatrixPicture(fileName);
|
matrix?.SetMatrixPicture(fileName);
|
||||||
BeginInvoke(delegate
|
BeginInvoke(delegate
|
||||||
{
|
{
|
||||||
comboMatrixRunning.SelectedIndex = 2;
|
comboMatrixRunning.SelectedIndex = 2;
|
||||||
@@ -576,72 +549,16 @@ namespace GHelper
|
|||||||
private void ComboMatrixRunning_SelectedValueChanged(object? sender, EventArgs e)
|
private void ComboMatrixRunning_SelectedValueChanged(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Program.config.setConfig("matrix_running", comboMatrixRunning.SelectedIndex);
|
Program.config.setConfig("matrix_running", comboMatrixRunning.SelectedIndex);
|
||||||
SetMatrix();
|
matrix?.SetMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ComboMatrix_SelectedValueChanged(object? sender, EventArgs e)
|
private void ComboMatrix_SelectedValueChanged(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Program.config.setConfig("matrix_brightness", comboMatrix.SelectedIndex);
|
Program.config.setConfig("matrix_brightness", comboMatrix.SelectedIndex);
|
||||||
SetMatrix();
|
matrix?.SetMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetMatrix()
|
|
||||||
{
|
|
||||||
|
|
||||||
if (mat is null) return;
|
|
||||||
|
|
||||||
int brightness = Program.config.getConfig("matrix_brightness");
|
|
||||||
int running = Program.config.getConfig("matrix_running");
|
|
||||||
bool auto = Program.config.getConfig("matrix_auto") == 1;
|
|
||||||
|
|
||||||
if (brightness < 0) brightness = 0;
|
|
||||||
if (running < 0) running = 0;
|
|
||||||
|
|
||||||
BuiltInAnimation animation = new BuiltInAnimation(
|
|
||||||
(BuiltInAnimation.Running)running,
|
|
||||||
BuiltInAnimation.Sleeping.Starfield,
|
|
||||||
BuiltInAnimation.Shutdown.SeeYa,
|
|
||||||
BuiltInAnimation.Startup.StaticEmergence
|
|
||||||
);
|
|
||||||
|
|
||||||
StopMatrixTimer();
|
|
||||||
|
|
||||||
mat.SetProvider();
|
|
||||||
|
|
||||||
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online))
|
|
||||||
{
|
|
||||||
mat.SetDisplayState(false);
|
|
||||||
Logger.WriteLine("Matrix Off");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mat.SetDisplayState(true);
|
|
||||||
mat.SetBrightness((BrightnessMode)brightness);
|
|
||||||
|
|
||||||
switch (running)
|
|
||||||
{
|
|
||||||
case 2:
|
|
||||||
SetMatrixPicture(Program.config.getConfigString("matrix_picture"));
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
mat.SetBuiltInAnimation(false);
|
|
||||||
StartMatrixTimer(1000);
|
|
||||||
Logger.WriteLine("Matrix Clock");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
mat.SetBuiltInAnimation(true, animation);
|
|
||||||
Logger.WriteLine("Matrix builtin " + animation.AsByte);
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//mat.SetBrightness((BrightnessMode)brightness);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void LabelCPUFan_Click(object? sender, EventArgs e)
|
private void LabelCPUFan_Click(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -740,13 +657,9 @@ namespace GHelper
|
|||||||
public void InitMatrix()
|
public void InitMatrix()
|
||||||
{
|
{
|
||||||
|
|
||||||
try
|
matrix = new AniMatrix();
|
||||||
{
|
|
||||||
mat = new AnimeMatrixDevice();
|
if (matrix is null)
|
||||||
matrixTimer = new System.Timers.Timer(100);
|
|
||||||
matrixTimer.Elapsed += MatrixTimer_Elapsed;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
{
|
||||||
panelMatrix.Visible = false;
|
panelMatrix.Visible = false;
|
||||||
return;
|
return;
|
||||||
@@ -948,7 +861,7 @@ namespace GHelper
|
|||||||
SetGPUMode(ASUSWmi.GPUModeEco);
|
SetGPUMode(ASUSWmi.GPUModeEco);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RefreshSensors(bool force = false)
|
public async void RefreshSensors(bool force = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!force && Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastRefresh) < 2000) return;
|
if (!force && Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastRefresh) < 2000) return;
|
||||||
@@ -1045,16 +958,48 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AutoGPUSettings(bool launchAsAdmin = false)
|
|
||||||
|
public void SetGPUClocks(bool launchAsAdmin = true)
|
||||||
|
{
|
||||||
|
|
||||||
|
int gpu_core = Program.config.getConfigPerf("gpu_core");
|
||||||
|
int gpu_memory = Program.config.getConfigPerf("gpu_memory");
|
||||||
|
|
||||||
|
if (gpu_core == -1 && gpu_memory == -1) return;
|
||||||
|
|
||||||
|
//if ((gpu_core > -5 && gpu_core < 5) && (gpu_memory > -5 && gpu_memory < 5)) launchAsAdmin = false;
|
||||||
|
|
||||||
|
if (Program.wmi.DeviceGet(ASUSWmi.GPUEco) == 1) return;
|
||||||
|
if (HardwareControl.GpuControl is null) return;
|
||||||
|
if (!HardwareControl.GpuControl!.IsNvidia) return;
|
||||||
|
|
||||||
|
using NvidiaGpuControl nvControl = (NvidiaGpuControl)HardwareControl.GpuControl;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int getStatus = nvControl.GetClocks(out int current_core, out int current_memory);
|
||||||
|
if (getStatus != -1)
|
||||||
|
{
|
||||||
|
if (Math.Abs(gpu_core - current_core) < 5 && Math.Abs(gpu_memory - current_memory) < 5) return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int setStatus = nvControl.SetClocks(gpu_core, gpu_memory);
|
||||||
|
if (launchAsAdmin && setStatus == -1) Program.RunAsAdmin("gpu");
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetGPUPower()
|
||||||
{
|
{
|
||||||
|
|
||||||
int gpu_boost = Program.config.getConfigPerf("gpu_boost");
|
int gpu_boost = Program.config.getConfigPerf("gpu_boost");
|
||||||
int gpu_temp = Program.config.getConfigPerf("gpu_temp");
|
int gpu_temp = Program.config.getConfigPerf("gpu_temp");
|
||||||
|
|
||||||
int gpu_core = Program.config.getConfigPerf("gpu_core");
|
|
||||||
int gpu_memory = Program.config.getConfigPerf("gpu_memory");
|
|
||||||
|
|
||||||
if (gpu_boost < ASUSWmi.MinGPUBoost || gpu_boost > ASUSWmi.MaxGPUBoost ) return;
|
if (gpu_boost < ASUSWmi.MinGPUBoost || gpu_boost > ASUSWmi.MaxGPUBoost) return;
|
||||||
if (gpu_temp < ASUSWmi.MinGPUTemp || gpu_temp > ASUSWmi.MaxGPUTemp) return;
|
if (gpu_temp < ASUSWmi.MinGPUTemp || gpu_temp > ASUSWmi.MaxGPUTemp) return;
|
||||||
|
|
||||||
if (Program.wmi.DeviceGet(ASUSWmi.PPT_GPUC0) >= 0)
|
if (Program.wmi.DeviceGet(ASUSWmi.PPT_GPUC0) >= 0)
|
||||||
@@ -1067,23 +1012,6 @@ namespace GHelper
|
|||||||
Program.wmi.DeviceSet(ASUSWmi.PPT_GPUC2, gpu_temp, "PowerLimit C2");
|
Program.wmi.DeviceSet(ASUSWmi.PPT_GPUC2, gpu_temp, "PowerLimit C2");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gpu_core == -1 && gpu_memory == -1) return;
|
|
||||||
|
|
||||||
if (HardwareControl.GpuControl is not null && HardwareControl.GpuControl.IsNvidia)
|
|
||||||
{
|
|
||||||
using NvidiaGpuControl nvControl = (NvidiaGpuControl)HardwareControl.GpuControl;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
int status = nvControl.SetClocks(gpu_core, gpu_memory);
|
|
||||||
if (launchAsAdmin && status == -1) Program.RunAsAdmin("gpu");
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Debug.WriteLine(ex.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void LabelFansResult(string text)
|
protected void LabelFansResult(string text)
|
||||||
@@ -1148,24 +1076,25 @@ namespace GHelper
|
|||||||
|
|
||||||
customPower = 0;
|
customPower = 0;
|
||||||
|
|
||||||
if (Program.config.getConfigPerf("auto_apply_power") == 1)
|
bool applyPower = Program.config.getConfigPerf("auto_apply_power") == 1;
|
||||||
{
|
bool applyGPU = true;
|
||||||
if (delay > 0)
|
|
||||||
{
|
|
||||||
var timer = new System.Timers.Timer(1000);
|
|
||||||
timer.Elapsed += delegate
|
|
||||||
{
|
|
||||||
timer.Stop();
|
|
||||||
timer.Dispose();
|
|
||||||
SetPower();
|
|
||||||
};
|
|
||||||
timer.Start();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SetPower();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (delay > 0)
|
||||||
|
{
|
||||||
|
var timer = new System.Timers.Timer(delay);
|
||||||
|
timer.Elapsed += delegate
|
||||||
|
{
|
||||||
|
timer.Stop();
|
||||||
|
timer.Dispose();
|
||||||
|
if (applyPower) SetPower();
|
||||||
|
SetGPUPower();
|
||||||
|
};
|
||||||
|
timer.Start();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (applyPower) SetPower();
|
||||||
|
SetGPUPower();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1220,15 +1149,18 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SetGPUClocks();
|
||||||
|
|
||||||
AutoFans();
|
AutoFans();
|
||||||
AutoGPUSettings();
|
|
||||||
AutoPower(1000);
|
AutoPower(1000);
|
||||||
|
|
||||||
|
if (Program.config.getConfig("auto_apply_power_plan") != 0)
|
||||||
if (Program.config.getConfigPerfString("scheme") is not null)
|
{
|
||||||
NativeMethods.SetPowerScheme(Program.config.getConfigPerfString("scheme"));
|
if (Program.config.getConfigPerfString("scheme") is not null)
|
||||||
else
|
NativeMethods.SetPowerScheme(Program.config.getConfigPerfString("scheme"));
|
||||||
NativeMethods.SetPowerScheme(PerformanceMode);
|
else
|
||||||
|
NativeMethods.SetPowerScheme(PerformanceMode);
|
||||||
|
}
|
||||||
|
|
||||||
if (Program.config.getConfigPerf("auto_boost") != -1)
|
if (Program.config.getConfigPerf("auto_boost") != -1)
|
||||||
{
|
{
|
||||||
@@ -1295,9 +1227,10 @@ namespace GHelper
|
|||||||
SetScreen(1000, 1);
|
SetScreen(1000, 1);
|
||||||
else
|
else
|
||||||
SetScreen(60, 0);
|
SetScreen(60, 0);
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
SetScreen(overdrive : Program.config.getConfig("overdrive"));
|
SetScreen(overdrive: Program.config.getConfig("overdrive"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1336,7 +1269,7 @@ namespace GHelper
|
|||||||
if (eco == 1)
|
if (eco == 1)
|
||||||
if ((GpuAuto && IsPlugged()) || (ForceGPU && GpuMode == ASUSWmi.GPUModeStandard))
|
if ((GpuAuto && IsPlugged()) || (ForceGPU && GpuMode == ASUSWmi.GPUModeStandard))
|
||||||
{
|
{
|
||||||
SetEcoGPU(0);
|
SetGPUEco(0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (eco == 0)
|
if (eco == 0)
|
||||||
@@ -1349,7 +1282,7 @@ namespace GHelper
|
|||||||
if (dialogResult == DialogResult.No) return false;
|
if (dialogResult == DialogResult.No) return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetEcoGPU(1);
|
SetGPUEco(1);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1360,15 +1293,16 @@ namespace GHelper
|
|||||||
|
|
||||||
public bool ReEnableGPU()
|
public bool ReEnableGPU()
|
||||||
{
|
{
|
||||||
if (Screen.AllScreens.Length <= 1) return false;
|
|
||||||
if (Program.config.getConfig("gpu_reenable") != 1) return false;
|
if (Program.config.getConfig("gpu_reenable") != 1) return false;
|
||||||
|
if (Screen.AllScreens.Length <= 1) return false;
|
||||||
|
|
||||||
Logger.WriteLine("Re-enabling gpu for 503 model");
|
Logger.WriteLine("Re-enabling gpu for 503 model");
|
||||||
|
|
||||||
Thread.Sleep(1000);
|
Thread.Sleep(1000);
|
||||||
SetEcoGPU(1);
|
SetGPUEco(1);
|
||||||
Thread.Sleep(1000);
|
Thread.Sleep(1000);
|
||||||
SetEcoGPU(0);
|
SetGPUEco(0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1436,8 +1370,47 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void RestartGPU(bool confirm = true)
|
||||||
|
{
|
||||||
|
if (HardwareControl.GpuControl is null) return;
|
||||||
|
if (!HardwareControl.GpuControl!.IsNvidia) return;
|
||||||
|
|
||||||
public void SetEcoGPU(int eco)
|
if (confirm)
|
||||||
|
{
|
||||||
|
DialogResult dialogResult = MessageBox.Show(Properties.Strings.RestartGPU, Properties.Strings.EcoMode, MessageBoxButtons.YesNo);
|
||||||
|
if (dialogResult == DialogResult.No) return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Program.RunAsAdmin("gpurestart");
|
||||||
|
|
||||||
|
if (!Program.IsUserAdministrator()) return;
|
||||||
|
|
||||||
|
Logger.WriteLine("Trying to restart dGPU");
|
||||||
|
|
||||||
|
Task.Run(async () =>
|
||||||
|
{
|
||||||
|
Program.settingsForm.BeginInvoke(delegate
|
||||||
|
{
|
||||||
|
labelTipGPU.Text = "Restarting GPU ...";
|
||||||
|
ButtonEnabled(buttonOptimized, false);
|
||||||
|
ButtonEnabled(buttonEco, false);
|
||||||
|
ButtonEnabled(buttonStandard, false);
|
||||||
|
ButtonEnabled(buttonUltimate, false);
|
||||||
|
});
|
||||||
|
|
||||||
|
var nvControl = (NvidiaGpuControl)HardwareControl.GpuControl;
|
||||||
|
bool status = nvControl.RestartGPU();
|
||||||
|
|
||||||
|
Program.settingsForm.BeginInvoke(delegate
|
||||||
|
{
|
||||||
|
labelTipGPU.Text = status ? "GPU Restarted, you can try Eco mode again" : "Failed to restart GPU";
|
||||||
|
InitGPUMode();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetGPUEco(int eco, bool hardWay = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
ButtonEnabled(buttonOptimized, false);
|
ButtonEnabled(buttonOptimized, false);
|
||||||
@@ -1447,10 +1420,11 @@ namespace GHelper
|
|||||||
|
|
||||||
labelGPU.Text = Properties.Strings.GPUMode + ": " + Properties.Strings.GPUChanging + " ...";
|
labelGPU.Text = Properties.Strings.GPUMode + ": " + Properties.Strings.GPUChanging + " ...";
|
||||||
|
|
||||||
|
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
|
|
||||||
|
int status;
|
||||||
|
|
||||||
if (eco == 1)
|
if (eco == 1)
|
||||||
{
|
{
|
||||||
string[] tokill = { "EADesktop", "RadeonSoftware" };
|
string[] tokill = { "EADesktop", "RadeonSoftware" };
|
||||||
@@ -1458,9 +1432,15 @@ namespace GHelper
|
|||||||
foreach (var process in Process.GetProcessesByName(kill)) process.Kill();
|
foreach (var process in Process.GetProcessesByName(kill)) process.Kill();
|
||||||
}
|
}
|
||||||
|
|
||||||
Program.wmi.DeviceSet(ASUSWmi.GPUEco, eco, "GPUEco");
|
//if (eco == 1) status = 0; else
|
||||||
|
status = Program.wmi.SetGPUEco(eco);
|
||||||
|
|
||||||
await Task.Delay(TimeSpan.FromSeconds(1));
|
if (status == 0 && eco == 1 && hardWay)
|
||||||
|
{
|
||||||
|
RestartGPU();
|
||||||
|
}
|
||||||
|
|
||||||
|
await Task.Delay(TimeSpan.FromMilliseconds(500));
|
||||||
Program.settingsForm.BeginInvoke(delegate
|
Program.settingsForm.BeginInvoke(delegate
|
||||||
{
|
{
|
||||||
InitGPUMode();
|
InitGPUMode();
|
||||||
@@ -1468,7 +1448,11 @@ namespace GHelper
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (eco == 0)
|
if (eco == 0)
|
||||||
HardwareControl.RecreateGpuControlWithDelay();
|
{
|
||||||
|
await Task.Delay(TimeSpan.FromMilliseconds(3000));
|
||||||
|
HardwareControl.RecreateGpuControl();
|
||||||
|
SetGPUClocks(false);
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1514,13 +1498,13 @@ namespace GHelper
|
|||||||
else if (GPUMode == ASUSWmi.GPUModeEco)
|
else if (GPUMode == ASUSWmi.GPUModeEco)
|
||||||
{
|
{
|
||||||
VisualiseGPUMode(GPUMode);
|
VisualiseGPUMode(GPUMode);
|
||||||
SetEcoGPU(1);
|
SetGPUEco(1, true);
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
else if (GPUMode == ASUSWmi.GPUModeStandard)
|
else if (GPUMode == ASUSWmi.GPUModeStandard)
|
||||||
{
|
{
|
||||||
VisualiseGPUMode(GPUMode);
|
VisualiseGPUMode(GPUMode);
|
||||||
SetEcoGPU(0);
|
SetGPUEco(0);
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1626,6 +1610,15 @@ namespace GHelper
|
|||||||
sliderBattery.Value = limit;
|
sliderBattery.Value = limit;
|
||||||
|
|
||||||
Program.wmi.DeviceSet(ASUSWmi.BatteryLimit, limit, "BatteryLimit");
|
Program.wmi.DeviceSet(ASUSWmi.BatteryLimit, limit, "BatteryLimit");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
OptimizationService.SetChargeLimit(limit);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Debug.WriteLine(ex);
|
||||||
|
}
|
||||||
|
|
||||||
Program.config.setConfig("charge_limit", limit);
|
Program.config.setConfig("charge_limit", limit);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix
|
|||||||
## [:floppy_disk: Download App](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
|
## [:floppy_disk: Download App](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
|
||||||
|
|
||||||
If you like this app, please [star :star: it on Github](https://github.com/seerge/g-helper) and spread a word about it!
|
If you like this app, please [star :star: it on Github](https://github.com/seerge/g-helper) and spread a word about it!
|
||||||
### [:euro: Donate EUR](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) | [💵 Donate USD](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY)
|
### [:euro: Donate EUR](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) | [💵 Donate USD](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY) | [:coin: Donate via Stripe](https://buy.stripe.com/00gaFJ9Lf79v7WobII)
|
||||||
|
|
||||||
_If you post about the app - please include a link. Thanks._
|
_If you post about the app - please include a link. Thanks._
|
||||||
|
|
||||||
@@ -94,11 +94,16 @@ Most probably either you are using Eco / Optimized mode and your dGPU is simply
|
|||||||
#### It says, that app is already running
|
#### It says, that app is already running
|
||||||
Please check system tray for a (G) icon. By default windows is keen to hide all icons, so you may need to click ^ to see them all. I would advise to right click on Task Bar select Task Bar Settings -> Other System Tray icons -> Mark G-Helper to be always ON.
|
Please check system tray for a (G) icon. By default windows is keen to hide all icons, so you may need to click ^ to see them all. I would advise to right click on Task Bar select Task Bar Settings -> Other System Tray icons -> Mark G-Helper to be always ON.
|
||||||
|
|
||||||
#### App doesn't start / or crashes, what should I do ?
|
#### App doesn't crash or doesn't work properly what should I do ?
|
||||||
Open "Event Viewer" from start menu, go to Windows Logs -> Application and check for recent Errors mentioning G-Helper. If you see one - please post a [new issue](https://github.com/seerge/g-helper/issues) with all details from this error.
|
Open "Event Viewer" from start menu, go to Windows Logs -> Application and check for recent Errors mentioning G-Helper. If you see one - please post a [new issue](https://github.com/seerge/g-helper/issues) with all details from this error.
|
||||||
|
|
||||||
|
#### Battery charge limiter is not working
|
||||||
|
Open application log.text from ``%AppData%\GHelper`` . If you see something like ``BatteryLimit = 60 : OK`` there (with your selected limit). App has done everything it could to set a limit. It could be that MyASUS or other Asus services are overwriting this limit after. You may want to right click and save this [debloat.bat](https://raw.githubusercontent.com/seerge/g-helper/main/debloat.bat) and then right-click Run it As Admin. It will stop not mandatory asus services.
|
||||||
|
|
||||||
|
What you can also try is to open ``C:\ProgramData\ASUS\ASUS System Control Interface\ASUSOptimization\Customization.ini`` and find following section from that file : ``[BatteryHealthCharging] ... value=100`` and either delete it or put same value as you use in G-helper.
|
||||||
|
|
||||||
#### Can I use MyASUS app along with G-Helper?
|
#### Can I use MyASUS app along with G-Helper?
|
||||||
Sure, you can! The only problem is that MyASUS may override the battery charge limit that you set before. My advice in such a situation would be to set the same limit (i.e. 80%) in both MyASUS and G-Helper.
|
You can, the only problem is that MyASUS may override the battery charge limit that you set before. My advice in such a situation would be to set the same limit (i.e. 80%) in both MyASUS and G-Helper.
|
||||||
|
|
||||||
#### How do I set Mute Microphone to M3?
|
#### How do I set Mute Microphone to M3?
|
||||||
This function is handled by Asus Optimization Service (therefore G-helper doesn't interfere and doesn't touch this function). Make sure that this service is up and running
|
This function is handled by Asus Optimization Service (therefore G-helper doesn't interfere and doesn't touch this function). Make sure that this service is up and running
|
||||||
@@ -140,10 +145,12 @@ It's a lightweight Armoury Crate alternative for Asus laptops. A small utility t
|
|||||||
|
|
||||||
- I recommend keeping "Asus Optimization Service" running, as it keeps basic laptop hotkeys such as screen or keyboard brightness adjustment working.
|
- I recommend keeping "Asus Optimization Service" running, as it keeps basic laptop hotkeys such as screen or keyboard brightness adjustment working.
|
||||||
|
|
||||||
- Optionally(!) you can disable / remove unnecessary services by running [this debloat bat file](https://raw.githubusercontent.com/seerge/g-helper/main/debloat.bat) as admin. To restore services - run [this bloat bat file](https://raw.githubusercontent.com/seerge/g-helper/main/bloat.bat) instead.
|
- Optionally(!) you can disable / remove unnecessary services. Ruight click and save [debloat.bat](https://raw.githubusercontent.com/seerge/g-helper/main/debloat.bat). Then right click and Run it as Admin. To restore services - save and run [bloat.bat](https://raw.githubusercontent.com/seerge/g-helper/main/bloat.bat) instead.
|
||||||
|
|
||||||
- It's not recommended to use an app in combination with Armoury Crate services, because they adjust the same settings. You can [uninstall it using it's own uninstall tool](https://dlcdnets.asus.com/pub/ASUS/mb/14Utilities/Armoury_Crate_Uninstall_Tool.zip?model=armoury%20crate). Just in case, you can always install it back later.
|
- It's not recommended to use an app in combination with Armoury Crate services, because they adjust the same settings. You can [uninstall it using it's own uninstall tool](https://dlcdnets.asus.com/pub/ASUS/mb/14Utilities/Armoury_Crate_Uninstall_Tool.zip?model=armoury%20crate). Just in case, you can always install it back later.
|
||||||
|
|
||||||
|
- Also, it's not recommended to have "ASUS Smart Display Control" app running, as it will try to change refresh rates and fight with g-helper for the same function. You can safely uninstall it.
|
||||||
|
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
Designed and developed 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.
|
Designed and developed 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.
|
||||||
@@ -194,9 +201,13 @@ Full list of keycodes https://learn.microsoft.com/en-us/windows/win32/inputdev/v
|
|||||||
Some people reported that on G15 model bios can be bugged and either not turn on or not turn off fans, when you set custom fan curve (in Armoury or g-helper, or any other app)
|
Some people reported that on G15 model bios can be bugged and either not turn on or not turn off fans, when you set custom fan curve (in Armoury or g-helper, or any other app)
|
||||||
I have added a very optional workaround as it was asked, on launch app will try to disable and re-enable dGPU when external monitor is connected, that seems to wake up fans :)
|
I have added a very optional workaround as it was asked, on launch app will try to disable and re-enable dGPU when external monitor is connected, that seems to wake up fans :)
|
||||||
|
|
||||||
To enable this custom workaround you need to add an extra line in In config.json (under ``%AppData%\GHelper``)
|
To enable this custom workaround you need to add an extra line in config.json (under ``%AppData%\GHelper``)
|
||||||
``gpu_reenable : 1,``
|
``gpu_reenable : 1,``
|
||||||
|
|
||||||
|
### Keybinding to toggle performance modes (on external keyboards)
|
||||||
|
|
||||||
|
By default app will toggle performance modes with Ctr+Shift+F5. You can change this binding by adding ``"keybind_profile": 116`` in config.json (under ``%AppData%\GHelper``), where 116 is [numerical code for desired key](https://www.oreilly.com/library/view/javascript-dhtml/9780596514082/apb.html). Put 0 to completely disable this binding.
|
||||||
|
|
||||||
------------
|
------------
|
||||||
**Disclaimers**
|
**Disclaimers**
|
||||||
"ROG", "TUF", and "Armoury Crate" are trademarked by and belong to AsusTek Computer, Inc. I make no claims to these or any assets belonging to AsusTek Computer and use them purely for informational purposes only.
|
"ROG", "TUF", and "Armoury Crate" are trademarked by and belong to AsusTek Computer, Inc. I make no claims to these or any assets belonging to AsusTek Computer and use them purely for informational purposes only.
|
||||||
|
|||||||
Reference in New Issue
Block a user