自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

walterlv - 吕毅

欢迎访问 https://blog.walterlv.com/ 热爱设计,不止是程序,更是艺术!

  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用 7-Zip 的命令行版本来压缩和解压文件

7-Zip 也有一个简短的名称 7z。它的原生 UI 确实不怎么好看,非常有年代感;不过 7-Zip 的强大之处不在于 UI,而在于其算法和各种文件的支持情况。不过,7-Zip 提供了命令行的版本,让你摒除一切杂念,专心处理压缩文件的工作。本文介绍如何通过命令行来使用 7-Zip。因为使用命令行,所以你甚至可以自动化地完成压缩文件的各种处理。本文内容如何找到 7-Zip 的命令行版本使用命令...

2019-05-28 14:21:57 61885 2

原创 ClearType 的原理:Windows 上文本的亚像素控制

有位小伙伴问我为什么他电脑上的文本看起来比较虚。我去看了下,发现他电脑上关掉了 ClearType。微软的 ClearType 技术通过控制亚像素来使得文本显示更为清晰。本文代理了解 Windows 系统上的文本是如何通过亚像素控制使得显示更为清晰的。本文内容ClearType 打开和关闭之后的效果如何显示清晰的线条像素内的 RGB清晰显示 1px 线条清晰显示 1.3 px 线条清晰显示 ...

2019-05-28 14:20:46 1401

原创 C# 可空引用类型 NullableReferenceTypes 更强制的约束:将警告改为错误 WarningsAsErrors

程序员不看警告!于是 C# 8.0 带来的可空引用类型由于默认以警告的形式出现,所以实际上约束力非常弱。本文将把 C# 8.0 的可空引用类型警告提升为错误,以提高约束力。本文内容启用可空引用类型项目属性WarningsAsErrors启用可空引用类型你需要先在你的项目中启用可空引用类型的支持,才能修改警告到错误:C# 8.0 如何在项目中开启可空引用类型的支持 - 吕毅项目属...

2019-05-28 14:17:21 899

原创 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码

C# 8.0 引入了可为空引用类型和不可为空引用类型。当你需要给你或者团队更严格的要求时,可能需要定义这部分的警告和错误级别。本文将介绍 C# 可空引用类型部分的警告和错误提示,便于进行个人项目或者团队项目的配置。本文内容开启可空引用类型以及配置警告和错误警告和错误`CS8600``CS8602``CS8603``CS8618``CS8625`开启可空引用类型以及配置警告和错误本文的内容...

2019-05-28 14:15:54 4570

原创 C# 8.0 如何在项目中开启可空引用类型的支持

C# 8.0 引入了可为空引用类型和不可为空引用类型。由于这是语法级别的支持,所以比传统的契约式编程具有更强的约束力。更容易帮助我们消灭 null 异常。本文将介绍如何在项目中开启 C# 8.0 的可空引用类型的支持。本文内容使用 Sdk 风格的项目文件在项目文件中开启可空引用类型的支持可为空注释(Annotation)上下文可为空警告上下文在源代码文件中开启可空引用类型的支持早期版本的属性...

2019-05-28 14:14:32 2136

原创 如何快速自定义 Visual Studio 中部分功能的快捷键

Visual Studio 中有些自带的快捷键与现有软件有冲突,那么如何修改这些快捷键让这些功能正常工作起来呢?本文内容打开快捷键设置界面修改一个现有功能的快捷键打开快捷键设置界面在 Visual Studio 中打开 “工具 -> 选项”,打开选项设置界面。在其中找到 “环境 -> 键盘” 项。我们设置快捷键的地方就在这里。修改一个现有功能的快捷键默认情况下,在 Vi...

2019-05-26 14:39:40 1526

原创 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码

HLSL,High Level Shader Language,高级着色器语言,是 Direct3D 着色器模型所必须的语言。WPF 支持 Direct3D 9,也支持使用 HLSL 来编写着色器。你可以使用任何一款编辑器来编写 HLSL,但 Shazzam Shader Editor 则是专门为 WPF 实现像素着色器而设计的一款编辑器,使用它来编写像素着色器,可以省去像素着色器接入到 WPF ...

2019-05-26 14:37:46 2065

原创 MSBuild 如何编写带条件的属性、集合和任务 Condition?

在项目文件 csproj 中,通过编写带条件的属性(PropertyGroup)、集合(ItemGroup)和任务(Target)可以完成更加复杂的项目文件的功能。本文介绍如何编写带条件的 MSBuild 项。本文内容Condition单引号`==` 和 `!=``<`, `>`, `<=`, `>=``Exists`, `HasTrailingSlash`与或非:`...

2019-05-26 14:34:31 1932

原创 C# 跨设备前后端开发探索

每个人都拥有 好奇心,好奇心驱使着我们总是去尝试做一些有趣的事情。带起你的好奇心,本文将使用 C# 开发各种各样好玩的东西。[本文内容已加入 2019 年 4 月 13 日的广州 .NET 俱乐部第 2 届线下沙龙。本文内容0x00 序章好奇心先搞起来0x01 C# 跨设备前后端开发Web 后端Windows 桌面端公共代码控制台iOS 端Web 前端0x02 C# 还能做什么?0x0...

2019-05-19 17:09:05 1237

原创 如何在 MSBuild 的项目文件 csproj 中获取绝对路径

通常我们能够在 csproj 文件中仅仅使用相对路径就完成大多数的编译任务。但是有些外部命令的执行需要用到绝对路径,或者对此外部工具来说,相对路径具有不同的含义。这个时候,就需要将相对路径在 csproj 中转换为绝对路径来使用。本文介绍如何在项目文件 csproj 中将一个相对路径转换为绝对路径。在 MSBuild 4.0 中,可以在 csproj 中编写调用 PowerShell 脚本的...

2019-05-19 17:02:53 1194

原创 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本)

如果你要在 WPF 程序中使用线程池完成一个特殊的任务,那么使用 .NET 的 API Task.Run 并传入一个 Lambda 表达式可以完成。不过,使用 Lambda 表达式会带来变量捕获的一些问题,比如说你需要区分一个变量作用于是在 Lambda 表达式中,还是当前上下文全局(被 Lambda 表达式捕获到的变量)。然后,在静态分析的时候,也难以知道此 Lambda 表达式在整个方法中的执...

2019-05-19 17:01:27 1181

原创 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因

在 WPF 中,你可以使用 Command="{Binding WalterlvCommand}" 的方式来让 XAML 中的一个按钮或其他控件绑定一个命令。这样,按钮的可用性会自动根据 WalterlvCommand 当前 CanExecute 的状态来改变。这本是一个非常智能的特性,直到你可能发现你按钮的可用性状态不正确……本文介绍默认情况下,WPF 在 UI 上的这些命令会在什么时机进行刷...

2019-05-19 17:00:15 4242

原创 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思?

在 .NET 中创建进程时,可以传入 ProcessStartInfo 类的一个新实例。在此类型中,有一个 UseShellExecute 属性。本文介绍 UseShellExecute 属性的作用,设为 true 和 false 时,分别有哪些进程启动行为上的差异。本文内容本质差异效果差异如何选择本质差异Process.Start 本质上是启动一个新的子进程,不过这个属性的不同,使得启...

2019-05-19 16:58:30 12161 1

原创 C#/.NET 使用 git 命令行来操作 git 仓库

我们可以在命令行中操作 git,但是作为一名程序员,如果在大量重复的时候还手动敲命令行,那就太笨了。本文介绍使用 C# 编写一个 .NET 程序来自动化地使用 git 命令行来操作 git 仓库。这是一篇很基础的入门文章。本文内容最简单的运行 git 命令的代码允许获得命令的输出CommandRunner测试与结果最简单的运行 git 命令的代码在 .NET 中,运行一个命令只需要使用...

2019-05-19 16:57:40 5573 2

原创 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈

在 FirstChangeException 事件中,我们通常只能拿到异常堆栈的第一帧,这对于我们捕捉到异常是好的,但对分析第一次机会异常可能并不利。本文介绍如何在 FirstChangeException 事件中拿到比较完整的异常堆栈,而不只是第一帧。本文内容第一次机会异常获取较完整的第一次机会异常堆栈第一次机会异常.NET 程序代码中的任何一段代码,在刚刚抛出异常,还没有被任何处理的...

2019-05-19 16:56:38 1153

原创 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常

在 .NET / C# 程序中出现异常是很常见的事情,程序出现异常后记录日志或者收集到统一的地方可以便于分析程序中各种各样此前未知的问题。但是,有些异常表示的是同一个异常,只是因为参数不同、状态不同、用户的语言环境不同就分开成多个异常的话,分析起来会有些麻烦。本文将提供一个方法,将异常的关键信息提取出来,这样可以比较多次抛出的不同的异常实例是否表示的是同一个异常。本文内容`Exception...

2019-05-19 16:55:44 5772 2

原创 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等)

Windows 系统上的任务管理器进化到 Windows 10 的 1809 版本后,又新增了几项可以查看的进程属性。本文介绍可以使用任务管理器查看的各种进程属性。本文内容如何查看进程的各种属性名称、PID、状态路径名称、命令行用户名、特权、UAC 虚拟化DPI 感知如何查看进程的各种属性在任务栏上右键,选择“任务管理器”;或者按下 Ctrl + Shift + Esc 可以打开任务管理...

2019-05-05 09:13:57 15690 2

原创 Windows 的 UAC 设置中的通知等级实际上只有两个档而已

Windows 系统中的 UAC 设置界面有四种不同的选项可以选,但实际上真正有意义的只有两个选项。本文将介绍 UAC 这四个档设置的区别,帮助你合理的设置你的电脑。UAC 设置界面在 Windows 10 任务栏的搜索框中输入 uac 可以直接打开 UAC 设置界面。下图是“用户账户控制设置”界面,想必小伙伴们应该已经很熟悉了。它有四个档:始终通知当应用试图安装软件或更改计算机...

2019-05-05 09:12:30 2893

原创 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员)

在默认情况下,Windows 系统中启动一个进程会继承父进程的令牌。如果父进程是管理员权限,那么子进程就是管理员权限;如果父进程是标准用户权限,那么子进程也是标准用户权限。我们也知道,可以使用一些方法为自己的应用程序提权。但是有没有方法可以任意指定一个权限然后运行呢?本文将介绍 Windows 下指定权限运行的做法。本文内容runas 命令提权运行或者降权运行提权运行或者降权运行使用 C# ...

2019-05-05 09:08:43 32751 1

原创 Windows 中的 UAC 用户账户控制

阅读本文,你可以初步了解 Windows 上的 UAC 用户账户控制机制。本文不会涉及到 UAC 的底层实现原理和安全边界问题。本文内容用户账户UAC 通知等级完整性级别(Integrity Level)权限提升用户账户在 Windows 中有多种不同的账户:SYSTEMAdministrators 用户组Administrator管理员账户Users 用户组标准账户...

2019-05-05 09:02:07 8545 1

UWP 程序所需的最少 Logo 资源

https://walterlv.github.io/post/create-uwp-app-from-zero-0.html 中 UWP 程序所需的最少 Logo 资源

2018-07-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除