private void GetAllProcesses() { var activeProcceses = Process.GetProcesses(); int activeApplicationCount = 0; foreach (Process process in activeProcceses) { if (process.MainWindowHandle != IntPtr.Zero && process.Id != Process.GetCurrentProcess().Id) { try { string path = GetPathFromProcessId(process); if (path != string.Empty && File.Exists(path)) { ProcessExplorerEntry processEntry = new ProcessExplorerEntry(path, Icon.ExtractAssociatedIcon(path), process); backgroundWorker.ReportProgress(++activeApplicationCount, processEntry); } } catch (Exception ex) { VibranceGUI.Log(ex); } } } }
public void RemoveWinEventHook() { try { bool result = UnhookWinEvent(_winEventHookHandle); if (!result) { VibranceGUI.Log(new Exception("UnhookWinEvent(winEventHookHandle) failed. winEventHookHandle = " + _winEventHookHandle)); } } catch (Exception ex) { VibranceGUI.Log(new Exception("UnhookWinEvent(winEventHookHandle) failed.")); } finally { } }
static void Main(string[] args) { bool result = false; Mutex mutex = new Mutex(true, "vibranceGUI~Mutex", out result); if (!result) { MessageBox.Show("You can run vibranceGUI only once at a time!", MessageBoxCaption, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); NativeMethods.SetDllDirectory(CommonUtils.GetVibrance_GUI_AppDataPath()); GraphicsAdapter adapter = GraphicsAdapterHelper.GetAdapter(); Form vibranceGui = null; if (adapter == GraphicsAdapter.Amd) { Func<List<ApplicationSetting>, ResolutionModeWrapper, IVibranceProxy> getProxy = (x, y) => new AmdDynamicVibranceProxy(Environment.Is64BitOperatingSystem ? new AmdAdapter64() : (IAmdAdapter)new AmdAdapter32(), x, y); vibranceGui = new VibranceGUI(getProxy, 100, 0, 300, 100, x => x.ToString()); } else if (adapter == GraphicsAdapter.Nvidia) { const string nvidiaAdapterName = "vibranceDLL.dll"; string resourceName = $"{typeof(Program).Namespace}.NVIDIA.{nvidiaAdapterName}"; CommonUtils.LoadUnmanagedLibraryFromResource( Assembly.GetExecutingAssembly(), resourceName, nvidiaAdapterName); Marshal.PrelinkAll(typeof(NvidiaDynamicVibranceProxy)); vibranceGui = new VibranceGUI( (x, y) => new NvidiaDynamicVibranceProxy(x, y), NvidiaDynamicVibranceProxy.NvapiDefaultLevel, NvidiaDynamicVibranceProxy.NvapiDefaultLevel, NvidiaDynamicVibranceProxy.NvapiMaxLevel, NvidiaDynamicVibranceProxy.NvapiDefaultLevel, x => NvidiaVibranceValueWrapper.Find(x).Percentage); } else if (adapter == GraphicsAdapter.Unknown) { string errorMessage = new Win32Exception(Marshal.GetLastWin32Error()).Message; if (MessageBox.Show(ErrorGraphicsAdapterUnknown + errorMessage, MessageBoxCaption, MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes) { System.Diagnostics.Process.Start("https://twitter.com/juvlarN"); } return; } if (args.Contains("-minimized")) { vibranceGui.WindowState = FormWindowState.Minimized; ((VibranceGUI)vibranceGui).SetAllowVisible(false); } Application.Run(vibranceGui); GC.KeepAlive(mutex); }