分享一個WPF 實現 Windows 軟件快捷小工具

?分享一個WPF 實現 Windows 軟件快捷小工具

Windows 軟件快捷小工具

作者:WPFDevelopersOrg

原文鏈接:https://github.com/WPFDevelopersOrg/SoftwareHelper

  • 框架使用.NET40

  • Visual Studio 2019;

  • 項目使用 MIT 開源許可協議;

  • 項目使用 MVVM 模式來實現詳細學習和理解 WPF

  • 項目中技術使用到WindowsAPIStyleCustomControlJson 序列化和反序列化換膚 Dark|Light動畫Hook 按鍵與鼠標顏色拾取截屏DPI縮放開機啟動NLog轉換器禁止程序多開并喚醒之前程序等;

  • 歡迎下載項目進行魔改;

  • 更多效果可以通過GitHub[1]|碼云[2]下載代碼;

預覽

啟動頁

439ed905d48a49ddbed125f39b6c6f47.gif

嵌入桌面

0b17a53556c874207b8b32ba09cbfa3b.png

懸浮桌面

6775f6ea89309d54418065f5ec4fcffd.png

顏色拾取

f94c0122aa763376d533e436d121f9ac.gif

預覽原文

啟動頁

73aba0bb66748dd4f2884bffe79e50c4.gif42e4f594a3b1d1aed212aaf5ee1ce549.png

搜索定位功能 LeftAlt+(應用首字的首字母)

b026ec72a2a95dbb3fcb671fc2c5901f.png

托盤、換膚、透明度

7f7419cc99ae93141dc95c072423f5a8.png

移動應用順序

057605ca75edc71e89f3b7bbfa6a56e0.png

移除應用

7d32e39adf190b71e2bbad3822750b14.png

自動更新(失效)

69ad98c908a27666b1f21477847044b6.gif

1)開機啟動

private?void?appShortcutToStartup(){var?startupDir?=?Environment.GetFolderPath(Environment.SpecialFolder.Startup);if?(!Directory.Exists(startupDir))?return;var?path?=?startupDir?+?"\\"?+?"SoftwareHelperStart"?+?".url";if?(!File.Exists(path))using?(var?writer?=?new?StreamWriter(path)){var?app?=?Assembly.GetExecutingAssembly().Location;writer.WriteLine("[InternetShortcut]");writer.WriteLine("URL=file:///"?+?app);writer.WriteLine("IconIndex=0");var?icon?=?app.Replace('\\',?'/');writer.WriteLine("IconFile="?+?icon);}}}

2) 換膚 Dark|Light

using?System;
using?System.Configuration;
using?System.Linq;
using?System.Windows;namespace?SoftwareHelper.Helpers
{///?<summary>///?Themes?幫助類///?</summary>public?partial?class?ThemesHelper{///?<summary>///?切換Themes///?</summary>///?<param?name="isDark">true:Dark?false:light</param>public?static?void?SetLightDark(bool?isDark){try{var?existingResourceDictionary?=?Application.Current.Resources.MergedDictionaries.Where(rd?=>?rd.Source?!=?null).SingleOrDefault(rd?=>?rd.Source.OriginalString.Contains("Light")?||?rd.Source.OriginalString.Contains("Dark"));var?source?=?$"pack://application:,,,/SoftwareHelper;component/Themes/{(isDark???"Dark"?:?"Light")}.xaml";var?newResourceDictionary?=?new?ResourceDictionary()?{?Source?=?new?Uri(source)?};App.Current.Resources.MergedDictionaries.Remove(existingResourceDictionary);App.Current.Resources.MergedDictionaries.Add(newResourceDictionary);//節點Configuration?config?=?ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);config.AppSettings.Settings["Dark"].Value?=?isDark.ToString();config.Save(ConfigurationSaveMode.Modified);ConfigurationManager.RefreshSection("appSettings");}catch?(Exception?ex){Log.Error($"MainView.SetLightDark Error:{ex.Message}");}}public?static?bool?GetLightDark(){bool?dark;if?(!bool.TryParse(string.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["Dark"])???"false"?:?ConfigurationManager.AppSettings["Dark"],?out?dark)){dark?=?false;}else{dark?=?Convert.ToBoolean(string.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["Dark"])???"false"?:?ConfigurationManager.AppSettings["Dark"]);}return?dark;}}
}

Hook 按鍵[3]Hook 鼠標[4]顏色拾取[5]

參考資料

[1]

GitHub: https://github.com/WPFDevelopersOrg/SoftwareHelper

[2]

碼云: https://gitee.com/WPFDevelopersOrg/SoftwareHelper

[3]

Hook 按鍵: https://gitee.com/WPFDevelopersOrg/SoftwareHelper/blob/master/SoftwareHelper/Helpers/KeyboardHook.cs

[4]

Hook 鼠標: https://gitee.com/WPFDevelopersOrg/SoftwareHelper/blob/master/SoftwareHelper/Helpers/MouseHelper/MouseHook.cs

[5]

顏色拾取: https://gitee.com/WPFDevelopersOrg/SoftwareHelper/blob/master/SoftwareHelper/Views/WindowColor.xaml

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284867.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284867.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284867.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

學習環境配置:Manjaro、MSYS2以及常見軟件

0.前言 在說Manjaro之前&#xff0c;要先說一下Linux發行版。對于各大發行版而言&#xff0c;內核只有版本的差異&#xff0c;最重要的區別就是包管理系統。常見的包管理系統包括&#xff1a;Pacman&#xff0c;Apt , Yum和Portage。在學習Linux的過程中&#xff0c;和大數人一…

【ArcGIS微課1000例】0017:ArcGIS測量距離和面積工具的巧妙使用

文章目錄 1 交互式測量2 測量要素ArcGIS提供了快速測量距離和面積的工具,通過測量工具可對地圖中的線和面進行測量。 工具條: 測量工具位于【工具】工具條上,如下圖所示: 測量界面: 功能按鈕簡介: 可使用此工具在地圖上繪制一條線或者一個面,然后獲取線的長度與面的面…

[轉]HTTP/3 未來可期?

2015 年 HTTP/2 標準發表后&#xff0c;大多數主流瀏覽器也于當年年底支持該標準。此后&#xff0c;憑借著多路復用、頭部壓縮、服務器推送等優勢&#xff0c;HTTP/2 得到了越來越多開發者的青睞&#xff0c;不知不覺的 HTTP 已經發展到了第三代。本文基于興趣部落接入 HTTP/3 …

只讓輸入數字、字母、中文的輸入框

1.輸入框只能輸入字母和下橫線的正則表達式 <input type"text" onkeyup"this.valuethis.value.replace(/[^_a-zA-Z]/g,)" onpaste"this.valuethis.value.replace(/[^_a-zA-Z]/g,)"> 2.只能輸入數字和英文 <input type"text" …

華為手機logcat不出日志解決方案

進入撥號界面輸入&#xff1a;*#*#2846579#*#* 依次選擇ProjectMenu---后臺設置----LOG設置---LOG開關 點擊打開轉載于:https://www.cnblogs.com/liugangBlog/p/8058259.html

Android之啟動奔潰提示異常java.lang.SecurityException: Permission Denial: startForeground

1 問題 適配Android高版本,啟動奔潰,提示異常 java.lang.SecurityException: Permission Denial: startForeground from pid=1824, uid=10479 requires android.permission.FOREGROUND_SERVICEat android.os.Parcel.createException(Parcel.java:

【ArcGIS微課1000例】0018:ArcGIS設置相對路徑和數據源

文章目錄 ArcGIS設置相對路徑ArcGIS設置數據源ArcGIS設置相對路徑 菜鳥們在使用ArcGIS時經常會碰到將地圖文檔(.mxd)拷貝到別的電腦上或改變一個路徑時,出現數據丟失的現象,具體表現為圖層前面出現一個紅色的感嘆號,如下圖所示。 出現以上問題的根本原因是數據GSS.tif的原…

AI 之 OpenCvSharp 安卓手機攝像頭識別人臉

OpenCvSharp是OpenCv的包裝器&#xff0c;相當于底層是OpenCv只是用.Net的方式調用底層的接口的實現&#xff0c;所以&#xff0c;從OpenCv的知識架構來講&#xff0c;源碼是一樣一樣的。就是換個語言寫而已。1. OpenCvSharp 盡可能地以原生 OpenCV C/C API 風格為藍本。2. Ope…

C#中二進制和流之間的各種相互轉換

一. 二進制轉換成圖片間的轉換 12345MemoryStream ms new MemoryStream(bytes); ms.Position 0; Image img Image.FromStream(ms); ms.Close(); this.pictureBox1.Image二. C#中byte[]與string的轉換代碼 1. 123System.Text.UnicodeEncoding converter new System.Text.Uni…

ASCII碼16進制對照表

ASCII碼對照表 ASCII&#xff08;American Standard Code for Information Interchange&#xff0c;美國信息互換標準代碼&#xff0c;ASCⅡ&#xff09;是基于拉丁字母的一套電腦編碼系統。它主要用于顯示現代英語和其他西歐語言。它是現今最通用的單字節編碼系統&#xff0c…

如何獲得帶時間的ping的結果

ping 192.168.1.91 | awk {print strftime("%Y-%m-%d %H:%M:%S") "\t" $0} 轉載于:https://blog.51cto.com/351842/2051815

iVX低代碼平臺系列制作APP簡單的個人界面

一、前言 我們知道&#xff0c;目前市場上開發app或者小程序這些應用&#xff0c;都離不開一個個人界面&#xff0c;就是類似下面的這種界面&#xff0c;我們可以利用iVX低代碼平臺來開發&#xff0c;簡單快速&#xff0c;如果還有不知道iVX低代碼平臺是啥的&#xff0c;猛戳這…

王高利:Apache Httpd負載均衡Tomcat并實現Session Sticky和Session Cluster

Apache Httpd負載均衡Tomcat并實現Session Sticky和Session Clusterhttp://anyisalin.blog.51cto.com/10917514/1766736轉載于:https://blog.51cto.com/wanggaoli/1770659

對比C#聊聊C++大一統的初始化運算符 {}

一&#xff1a;背景 最近發現 C 中的類型初始化操作&#xff0c;沒有 {} 運算符搞不定的&#xff0c;蠻有意思&#xff0c;今天我們就來逐一列一下各自的用法以及匯編展現&#xff0c;本來想分為 值類型 和 引用類型 兩大塊&#xff0c;但發現在 C 中沒這種說法&#xff0c;默認…

[轉]【高并發】高并發秒殺系統架構解密,不是所有的秒殺都是秒殺!

前言 很多小伙伴反饋說&#xff0c;高并發專題學了那么久&#xff0c;但是&#xff0c;在真正做項目時&#xff0c;仍然不知道如何下手處理高并發業務場景&#xff01;甚至很多小伙伴仍然停留在只是簡單的提供接口&#xff08;CRUD&#xff09;階段&#xff0c;不知道學習的并發…

【ArcGIS微課1000例】0019:什么是Shapefile文件?Shapefile文件之全解

文章目錄 Shapefile文件組成Shapefile文件創建Shapefile文件大小限制Shapefile文件注意事項ESRI Shapefile(shp),或簡稱shapefile,是美國環境系統研究所公司(ESRI)開發的一種空間數據開放格式。該文件格式已經成為了地理信息軟件界的一個開放標準,這表明ESRI公司在全球的…

扼殺 304,Cache-Control: immutable

隨著近些年社交網站的流行&#xff0c;越來越多的人學會了“刷”網頁 ── 刷微博&#xff0c;刷朋友圈&#xff0c;刷新聞&#xff0c;刷秒殺頁。這里的“刷”&#xff0c;就是刷新的意思&#xff0c;在瀏覽器里&#xff0c;你可以通過點擊刷新按鈕&#xff0c;或者用快捷鍵&a…

Eolink是國產API接口管理的無冕之王

一、傳統API接口管理的缺陷 1、前言 項目開發我們都知道在一個項目團隊中是由很多角色組成&#xff0c;最常見團隊的就是前端開發工程師、客戶端開發工程師、服務端開發工程師組成一個團隊&#xff0c;團隊之間進行合作&#xff0c;一般我們都離不開API接口管理和測試&#x…

linux下永久添加靜態路由

在linux下永久添加靜態路由有兩種方法&#xff1a; 添加路由的命令&#xff1a; 1&#xff0c;route add route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0#添加一條靜態路由 route add default gw 192.168.0.1#添加默認路由 route del -net 192.168.1.0/24 gw 192.…

【ArcGIS微課1000例】0020:關于ArcCatalog,你知道多少?

文章目錄 一、ArcCatalog簡介1. ArcCatalog啟動和關閉2. ArcCatalog界面3. 菜單欄4. 目錄樹5. 搜索窗口6. 主窗口7. 工具欄二、ArcCatalog主要功能1. 文件夾連接2. 添加空間數據庫連接3. 文件類型的添加和移除4. 文件特性的顯示設置5. 導出數據6. 查看數據7. ArcCatalog中圖層的…