// Decompiled with JetBrains decompiler // Type: Raton.Windows.Tools // Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null // MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7 // Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Interop; using System.Windows.Markup; using WpfApp1; #nullable disable namespace Raton.Windows; public partial class Tools : Window { private const int DWMWA_USE_IMMERSIVE_DARK_MODE = 20; private List _allFiles = new List(); private ObservableCollection _filtered = new ObservableCollection(); [DllImport("dwmapi.dll", CharSet = CharSet.Auto)] private static extern int DwmSetWindowAttribute( IntPtr hwnd, int attr, ref int attrValue, int attrSize); public Tools() => this.InitializeComponent(); private void Window_Loaded(object sender, RoutedEventArgs e) { this.ApplyDarkTitle(); this.LoadFiles(); } private void ApplyDarkTitle() { IntPtr handle = new WindowInteropHelper((Window) this).Handle; int attrValue = 1; Tools.DwmSetWindowAttribute(handle, 20, ref attrValue, Marshal.SizeOf(typeof (int))); } private void LoadFiles() { this._allFiles.Clear(); string toolsFolder = MainWindow.ToolsFolder; this.TbFolderPath.Text = string.IsNullOrWhiteSpace(toolsFolder) ? nameof (Tools) : toolsFolder; if (!string.IsNullOrWhiteSpace(toolsFolder)) { if (Directory.Exists(toolsFolder)) { try { foreach (string file in Directory.GetFiles(toolsFolder, "*.exe")) { FileInfo fileInfo = new FileInfo(file); this._allFiles.Add(new ToolFileItem() { FileName = fileInfo.Name, FullPath = file, Extension = "EXE", Size = Tools.FormatSize(fileInfo.Length), LastModified = fileInfo.LastWriteTime.ToString("dd/MM/yyyy HH:mm"), IconGlyph = Tools.GetIconGlyph(fileInfo.Extension) }); } this.ApplyFilter(this.TbSearch.Text); return; } catch (Exception ex) { this.TbStatus.Text = "Error: " + ex.Message; return; } } } this.TbStatus.Text = "Folder not found"; this.FilesGrid.ItemsSource = (IEnumerable) this._filtered; } private void TbSearch_TextChanged(object sender, TextChangedEventArgs e) { this.TbSearchPlaceholder.Visibility = string.IsNullOrEmpty(this.TbSearch.Text) ? Visibility.Visible : Visibility.Collapsed; this.ApplyFilter(this.TbSearch.Text); } private void ApplyFilter(string query) { this._filtered.Clear(); foreach (ToolFileItem toolFileItem in !string.IsNullOrWhiteSpace(query) ? this._allFiles.Where((Func) (f => f.FileName != null && f.FileName.IndexOf(query, StringComparison.OrdinalIgnoreCase) >= 0)) : (IEnumerable) this._allFiles) this._filtered.Add(toolFileItem); this.FilesGrid.ItemsSource = (IEnumerable) this._filtered; this.TbStatus.Text = this._filtered.Count == 1 ? "1 file" : this._filtered.Count.ToString() + " files"; } private void FilesGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (!(this.FilesGrid.SelectedItem is ToolFileItem selectedItem)) return; try { Process.Start(new ProcessStartInfo() { FileName = selectedItem.FullPath, UseShellExecute = true }); } catch (Win32Exception ex) { if (ex.NativeErrorCode != 1223) return; Tools.OpenContainingFolder(selectedItem.FullPath); } catch (UnauthorizedAccessException ex) { Tools.OpenContainingFolder(selectedItem.FullPath); } catch { Tools.OpenContainingFolder(selectedItem.FullPath); } } private static void OpenContainingFolder(string filePath) { try { string directoryName = Path.GetDirectoryName(filePath); if (string.IsNullOrEmpty(directoryName) || !Directory.Exists(directoryName)) return; Process.Start(new ProcessStartInfo() { FileName = "explorer.exe", Arguments = $"\"{directoryName}\"", UseShellExecute = true }); } catch { } } private static string FormatSize(long bytes) { if (bytes < 1024L /*0x0400*/) return bytes.ToString() + " B"; if (bytes < 1048576L /*0x100000*/) return ((double) bytes / 1024.0).ToString("F1") + " KB"; return bytes < 1073741824L /*0x40000000*/ ? ((double) bytes / 1048576.0).ToString("F1") + " MB" : ((double) bytes / 1073741824.0).ToString("F1") + " GB"; } private static string GetIconGlyph(string ext) { if (string.IsNullOrEmpty(ext)) return "\uE7C3"; ext = ext.ToLowerInvariant(); switch (ext) { case ".exe": case ".msi": return "\uE756"; case ".bat": case ".cmd": case ".ps1": return "\uE756"; case ".zip": case ".rar": case ".7z": return "\uF012"; case ".txt": case ".log": return "\uE8A5"; case ".pdf": return "\uEA90"; case ".lnk": return "\uE71B"; case ".xml": case ".json": return "\uE943"; case ".ini": case ".cfg": return "\uE713"; case ".png": case ".jpg": case ".bmp": case ".ico": case ".gif": return "\uEB9F"; default: return "\uE7C3"; } } }