From 67240cceff9d3f1a67e200d910d39fb3d61d19c7 Mon Sep 17 00:00:00 2001 From: Lixkote <95425619+Lixkote@users.noreply.github.com> Date: Tue, 21 May 2024 14:40:52 +0200 Subject: [PATCH] Additions --- DirectStart/App.xaml.cs | 163 ++++++++++++++--------- DirectStart/Skins/Metro.xaml | 6 +- DirectStart/StartMenu.xaml | 2 +- DirectStart/StartMenu.xaml.cs | 148 +++++++++++++++++--- DirectStart/StartMenuListener.cs | 70 +++++----- DirectStart/TileColorCalculator.cs | 2 + Triggerer/Thumbs.db | Bin 0 -> 25600 bytes Triggerer/TriggerStartMenuExternally.ahk | 40 ++++++ Triggerer/trigger.ico | Bin 0 -> 62315 bytes 9 files changed, 308 insertions(+), 123 deletions(-) create mode 100644 Triggerer/Thumbs.db create mode 100644 Triggerer/TriggerStartMenuExternally.ahk create mode 100644 Triggerer/trigger.ico diff --git a/DirectStart/App.xaml.cs b/DirectStart/App.xaml.cs index ef84bc0..a7e6520 100644 --- a/DirectStart/App.xaml.cs +++ b/DirectStart/App.xaml.cs @@ -4,6 +4,8 @@ using System.Windows; using B8TAM; using System.Diagnostics; +using System.Linq; +using System.IO.Pipes; namespace AFSM { @@ -24,89 +26,122 @@ public App() Current.Shutdown(); } } + private void HandleTriggerArgument() + { + using (var client = new NamedPipeClientStream(".", "DirectStartPipe", PipeDirection.Out)) + { + try + { + client.Connect(); + using (var writer = new StreamWriter(client)) + { + writer.WriteLine("TRIGGER"); + writer.Flush(); + } + } + catch (IOException ex) + { + // Log or handle the error as needed + Debug.WriteLine("Named pipe error: " + ex.Message); + } + } + } protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); - // Read the text file from %HOMEPATH% - string filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "DirectStart", "Tiles", "config.txt"); - try + string debug = "false"; + + // Check if the trigger argument is passed + if (e.Args.Contains("/trigger") || debug == "true") + { + // Handle the trigger functionality + HandleTriggerArgument(); + // Shutdown the application if it was started just to trigger + Environment.Exit(0); + } + else { - if (File.Exists(filePath)) + // Read the text file from %HOMEPATH% + string filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "DirectStart", "Tiles", "config.txt"); + try { - // Read the content of the text file - string[] lines = File.ReadAllLines(filePath); + if (File.Exists(filePath)) + { + // Read the content of the text file + string[] lines = File.ReadAllLines(filePath); - // Initialize variables to hold configuration values - string theme = null; - string profilePictureShape = null; - string forceFillStartButton = null; - string retrobarfix = null; + // Initialize variables to hold configuration values + string theme = null; + string profilePictureShape = null; + string forceFillStartButton = null; + string retrobarfix = null; - // Parse each line of the config file - foreach (string line in lines) - { - string[] parts = line.Split('='); - if (parts.Length == 2) + // Parse each line of the config file + foreach (string line in lines) { - string key = parts[0].Trim(); - string value = parts[1].Trim(); - - // Apply configuration based on the key - switch (key.ToLower()) + string[] parts = line.Split('='); + if (parts.Length == 2) { - case "theme": - theme = value; - break; - case "profilepictureshape": - profilePictureShape = value; - break; - case "forcefillstartbutton": - forceFillStartButton = value; - break; - case "RetroBarFix": - retrobarfix = value; - break; - default: - // Handle unknown keys if necessary - break; + string key = parts[0].Trim(); + string value = parts[1].Trim(); + + // Apply configuration based on the key + switch (key.ToLower()) + { + case "theme": + theme = value; + break; + case "profilepictureshape": + profilePictureShape = value; + break; + case "forcefillstartbutton": + forceFillStartButton = value; + break; + case "RetroBarFix": + retrobarfix = value; + break; + default: + // Handle unknown keys if necessary + break; + } } } - } - // Apply the theme - if (!string.IsNullOrEmpty(theme)) - { - string resourceDictionaryPath = GetResourceDictionaryPath(theme); - if (!string.IsNullOrEmpty(resourceDictionaryPath)) - { - // Set the ResourceDictionary for the theme - ResourceDictionary skinDictionary = new ResourceDictionary(); - skinDictionary.Source = new Uri(resourceDictionaryPath, UriKind.RelativeOrAbsolute); - Resources.MergedDictionaries.Add(skinDictionary); - } - else + // Apply the theme + if (!string.IsNullOrEmpty(theme)) { - MessageBox.Show("Invalid theme specified in the config file."); + string resourceDictionaryPath = GetResourceDictionaryPath(theme); + if (!string.IsNullOrEmpty(resourceDictionaryPath)) + { + // Set the ResourceDictionary for the theme + ResourceDictionary skinDictionary = new ResourceDictionary(); + skinDictionary.Source = new Uri(resourceDictionaryPath, UriKind.RelativeOrAbsolute); + Resources.MergedDictionaries.Add(skinDictionary); + } + else + { + MessageBox.Show("Invalid theme specified in the config file."); + } } - } - // Store profilePictureShape and forceFillStartButton in application-level resources - this.Resources["ProfilePictureShape"] = profilePictureShape; - this.Resources["ForceFillStartButton"] = forceFillStartButton; - this.Resources["RetroBarFix"] = retrobarfix; + // Store profilePictureShape and forceFillStartButton in application-level resources + this.Resources["ProfilePictureShape"] = profilePictureShape; + this.Resources["ForceFillStartButton"] = forceFillStartButton; + this.Resources["RetroBarFix"] = retrobarfix; + } + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString(), "B8taMenu had an issue loading the config file or its values."); + Debug.WriteLine(ex.ToString(), "B8taMenu had an issue loading the config file or its values."); } - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), "B8taMenu had an issue loading the config file or its values."); - Debug.WriteLine(ex.ToString(), "B8taMenu had an issue loading the config file or its values."); - } - // Initialize your main window or any other startup logic - StartMenu mainWindow = new StartMenu(); - mainWindow.Show(); + // Initialize your main window or any other startup logic + StartMenu mainWindow = new StartMenu(); + mainWindow.Show(); + } } private string GetResourceDictionaryPath(string themeName) diff --git a/DirectStart/Skins/Metro.xaml b/DirectStart/Skins/Metro.xaml index be2e541..ab87e24 100644 --- a/DirectStart/Skins/Metro.xaml +++ b/DirectStart/Skins/Metro.xaml @@ -21,7 +21,7 @@ diff --git a/DirectStart/StartMenu.xaml b/DirectStart/StartMenu.xaml index 1968b5b..58c42ed 100644 --- a/DirectStart/StartMenu.xaml +++ b/DirectStart/StartMenu.xaml @@ -342,7 +342,7 @@ Visibility="{Binding Text.IsEmpty, Converter={StaticResource BoolToVis}, Element - + new RunCommand(RunCommand); - private static Color GetColor(IntPtr pElementName) + private void StartPipeServer() + { + Task.Run(() => + { + while (true) + { + using (var server = new NamedPipeServerStream("DirectStartPipe", PipeDirection.In, NamedPipeServerStream.MaxAllowedServerInstances)) + { + try + { + server.WaitForConnection(); + using (var reader = new StreamReader(server)) + { + var message = reader.ReadLine(); + if (message != null && message.Contains("TRIGGER")) + { + Dispatcher.Invoke(() => OnStartTriggeredNoArgs()); + } + else + { + Console.WriteLine("Received unknown message: " + message); + } + } + } + catch (IOException ex) + { + // Log or handle the error as needed + Console.WriteLine("Named pipe error: " + ex.Message); + } + catch (Exception ex) + { + // Catch other potential exceptions + Console.WriteLine("Error: " + ex.Message); + } + } + } + }); + } + + + private static Color GetColor(IntPtr pElementName) { var colourset = DUIColorHelper.GetImmersiveUserColorSetPreference(false, false); uint type = DUIColorHelper.GetImmersiveColorTypeFromName(pElementName); @@ -75,9 +117,10 @@ public StartMenu() GetPrograms(programs); programs = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.StartMenu), "Programs"); GetPrograms(programs); + StartPipeServer(); - this.sourceTypes = new List() + this.sourceTypes = new List() { new SourceType("Program", @"Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count"), new SourceType("Shortcut", @"Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count") @@ -449,15 +492,18 @@ private string GetDisplayNameFromExePath(string exePath) { string displayName = string.Empty; - try - { - var fileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(exePath); - displayName = fileVersionInfo.FileDescription; + try + { + var fileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(exePath); + displayName = fileVersionInfo.FileDescription; - // If display name is longer than 17 characters, get the path without extension - if (displayName.Length > 25) - { - displayName = Path.GetFileNameWithoutExtension(exePath); + // If display name is longer than 17 characters, get the path without extension + if (displayName != null) + { + if (displayName.Length > 25) + { + displayName = Path.GetFileNameWithoutExtension(exePath); + } } } catch (Exception ex) @@ -582,16 +628,31 @@ public void LoadTiles() TilesHost.ItemsSource = Tiles; } - void OnStartTriggered(object sender, EventArgs e) - { - Visibility = Visibility == Visibility.Visible ? Visibility.Hidden : Visibility.Visible; - if (Visibility == Visibility.Visible) - { - Show(); - WindowActivator.ActivateWindow(new System.Windows.Interop.WindowInteropHelper(Menu).Handle); - SearchText.Focus(); - } - } + void OnStartTriggered(object sender, EventArgs e) + { + ToggleStartMenu(); + } + + private void OnStartTriggeredNoArgs() + { + ToggleStartMenu(); + } + + private void ToggleStartMenu() + { + Visibility = Visibility == Visibility.Visible ? Visibility.Hidden : Visibility.Visible; + if (Visibility == Visibility.Visible) + { + Show(); + WindowActivator.ActivateWindow(new System.Windows.Interop.WindowInteropHelper(Menu).Handle); + SearchText.Focus(); + } + else + { + Hide(); + } + } + private void Window_Activated(object sender, EventArgs e) { @@ -940,7 +1001,54 @@ private void ResizeTileLarge_Click(object sender, RoutedEventArgs e) { } + + private void SearchText_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) + { + // Check if any alphanumeric key is pressed + if (char.IsLetterOrDigit((char)e.Key)) + { + string rundll32Path = Environment.ExpandEnvironmentVariables(@"%windir%\system32\rundll32.exe"); + string command = @"-sta {C90FB8CA-3295-4462-A721-2935E83694BA}"; + + ProcessStartInfo startInfo = new ProcessStartInfo(rundll32Path, command) + { + CreateNoWindow = true, + UseShellExecute = false + }; + + try + { + Process.Start(startInfo); + } + catch (Exception ex) + { + Debug.WriteLine("An error occurred: " + ex.Message); + } + } + } + + private void SearchText_TextChanged(object sender, TextChangedEventArgs e) + { + string rundll32Path = Environment.ExpandEnvironmentVariables(@"%windir%\system32\rundll32.exe"); + string command = @"-sta {C90FB8CA-3295-4462-A721-2935E83694BA}"; + + ProcessStartInfo startInfo = new ProcessStartInfo(rundll32Path, command) + { + CreateNoWindow = true, + UseShellExecute = false + }; + + try + { + Process.Start(startInfo); + } + catch (Exception ex) + { + Debug.WriteLine("An error occurred: " + ex.Message); + } + } } + public class RunCommand : ICommand { public delegate void ExecuteMethod(); diff --git a/DirectStart/StartMenuListener.cs b/DirectStart/StartMenuListener.cs index 162d21d..8fe04bf 100644 --- a/DirectStart/StartMenuListener.cs +++ b/DirectStart/StartMenuListener.cs @@ -65,41 +65,41 @@ int KeyEvents(int code, IntPtr wParam, IntPtr lParam) { KBDLLHOOKSTRUCT objKeyInfo = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(KBDLLHOOKSTRUCT)); - if (wParam == (IntPtr)0x0100) // Key down - { - pressedKeys.Add(objKeyInfo.key); // Add the key to the set of pressed keys - stopwatch.Restart(); // Restart the stopwatch - } - else if (wParam == (IntPtr)0x0101) // Key up - { - stopwatch.Stop(); // Stop the stopwatch - - if (pressedKeys.Count == 1 && (objKeyInfo.key == Keys.LWin || objKeyInfo.key == Keys.RWin)) - { - // Introduce a small delay (e.g., 100 milliseconds) to ensure the key is held for a minimum time - if (stopwatch.ElapsedMilliseconds <= 100) - { - bool anyKeyPressed = false; - - foreach (Key key in Enum.GetValues(typeof(Key))) - { - if (key != Key.None && key != Key.LWin && key != Key.RWin && Keyboard.IsKeyDown(key)) - { - anyKeyPressed = true; - break; - } - } - // Only execute the actions if no other keys are pressed - if (!anyKeyPressed) - { - StartTriggered?.Invoke(this, EventArgs.Empty); - return 1; - } - } - } - - pressedKeys.Clear(); - } + //if (wParam == (IntPtr)0x0100) // Key down + //{ + // pressedKeys.Add(objKeyInfo.key); // Add the key to the set of pressed keys + // stopwatch.Restart(); // Restart the stopwatch + //} + //else if (wParam == (IntPtr)0x0101) // Key up + //{ + // stopwatch.Stop(); // Stop the stopwatch + + // if (pressedKeys.Count == 1 && (objKeyInfo.key == Keys.LWin || objKeyInfo.key == Keys.RWin)) + // { + // // Introduce a small delay (e.g., 100 milliseconds) to ensure the key is held for a minimum time + // if (stopwatch.ElapsedMilliseconds <= 100) + // { + // bool anyKeyPressed = false; + + // foreach (Key key in Enum.GetValues(typeof(Key))) + // { + // if (key != Key.None && key != Key.LWin && key != Key.RWin && Keyboard.IsKeyDown(key)) + // { + // anyKeyPressed = true; + // break; + // } + // } + // // Only execute the actions if no other keys are pressed + // if (!anyKeyPressed) + // { + // StartTriggered?.Invoke(this, EventArgs.Empty); + // return 1; + // } + // } + // } + + // pressedKeys.Clear(); + //} } diff --git a/DirectStart/TileColorCalculator.cs b/DirectStart/TileColorCalculator.cs index d8c6e0e..52a2bbb 100644 --- a/DirectStart/TileColorCalculator.cs +++ b/DirectStart/TileColorCalculator.cs @@ -186,6 +186,8 @@ private static DefaultTileColors FindClosestColor(System.Drawing.Color averageCo return DefaultTileColors.Gray; case "black": return DefaultTileColors.Black; + case "red": + return DefaultTileColors.Red; case "pumpkin": return DefaultTileColors.Pumpkin; case "palegreen": diff --git a/Triggerer/Thumbs.db b/Triggerer/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..732a6e0157c6b8d8cc772cb19ea68e85b2491a06 GIT binary patch literal 25600 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

#0&t4lt-sBxN?uEf!wI4)PZN-^N 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 literal 0 HcmV?d00001 diff --git a/Triggerer/TriggerStartMenuExternally.ahk b/Triggerer/TriggerStartMenuExternally.ahk new file mode 100644 index 0000000..9d017dd --- /dev/null +++ b/Triggerer/TriggerStartMenuExternally.ahk @@ -0,0 +1,40 @@ +#Persistent +#NoEnv +#SingleInstance Force +SetBatchLines, -1 + +PipeName := "\\.\pipe\DirectStartPipe" + +SendPipeMessage("TRIGGER") + +SendPipeMessage(Message) +{ + global PipeName + + hPipe := DllCall("CreateFile", "Str", PipeName, "UInt", 0x40000000, "UInt", 0, "UInt", 0, "UInt", 3, "UInt", 0, "UInt", 0) + + if (hPipe == -1) + { + ErrorLevel := DllCall("GetLastError") + MsgBox, 16, Error, Could not open pipe. Check if DirectStart is running. Error: %ErrorLevel% + return + } + + VarSetCapacity(Buffer, StrLen(Message) + 1, 0) + StrPut(Message, &Buffer, "UTF-8") + BytesWritten := 0 + + Result := DllCall("WriteFile", "UInt", hPipe, "Ptr", &Buffer, "UInt", StrLen(Message) * 2, "UIntP", BytesWritten, "UInt", 0) ; * 2 because UTF-8 encoding might require up to 2 bytes per character + + if (!Result) + { + ErrorLevel := DllCall("GetLastError") + MsgBox, 16, Error, Could not write to pipe. Check if DirectStart is running. Error: %ErrorLevel% + } + else + { + + } + + DllCall("CloseHandle", "UInt", hPipe) +} diff --git a/Triggerer/trigger.ico b/Triggerer/trigger.ico new file mode 100644 index 0000000000000000000000000000000000000000..09d3a95a4d7ecb3a1093cafbee542b8b3a6ef35d GIT binary patch literal 62315 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 literal 0 HcmV?d00001