windows
文章平均质量分 89
walter lv
这个作者很懒,什么都没留下…
展开
-
在 CMD 里根据进程名杀掉进程
任务管理器杀进程大家都会,不过如果你的系统被卡到任务管理器都无法操作了,怎么办?拿控制台 CMD 吧!系列博客:在 CMD 里根据进程名杀掉进程 - walterlv在 PowerShell 里根据进程名杀掉进程 - walterlv本文内容taskkill 命令taskkill 命令taskkill /f /t /im chrome.exe/f 表示强制终止进程。如果不指定,那么 taskkill 会给进程发送终止信号,但进程可以阻止退出(例如提示文档需要保存)。指定了,就会强杀进程原创 2020-06-30 09:59:12 · 8424 阅读 · 0 评论 -
比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式)
可能有很多小伙伴已经知道通过 mklink 命令来创建 NTFS 磁盘上的各种链接;当然,就算不知道 mklink 的链接,快捷方式应该每个人都知道吧。mklink 的选项有很多种,但你可能在其他文章中难以找到对这些不同选项的不同效果和使用限制的准确和统一描述。本文将介绍 Windows 系统中所有的链接方式,它们的优缺点、使用条件和坑。This post is written in multiple languages. Please select yours:{% include post-ver原创 2020-06-30 09:56:38 · 2314 阅读 · 0 评论 -
.NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
Windows 下的路径分隔符是 \ 而 Linux 和 Mac 下的路径分隔符是 \。正常如果你的数据不跨 Windows 和 Linux 平台流通的话,不怎么会遇到多种换行符并存的问题的。但如果真发生了流通,那么如何将它们格式化为统一的当前平台认识的分隔符呢?本文内容现有方案没有原生方案(.NET)为什么 .NET 原生不做统一化?自己实现简单省事型高性能型如何避免现有方案没有原生方案(.NET)System.IO.Path 带了一堆方法用来处理路径。各大文档博客和书籍也都推荐大家使用 Pat原创 2020-06-30 08:55:20 · 608 阅读 · 0 评论 -
.NET Windows:删除文件夹后立即判断,有可能依然存在
如果你不了解本文的内容,可能会在未来某个时候踩坑–你可能在判断文件夹是否存在的时候得到错误的返回值。本文内容删除文件(夹)测试程序原因解决方法删除文件(夹)使用 .NET 带的删除文件夹的方法:Directory.Delete("D:\walterlv");或者使用其他删除文件(夹)的方法,大多数是以下 Windows API 的封装:BOOL DeleteFile( LPCTSTR lpFileName);BOOL RemoveDirectoryA( LPCSTR lpPath原创 2020-06-30 08:54:39 · 584 阅读 · 0 评论 -
修复 Windows 10 设置界面里面混乱的语言翻译
Windows 10 每次新发布一个版本都会遇到各种各样的新型 Bug。本文介绍的是 Windows 10 的设置界面里面,各种各样的语言文字都很混乱,就像统一错位了一样。本文也会同时介绍其修复方法。本文内容系统版本混乱的界面修复方法将语言切换回英文删除中文语言包删除下载缓存文件重新下载中文语言包系统版本会出现此问题的系统是 Windows 10 英文版系统。注意,是 Windows ...原创 2020-04-30 11:58:15 · 3158 阅读 · 1 评论 -
Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXI
Windows 打开文件的 API 中提供了多种不同的文件打开方式。你可以根据你的业务场景选择适合你的文件打开方式。本文内容Windows API`dwCreationDisposition``CREATE_NEW``CREATE_ALWAYS``OPEN_EXISTING``OPEN_ALWAYS``TRUNCATE_EXISTING`Windows APIOpenFile 方法只能打开...原创 2020-04-30 11:50:29 · 2539 阅读 · 0 评论 -
.NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
.NET 中文件打开的 API File.Open 提供了多种不同的文件打开方式,这些方式大多数与 Windows 文件 API 中的模式是对应的,但也有一些 .NET 层面的判断以及名称的变化。在 .NET 层你可以选择适合你业务场景需要的文件打开方式。本文内容文件打开方式`FileMode``CreateNew``Create``Open``OpenOrCreate``Truncate``...原创 2020-04-30 11:49:27 · 1087 阅读 · 1 评论 -
为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能
git、nuget、scoop 如何设置网络代理提升网络访问速度呢?本文内容git使用命令行设置直接修改配置文件使用 TortoiseGit 设置NuGet在命令行中设置直接修改配置文件Scoop在下面的博客正文中,都假设我的本机搭设了代理服务,其中 SOCKS5 代理服务的端口号是 7777,HTTP 代理服务的端口号是 7778。git使用命令行设置git 支持设置 http 代理...原创 2020-04-30 11:43:33 · 755 阅读 · 0 评论 -
Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件)
大多数用户还是习惯使用 Windows 自带的文件资源管理器来管理文件,于是我们可以利用它的命令行参数来帮助我们做一些与之相关的交互。本文会以实际的例子来说明如何使用 explorer.exe 的命令行参数。本文内容打开文件启动程序打开某个文件夹选择某个文件其他命令行参数一些特殊文件夹的命令打开文件在命令行中输入 explorer D:\Services\blog.walterlv.co...原创 2020-04-30 11:42:27 · 2196 阅读 · 1 评论 -
文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶
文件或文件夹被占用,然后无法删除?这真的很恼人。关键是还不知道究竟是哪个程序占用的,想退出都不行。有各种工具解决此问题,平时下载屯着他们能够省下不少事儿。如果突然间情况非常紧急怎么办?学会使用本文介绍的系统自带工具“资源监视器”,也能立即着手找到真凶!删除拒绝提示:▲ 文件夹访问被拒绝 1即便点了继续,依然拒绝:▲ 文件夹访问被拒绝 2现在,去搜索框(小娜)中搜索“资源监视器”。...原创 2020-04-30 11:37:22 · 3269 阅读 · 0 评论 -
用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限
对 .NET 程序使用 dotTrace 进行性能分析时,你也可能遭遇到 dotTrace 的 Bug。我就遇到了性能分析选项 Timeline 打不开进程的情况。本文内容dotTrace 的性能分析选项Timeline 打不开?解决方法启动“计算机管理”配置性能监视器用户组添加自己作为用户组的成员你已经完成了dotTrace 的性能分析选项dotTrace 启动性能分析的选项有四个,你可...原创 2020-03-31 07:49:05 · 867 阅读 · 0 评论 -
Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的"
在日常使用 Windows 10 时,有时会遇到删除很普通的文件夹时提示“访问被拒绝”,以管理员权限重试后依然提示没有权限。如果使用命令行删除,则会提示“无法删除文件夹 XXX,目录不是空的。”。本文将介绍其原因并提供解决方案。本文内容删除文件夹遭到拒绝解决方案删除文件夹遭到拒绝有时我们在删除一个很普通的文件夹时,会提示需要提升权限才能删除。▲ 需要提升权限其实按照经验,这种问题与...原创 2020-02-29 14:03:10 · 10511 阅读 · 2 评论 -
使用 C# 代码创建快捷方式文件
快捷方式是一种特殊的文件,扩展名为 lnk。有很多种方式来创建快捷方式,不过使用 C# 代码创建一个却并不那么容易。本文分享三种不同的方式创建快捷方式。随处可用的代码这是最方便的方式了,因为这段代码随便放到一段代码中就能运行:/// <summary>/// 为当前正在运行的程序创建一个快捷方式。/// </summary>/// <param nam...原创 2020-02-29 13:58:38 · 1289 阅读 · 0 评论 -
.NET/C# 使窗口永不激活(No Activate 永不获得焦点)
有些窗口天生就是为了辅助其它程序而使用的,典型的如“输入法窗口”。这些窗口不希望抢夺其它窗口的焦点。有 Win32 方法来解决这样的问题,WS_EX_NOACTIVATE 便是关键。具体来说,是给窗口样式中额外添加一个 WS_EX_NOACTIVATE 位。var handle = GetTheWindowHandle();int exstyle = GetWindowLong(hand...原创 2020-02-29 13:48:57 · 1257 阅读 · 1 评论 -
Windows 10 应用创建模糊背景窗口的三种方法
现代的操作系统中创建一张图片的高斯模糊效果非常容易,不过如果要在窗口中获得模糊支持就需要操作系统的原生支持了。iOS/Mac 和 Windows 系统都对此有支持。本文将介绍三种创建模糊背景窗口的方法。有人可能喜欢称之为毛玻璃窗口、亚克力窗口。This post is written in multiple languages. Please select yours:{% include...原创 2020-02-29 13:38:39 · 1967 阅读 · 0 评论 -
屏幕边缘上有趣的 1 个像素,看不见、摸不到
如果你的屏幕分辨率是 1920×1080,那么一个全屏的窗口程序尺寸是多少呢?想都不用想,是 1920×1080。那么输入设备输入的坐标是多少呢?是 X∈[0, 1919] ?还是 X∈[1, 1920] ?还是 X∈[0, 1920] ?本文内容鼠标输入与触摸输入有趣的 1 像素防踩坑秘籍鼠标输入与触摸输入一个有趣的问题,因为 1920×1080 分辨率的屏幕,其横向只有 1920 个...原创 2019-12-30 08:44:21 · 361 阅读 · 0 评论 -
Windows 系统的默认字体是什么?应用的默认字体是什么?
作为中文应用的开发者,我们多半会认为系统的默认字体是“微软雅黑”。然而如果真的产生了这种误解,则很容易在开发本地化应用的时候踩坑。于是本文带你了解 Windows 系统的默认字体。本文内容Windows 10/8.1/8/7/VistaWindows XP 及更早系统Windows 10/8.1/8/7/VistaWindows 操作系统的默认字体是 Segoe UI(发音为 see g...原创 2019-12-30 08:33:21 · 37242 阅读 · 0 评论 -
.NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
我们知道,32 位程序在读取注册表的时候,会自动将注册表的路径映射到 32 位路径下,即在 Wow6432Node 子节点下。但是 64 位程序不会映射到 32 位路径下。那么 64 位程序如何读取到 32 位程序写入的注册表路径呢?本文内容Wow6432Node如何在 64 位程序中读取 32 位注册表路径Walterlv.Win32Wow6432Node对于 32 位程序,读取注册表...原创 2019-12-30 08:25:28 · 837 阅读 · 0 评论 -
.NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
我们知道 Windows 系统 NTFS 文件系统提供了硬连接功能,可以通过 mklink 命令开启。如果能够通过代码实现,那么我们能够做更多有趣的事情。本文提供使用 .NET/C# 代码创建 NTFS 文件系统的硬连接功能(目录联接)。本文内容目录联接使用 .NET/C# 实现使用 JunctionPoint目录联接以管理员权限启动 CMD(命令提示符),输入 mklink 命令可以得...原创 2019-12-30 08:05:28 · 961 阅读 · 0 评论 -
什么是模态窗口?本文带你了解模态窗口的本质
做 Windows 桌面应用开发的小伙伴们对“模态窗口”(Modal Dialog)一定不陌生。如果你希望在模态窗口之上做更多的事情,或者自己实现一套模态窗口类似的机制,那么你可能需要了解模态窗口的本质。本文不会太深,只是从模态窗口一词出发,抵达大家都熟知的一些知识为止。本文内容开发中的模态窗口模态窗口的三个特点实现模态窗口API 调用禁用主窗口阻塞代码等待操作完成进行 UI 强提醒开发中...原创 2019-11-27 08:05:33 · 9375 阅读 · 0 评论 -
直击本质:WPF 框架是如何实现模态窗口的
想知道你在 WPF 编写 Window.ShowDialog() 之后,WPF 框架是如何帮你实现模态窗口的吗?本文就带你来了解这一些。本文内容`Window.ShowDialog``ShowHelper`Window.ShowDialogWPF 显示模态窗口的方法就是 Window.ShowDialog,因此我们直接进入这个方法查看。由于 .NET Core 版本的 WPF 已经开源,...原创 2019-11-27 08:01:45 · 1302 阅读 · 0 评论 -
Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态
在 Windows 应用开发中,如果需要操作其他的窗口,那么可以使用 EnumWindows 这个 API 来枚举这些窗口。你可以使用本文编写的一个类型,查找到所有窗口中你关心的信息。本文内容需要使用的 API枚举所有窗口附源码需要使用的 API枚举所有窗口仅需要使用到 EnumWindows,其中需要定义一个委托 WndEnumProc 作为传入参数的类型。剩下的我们需要其他各种方法...原创 2019-11-27 08:01:00 · 5592 阅读 · 2 评论 -
使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等)
Windows 系统中有一个没什么文档的 API,SetWindowCompositionAttribute,可以允许应用的开发者将自己窗口中的内容渲染与窗口进行组合。这可以实现很多系统中预设的窗口特效,比如 Windows 7 的毛玻璃特效,Windows 8/10 的前景色特效,Windows 10 的模糊特效,以及 Windows 10 1709 的亚克力(Acrylic)特效。而且这些组合...原创 2019-11-27 07:58:55 · 8396 阅读 · 9 评论 -
使用傲梅分区助手无损合并分区,无损调整分区大小
Windows 本身就提供了强大的磁盘和分区管理工具,一个是操作简单的“磁盘管理”,一个是功能强大的命令行版的“diskpart”。不过这两个都有一些限制,一是不能影响到系统文件,二是其修改的分区不能被应用程序占用(diskpart 可在下次重启时做到)。另外,系统为了管理工具操作的效率和正确性,也有一些功能没有开放。DiskGenius 是个强大的工具,不过傲梅也很良心。本文介绍使用傲梅分区助...原创 2019-11-27 07:53:09 · 17332 阅读 · 1 评论 -
EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作)
Windows 系统在安装的时候,会自动为我们的磁盘划分一个恢复分区和一个 EFI 分区。如果后面不打算再用这些分区的时候,却发现无法删除。本文将提供解决方法。因为误操作会导致数据丢失,所以我将两种不同的解决方法分开成两篇文章以避免干扰:EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作)EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作)本文内容无法删...原创 2019-11-27 07:52:18 · 5262 阅读 · 0 评论 -
EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作)
Windows 系统在安装的时候,会自动为我们的磁盘划分一个恢复分区和一个 EFI 分区。如果后面不打算再用这些分区的时候,却发现无法删除。本文将提供解决方法。因为误操作会导致数据丢失,所以我将两种不同的解决方法分开成两篇文章以避免干扰:EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作)EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作)本文内容无法删...原创 2019-11-27 07:51:32 · 10052 阅读 · 2 评论 -
使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点
制作传统 Win32 程序以及 Windows Forms 程序的时候,一个用户看起来独立的窗口本就是通过各种父子窗口嵌套完成的,有大量窗口句柄,窗口之间形成父子关系。不过,对于 WPF 程序来说,一个独立的窗口实际上只有一个窗口句柄,窗口内的所有内容都是 WPF 绘制的。如果你不熟悉 Win32 窗口中的父子窗口关系和窗口样式,那么很有可能遇到父子窗口之间“抢夺焦点”的问题,本文介绍如何解决这...原创 2019-11-27 07:49:47 · 2927 阅读 · 0 评论 -
WPF 程序如何跨窗口/跨进程设置控件焦点
WPF 程序提供了 Focus 方法和 TraversalRequest 来在 WPF 焦点范围内转移焦点。但如果 WPF 窗口中嵌入了其他框架的 UI(比如另一个子窗口),那么就需要使用其他的方法来设置焦点了。一个粗略的设置方法是,使用 Win32 API:SetFocus(hwnd);传入的是要设置焦点的窗口的句柄。参考资料winapi - Win32: C++: How d...原创 2019-11-27 07:47:47 · 873 阅读 · 0 评论 -
发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序……
本文收集一些已知的导致电脑屏幕不关闭的程序。如果你发现无论你设置多短的屏幕关闭超时时间但一直都不关闭,那么可以参考本文检查是否打开了这些程序。本文内容电源和睡眠大多数游戏应用工具为什么我想整理这份名单电源和睡眠先检查一下你系统设置中的电源和睡眠选项,时间不应该太长。一定要先看看这里,别到时候折腾了半天发现是自己设错了就亏了……另外,找程序的时候,不要第一眼看过去没有就忽略它了。因为你可...原创 2019-11-27 07:38:20 · 8192 阅读 · 2 评论 -
.NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
在 Windows 系统中,一段时间不操作键盘和鼠标,屏幕便会关闭,系统会进入睡眠状态。但有些程序(比如游戏、视频和演示文稿)在运行过程中应该阻止屏幕关闭,否则屏幕总是关闭,会导致体验会非常糟糕。本文介绍如何编写 .NET/C# 代码临时阻止屏幕关闭以及系统进入睡眠状态。本文内容Windows APIAPI 封装Windows API我们需要使用到一个 Windows API:/// ...原创 2019-11-27 07:36:51 · 6148 阅读 · 1 评论 -
解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题
因为 Win32 的窗口句柄是可以跨进程传递的,所以可以用来实现跨进程 UI。不过,本文不会谈论跨进程 UI 的具体实现,只会提及其实现中的一个重要缓解,使用子窗口的方式。你有可能在使用子窗口之后,发现拖拽改变窗口大小的时候,子窗口中的内容不断闪烁。如果你也遇到了这样的问题,那么正好可以阅读本文来解决。本文内容问题解决原因问题你可以看一下下面的这张动图,感受一下窗口的闪烁:实际上在拖...原创 2019-10-28 08:58:23 · 1998 阅读 · 2 评论 -
System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。”
当试图在 WPF 窗口中嵌套显示 Win32 子窗口的时候,你有可能出现错误:“寄宿的 HWND 必须是指定父级的子窗口。”。这是很典型的 Win32 错误,本文介绍如何修复此错误。本文内容问题原因和解决办法我们在 MainWindow 中嵌入一个其他的窗口来承载新的 WPF 控件。一般情况下我们当然不会这么去做,但是如果我们要跨越进程边界来完成 WPF 渲染内容的融合的时候,就需要嵌入一...原创 2019-10-28 08:52:56 · 1620 阅读 · 0 评论 -
System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。”
当试图在 WPF 窗口中嵌套显示 Win32 子窗口的时候,你有可能出现错误:“BuildWindowCore 无法返回寄宿的子窗口句柄。”。这是很典型的 Win32 错误,本文介绍如何修复此错误。本文内容问题原因和解决办法我们在 MainWindow 中嵌入一个其他的窗口来承载新的 WPF 控件。一般情况下我们当然不会这么去做,但是如果我们要跨越进程边界来完成 WPF 渲染内容的融合的时...原创 2019-10-19 09:06:42 · 1768 阅读 · 0 评论 -
通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息
WPF 框架自己实现了一套触摸机制,但同一窗口只能支持一套触摸机制,于是这会禁用系统的触摸消息(WM_TOUCH)。这能够很大程度提升 WPF 程序的触摸响应速度,但是很多时候又会产生一些 Bug。如果你有需要,可以考虑禁用 WPF 的内置的实时触摸(RealTimeStylus)。本文介绍禁用方法,使用 AppSwitch,而不是网上广为流传的反射方法。本文内容如何设置 AppSwitch...原创 2019-10-19 09:00:12 · 1026 阅读 · 0 评论 -
System.InvalidOperationException:“寄宿 HWND 必须是子窗口。”
当试图在 WPF 窗口中嵌套显示 Win32 子窗口的时候,你有可能出现错误:“System.InvalidOperationException:“寄宿 HWND 必须是子窗口。””。这是很典型的 Win32 错误,本文介绍如何修复此错误。本文内容一个最简的嵌入其他窗口的例子寄宿 HWND 必须是子窗口一个最简的嵌入其他窗口的例子我们在 MainWindow 中嵌入一个其他的窗口来承载新...原创 2019-10-19 08:56:54 · 1309 阅读 · 0 评论 -
使 32 位程序使用大于 2GB 的内存
不管在 32 位 Windows 上还是在 64 位 Windows 上,32 位的应用程序都只能使用最大 2GB 的内存,这是我们司空见惯的一个设定。但其实 Windows 提供了一些方法让我们打破这样的设定,使程序使用大于 2GB 的内存。原创 2017-09-14 23:54:50 · 7179 阅读 · 0 评论 -
使 WPF 支持触摸板的横向滚动
微软终于开始学苹果一样好好做触摸板了(就是键盘空格键下面那一大块)。然而鉴于以前没有好好做,以至于 WPF 程序甚至都没有对触摸板的横向滚动提供支持(竖向滚动是直接使用了 MouseWheel,汗……)。本文将介绍让触摸板支持横向滚动的方法,本质上也是用 MouseWheel,但却支持了横向。原创 2017-11-23 22:41:55 · 1842 阅读 · 0 评论 -
将美化进行到底,使用 Oh My Posh 把 PowerShell 做成 oh-my-zsh 的样子
不知你有没有看过 Linux 上 oh-my-zsh 的样子?看过之后你一定会惊叹,原来命令行还能这么玩!然而 Windows 下能这么玩吗?答案是可行的,接下来就来看看怎么玩。原创 2017-12-30 14:09:50 · 19431 阅读 · 10 评论 -
实现一个 WPF 版本的 ConnectedAnimation
Windows 10 的创造者更新为开发者们带来了 Connected Animation 连接动画,这也是 Fluent Design System 的一部分。它的视觉引导性很强,用户能够在它的帮助下迅速定位操作的对象。不过,这是 UWP,而且还是 Windows 10 Creator’s Update 中才带来的特性,WPF 当然没有。于是,我自己写了一个“简易版本”。原创 2017-12-30 14:17:15 · 800 阅读 · 0 评论 -
在操作系统重启后恢复应用程序的工作状态
Windows 10 创意者更新之后,默认开启了重启后恢复应用程序状态的功能。这是自 Vista 以来就提供的功能——Restart Manager。应用程序实现这一功能只需要调用 RegisterApplicationRestart 即可。传入两个参数:重启后使用的命令行参数(例如当前正在打开的文件,以及正在阅读或编辑的位置)决定是否进行重启的限制标记(任何时候都能重启还是在某些原创 2018-01-30 08:45:57 · 2032 阅读 · 0 评论