walterlv的专栏

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

在 Windows 系统上降低 UAC 权限运行程序(从管理员权限降权到普通用户权限)

在 Windows 系统中,管理员权限和非管理员权限运行的程序之间不能使用 Windows 提供的通信机制进行通信。对于部分文件夹(ProgramData),管理员权限创建的文件是不能以非管理员权限修改和删除的。 然而,一个进程运行之后启动的子进程,会继承当前进程的 UAC 权限;于是有时我们会有...

2019-03-10 21:28:02

阅读数 376

评论数 5

为 WPF 程序添加 Windows 跳转列表的支持

Windows 跳转列表是自 Windows 7 时代就带来的功能,这一功能是跟随 Windows 7 的任务栏而发布的。当时应用程序要想用上这样的功能需要调用 shell 提供的一些 API。 然而在 WPF 程序中使用 Windows 跳转列表功能非常简单,在 XAML 里面就能完成。本文将介...

2019-03-10 21:26:30

阅读数 59

评论数 0

Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新)

程序如何自己更新自己呢?你可能会想到启动一个新的程序或者脚本来更新自己。然而 Windows 操作系统允许一个应用程序在运行期间修改自己的名称甚至移动自己到另一个文件夹中。利用这一点,我们可以很简单直接地做程序的 OTA 自动更新。 本文将介绍示例程序运行期间改名并解释其原理。 本文内容在程序运...

2019-03-10 21:24:32

阅读数 58

评论数 0

.NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化

最近我大幅度重构了我一个库的项目结构,使之使用最新的项目文件格式(基于 Microsoft.NET.Sdk)并使用 SourceYard 源码包来打包其中的一些公共代码。不过,最终生成了一个新的 dll 之后却心有余悸,不知道我是否删除或者修改了某些 API,是否可能导致我原有库的使用者出现意料之...

2019-03-10 21:22:31

阅读数 48

评论数 0

如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀)

我们都知道可以通过在 Visual Studio 中设置输出路径(OutputPath)来更改项目输出文件所在的位置。对于 .NET Core 所使用的新 csproj 格式来说,你可能会发现实际生成路径中带了 netcoreapp3.0 或者 net472 这样的子文件夹。 然而有时我们并不允许...

2019-03-10 21:19:31

阅读数 162

评论数 0

使用 Visual Studio 调试多进程的程序

当你的编写的是一个多进程的程序的时候,调试起来可能会比较困难,因为 Visual Studio 默认只会把你当前设置的启动项目的启动调试。 本文将介绍几种用 Visual Studio 调试多进程程序的方法,然后给出每种方法的适用条件和优劣。 本文内容Visual Studio 多启动项目(推荐...

2019-03-04 08:21:38

阅读数 799

评论数 0

将 svn 仓库迁移到 git 仓库

我找到了一个很久很久以前编写的项目,然而当时是使用 svn 进行版本管理的。然而现在的版本管理全部是 git,不愿意再装一个 svn 工具来管理这些古老的项目,于是打算将其迁移到 git 中。 本文介绍如何将古老的 svn 项目迁移到 git。 本文内容找回 svn 仓库的 url将 svn 仓...

2019-03-04 08:13:01

阅读数 102

评论数 0

使用一句 git 命令将仓库的改动推送到所有的远端

git 支持一个本地仓库包含多个远端(remote),这对于开源社区来说是一个很重要的功能,可以实时获取到最新的开源代码且能推送到自己的仓库中提交 pull request。 有时候多个远端都是自己的,典型的就是 GitHub Pages 服务了,推送总是希望这几个远端能够始终和本地仓库保持一致。...

2019-03-04 08:11:18

阅读数 85

评论数 0

.NET/C# 获取一个正在运行的进程的命令行参数

在自己的进程内部,我们可以通过 Main 函数传入的参数,也可以通过 Environment.GetCommandLineArgs 来获取命令行参数。 但是,可以通过什么方式来获取另一个运行着的程序的命令行参数呢? 进程内部获取传入参数的方法,可以参见我的另一篇博客:.NET 命令行参数包含应用...

2019-03-04 08:10:39

阅读数 64

评论数 0

.NET/C# 将一个命令行参数字符串转换为命令行参数数组 args

我们通常得到的命令行参数是一个字符串数组 string[] args,以至于很多的命令行解析库也是使用数组作为解析的参数来源。 然而如我我们得到了一整个命令行字符串呢?这个时候可能我们原有代码中用于解析命令行的库或者其他辅助函数不能用了。那么如何转换成数组呢? 在 Windows 系统中有函数 ...

2019-03-04 08:09:14

阅读数 102

评论数 0

git 合并策略

不清楚 git 冲突的表示方法,不了解 git 的合并原理,不知道 git 解冲突的多种策略。即便如此,大多数人依然可以正常使用 git 完成合并、拉取操作,并且解一些冲突。这得益于 git 默认情况下的合并方式可以处理大多数情况下的正常合并。 然而,你是否遭遇 git 自动合并炸掉的情况?命名提...

2019-02-24 15:56:13

阅读数 1355

评论数 0

git 的合并原理(递归三路合并算法)

如果 git 只是一行行比较,然后把不同的行报成冲突,那么你在合并的时候可能会遇到大量的冲突;这显然不是一个好的版本管理工具。 本文介绍 git 合并分支的原理。 本文内容git 的冲突表示三路合并递归三路合并快进式合并参考资料 git 的冲突表示 例如我们有这样的三个提交 a、b、c。a、b ...

2019-02-24 15:55:36

阅读数 63

评论数 0

WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了

如果你写了一个 MarkupExtension 在 XAML 当中使用,你会发现你在 MarkupExtension 中定时的属性是无法使用 XAML 绑定的,因为 MarkupExtension 不是一个 DependencyObject。 本文将给出解决方案,让你能够在任意的类型中写出支持 X...

2019-02-24 15:53:20

阅读数 69

评论数 0

ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件

一个不小心,我的 SSD 又满了。到底是谁占用了那么多的空间!如果你是 ReSharper 的重度用户,那么可能你的调查结果会直指 JetBrains ReSharper。 本文将告诉你如何安全地删除这些文件来释放你的 C 盘空间,然后在 ReSharper 中设置其他的缓存目录。 本文内容消失...

2019-02-24 15:51:20

阅读数 123

评论数 0

WPF 支持的多线程 UI 并不是线程安全的

WPF 支持创建多个 UI 线程,跨窗口的或者窗口内的都是可以的;但是这个过程并不是线程安全的。 你有极低的概率会遇到 WPF 多线程 UI 的线程安全问题,说直接点就是崩溃。本文将讲述其线程安全问题。 此问题现已报告给微软:Creating multi-thread UI has a low p...

2019-02-24 15:48:52

阅读数 61

评论数 0

在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试

在 WPF 开发时,有 Snoop 的帮助,UI 的调试将变得非常轻松。使用 Snoop,能轻松地查看 WPF 中控件的可视化树以及每一个 Visual 节点的各种属性,或者查看数据上下文,或者监听查看事件的引发。 不过,更强大的是支持使用 PowerShell 脚本。这使得它即便 UI 没有给你...

2019-02-24 15:46:50

阅读数 89

评论数 0

使用 Xamarin 在 iOS 真机上部署应用进行调试

虽然 Xamarin 可以在 Windows 操作系统上编写和调试,但如果开发 iOS 应用,那么我们依然需要一台安装有 XCode 和 Visual Studio for Mac 的 Mac 电脑。做真机部署不是像平时使用太阳系第一 IDE Visual Studio 那样方便。 所以本文需要介...

2019-02-24 15:40:55

阅读数 157

评论数 0

.NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例

我们知道,在编译期间相同的字符串,在运行期间就会是相同的字符串实例。然而,如果编译期间存在字符串的运算,那么在运行期间是否是同一个实例呢? 只要编译期间能够完全确定的字符串,就会是同一个实例。 字符串在编译期间能确定的运算包括: A + B 即字符串的拼接 $"{A}&...

2019-02-24 15:38:42

阅读数 60

评论数 0

使用 Xamarin 开发 iOS 应用中需要注意的若干个问题

本文收集整理使用 Xamarin 开发 iOS 应用时可能会遇到的各种问题。由于这是整理类的,在 CSDN 只会偶尔更新,所以可能需要去我的主站阅读更全的版本:https://walterlv.com/post/tips-for-developing-xamarin-ios-app.html。 ...

2019-02-24 15:36:05

阅读数 106

评论数 0

使用 Xamarin 开发 iOS 键盘扩展(含网络访问)

作为一位 .NET 技术的死忠,开发 iOS 应用当然要使用 Xamarin 啦! 本文用我的阅读的文档和实践为素材,介绍如何使用 Xamarin 开发一个 iOS 的键盘扩展。 你可以在 Walterlv.CloudKeyboard 仓库中获得本文所述的全部源代码。 本文内容搭建环境你需要了解...

2019-02-24 15:32:41

阅读数 92

评论数 0

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