原创 Win32 程序在啓動時激活前一個啓動程序的窗口

UWP 程序天生單實例。當然,新 API (10.0.17134)開始也提供了多實例功能。不過,傳統 Win32 程序可就要自己來控制單實例了。 本文介紹簡單的幾個 Win32 方法調用,使 Win32 程序也支持單實例。 激活之前進

原创 常用輸入法快速輸入自定義格式的時間和日期(搜狗/QQ/微軟拼音)

幾個主流的輸入法輸入 rq 或者 sj 都可以得到預定義格式的日期或者時間。然而他們都是預定義的格式;當我們需要一些其他格式的時候該怎麼做呢? 本文將介紹幾個常用輸入法自定義時間和日期格式的方法。 主流輸入法的日期格式一般是這樣的:

原创 基於 task 爲 VSCode 添加自定義的外部命令

我們有很多全局的工具能在各處使用命令行調用,針對某個倉庫特定的命令可以放到倉庫中。不過,如果能夠直接爲順手的文本編輯器添加自定義的外部命令,那麼執行命令只需要簡單的快捷鍵即可,不需要再手工敲了。 寫一個外部命令的調用 由於是調用外部工

原创 WPF 應用完全模擬 UWP 的標題欄按鈕

WPF 自定義窗口樣式有多種方式,不過基本核心實現都是在修改 Win32 窗口樣式。然而,Windows 上的應用就應該有 Windows 應用的樣子嘛,在保證自定義的同時也能與其他窗口樣式保持一致當然能最大程度保證 Windows 操作

原创 .NET 中各種混淆(Obfuscation)的含義、原理、實際效果和不同級別的差異(使用 SmartAssembly)

長文預警!!! UWP 程序有 .NET Native 可以將程序集編譯爲本機代碼,逆向的難度會大很多;而基於 .NET Framework 和 .NET Core 的程序卻沒有 .NET Native 的支持。雖然有 Ngen.exe

原创 讓控制檯支持 ANSI 轉義序列,輸出下劃線、修改顏色或其他控制

各種操作系統的控制檯都支持 ANSI 轉義序列(ANSI Escape Code)。使用轉義序列,可以對控制檯進行很多額外的定製,例如修改顏色、修改標題欄,將文字添加下劃線等。 當然,.NET 已經幫助我們封裝了很大的一部分功能了,我們重

原创 C#/.NET 讀取或修改文件的創建時間和修改時間

手工在博客中添加 Front Matter 文件頭可是個相當費事兒的做法,這種事情就應該自動完成。 .NET 中提供了非常方便的修改文件創建時間的方法,使用這種方法,能夠幫助自動完成一部分文件頭的編寫或者更新。 相關類型 .NET 中

原创 通過解讀 WPF 觸摸源碼,分析 WPF 插拔設備觸摸失效的問題(問題篇)

在 .NET Framework 4.7 以前,WPF 程序的觸摸處理是基於操作系統組件但又自成一套的,這其實也爲其各種各樣的觸摸失效問題埋下了伏筆。再加上它出現得比較早,觸摸失效問題也變得更加難以解決。即便是 .NET Framewor

原创 .NET 中 GetProcess 相關方法的性能

.NET 的 Process 類中提供了查找進程的若干方法,其中部分方法還比較消耗性能。如果你試圖優化查找進程相關方法的性能,可能本文分享的一些耗時數據可以作爲參考。 性能比較 Process 類中提供了四種查詢進程的方法: Get

原创 在 GitHub 公開倉庫中隱藏自己的私人郵箱地址

GitHub 重點在開方源代碼,其本身還是非常注重隱私的。這一點與面向企業的 GitLab 很不一樣。 不過,你依然可能在 GitHub 上泄露隱私信息,例如企業內部所用的電子郵箱。 GitHub 對個人隱私的尊重 git 的設定,開發

原创 如何使用 MSBuild Target(Exec)中的控制檯輸出

我曾經寫過一篇文章 如何創建一個基於命令行工具的跨平臺的 NuGet 工具包,通過編寫一個控制檯程序來參與編譯過程。但是,相比於 基於 Task 的方式,可控制的因素還是太少了。 有沒有什麼辦法能夠讓控制檯程序也能與 MSBuild Ta

原创 Roslyn 語法樹中的各種語法節點及每個節點的含義

使用 Roslyn 進行源碼分析時,我們會對很多不同種類的語法節點進行分析。如果能夠一次性瞭解到各種不同種類的語法節點,並明白其含義和結構,那麼在源碼分析的過程中將會更加得心應手。 本文將介紹 Roslyn 中各種不同的語法節點、每個節點

原创 像黑客一樣!Chrome 完全鍵盤操作指南(原生快捷鍵 + Vimium 插件)

有那麼一波小夥伴,多數時候都不需要用到鼠標,通常他們正好是“黑客”。當你開始使用鍵盤操作一切時,便能體會到無需用鼠標瞄準按鈕時的乾脆,無需在鍵盤和鼠標之間移動手時的輕鬆。 Chrome 原生自帶大量快捷鍵,Vimium 在原生的基礎上又增

原创 微軟 Windows 系統檢測網絡連通性(用於顯示感嘆號)竟然是通過訪問一個特殊網址來實現的

一次我走到了弱網環境中,意外地發現瀏覽器打開了 http://www.msftconnecttest.com/redirect 網址,隨後右下角的網絡圖標出現了一枚“感嘆號”。 吹水的推斷 從直觀看來,這個網址的連通性和網絡圖標上的“

原创 .NET/C# 使窗口永不獲得焦點

有些窗口天生就是爲了輔助其它程序而使用的,典型的如“輸入法窗口”。這些窗口不希望搶奪其它窗口的焦點。 有 Win32 方法來解決這樣的問題,WS_EX_NOACTIVATE 便是關鍵。 具體來說,是給窗口樣式中額外添加一個 WS_EX_