windows
文章平均质量分 53
youyudexiaowangzi
读书苦,读书累,晓来谁染霜林醉,名落孙山泪
展开
-
windows修改程序图标后,快捷方式没有更新
最近换应用程序图标的时候发现程序的图标的确边了,但是快捷方式的图标还是以前的,双击打开快捷方式的时候,程序打开,任务栏上显示的图标是新的。右键查看快捷方式属性的时候,属性面板里显示的图标依然是新的,就是桌面上的快捷方式一直是旧的,很容易产生误解。关闭explorer.exe后再次打开explorer.exe不起作用,重启电脑也不起作用。清空icon缓存何缩略图缓存后,重启explorer.exe,终于眼前一亮。这里看到的都是icon缓存,将其清空后还有缩略图缓存。原创 2023-02-22 14:36:55 · 1551 阅读 · 1 评论 -
windows api获取软链接的目标路径
GetFinalPathNameByHandle可以获取软链接对应的真实设备路径,设备路径是\Device\HarddiskVolumex\xxxx\xxx,不知道盘符。GetVolumePathName可以通过\Device\HarddiskVolumex\xxxx\xxx获取到盘符c:\,但是不会自动拼接为盘符对应的文件全路径。QueryDosDevice可以通过盘符获取盘符c:对应的设备路径\Device\HarddiskVolumex。于是,做个拼接就可以了。.........原创 2022-08-11 11:37:35 · 968 阅读 · 1 评论 -
UEFI开发环境搭建
这里没有开发需要的代码和库,但是又很多资料文档,比如UEFI Specification就在Developer->Specification Library里面。该页面提供了UDK2015 Downloads的各种资源,我们开发需要的是workspaces,所以选择UDK2015 Workspace (ZIP File)该页面最下面提供了UDK各种版本的链接,2022年看到最新版本是UDK2018,由于公司用的是UDK2015,所以就选择了UDK2015,下载解压后有两个目录,三个压缩包,一个txt。...原创 2022-08-09 12:11:52 · 1232 阅读 · 0 评论 -
etw监控文件操作开发示例
微软官方文档Event Tracing - Win32 apps | Microsoft Docsetw相关工具(目前主要用到logman查询providers)Event Tracing Tools - Win32 apps | Microsoft Docs简述:windows事件跟踪也就是windows event trace(etw)。主要分为三个模块:事件提供者(provider)、事件控制器(controller)、事件订阅者(consumer)。普通程序员一般用系统提供的事件原创 2022-04-29 17:46:38 · 3022 阅读 · 1 评论 -
cpu和内存占用过高,但是任务管理器中的进程占用的内存和cpu看不出来
不知道从什么时候电脑总是卡卡的,因为cpu和内存比较高配也就没想过占用率的事情,最近卡的受不了了,任务管理器中发现cpu和内存占用都超过90%,内存更是动辄96%以上,网上有一些介绍解决方案,我通过对比试验,没采取一种方案后重启看看,最近一次是禁用cotana和升级网卡驱动。原创 2022-04-20 10:17:06 · 7873 阅读 · 1 评论 -
devcon命令开启启用/禁用端口
今天测试一个外接设备的时候发现打开失败,跟硬件提供商沟通后,说是蓝牙设备占用端口了。需要禁用蓝牙端口设备,于是找了devcon禁用端口设备的方法。devcon在winDDK目录中可以找到,找到对应位数的程序,使用管理员权限打开命令行窗口,找到ports设备C:\Users\xxx\Desktop>devcon find =portsFTDIBUS\VID_0403+PID_6001+A10JYLAEA\0000 : USB Serial Port (C原创 2022-04-13 11:58:25 · 1900 阅读 · 0 评论 -
windows命令行程序被鼠标点击后阻塞
最近写python程序发现双击程序后弹出命令行窗口,如果鼠标不小心点击了窗口,整个窗口处于选择状态,但是程序不继续输出了,根据以往经验知道这是windows10上cmd窗口的选择模式导致的,可以手动解决:1.点击左上角图标选择属性2.取消快速编辑和插入模式如上,命令行窗口就不能通过鼠标选择了,但是每个程序都这么设置有点烦躁,于是就找了找windows控制台模式相关的api,发现如下apiSetConsoleMode function - Windows Console | Mic..原创 2022-04-07 16:37:59 · 1610 阅读 · 0 评论 -
不依赖MFC创建Win32窗口
Windows.h提供了CreateWindow系列的函数,自己注册一个class,然后就能创建窗口,创建之后需要在WndProc中处理Message#include <stdio.h>#include <tchar.h>#include <Windows.h>LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ switch (uMsg)原创 2022-04-01 13:04:11 · 398 阅读 · 0 评论 -
Reg命令查询注册表
命令行中执行reg /?,reg query /?即可知道reg的操作方式,此处做个记录,方便记忆reg执行哪些操作C:\Users\Administrator>reg /?REG Operation [Parameter List] Operation [ QUERY | ADD | DELETE | COPY | SAVE | LOAD | UNLOAD | RESTORE | COMP原创 2022-03-24 12:56:03 · 6497 阅读 · 0 评论 -
visual studio 2019 + WinDDK 7600.16385.0编写驱动
驱动版本WinDDK 7600.16385.0IDE:visual studio 2019新建空白项目配置类型从exe改为生成文件配置完后,配置属性中就只剩基础配置了,没有C/C++、链接器等配置,因为驱动程序需要通过ddk编译,所以其他配置也是没用,自己配置编译程序的命令行即可添加makefile和source文件makefile是默认的,不需要修改的## DO NOT EDIT THIS FILE!!! Edit .\sources. if you want .原创 2022-03-23 19:05:14 · 2111 阅读 · 0 评论 -
windows程序执行没有输出也没有报错
今天编写了一个简单的程序验证系统环境,结果不管是双击打开,还是命令行打开都没有任何输出,明明main函数的入口就有打印的,不可能printf函数都出问题。如果有错的话,应该会弹窗报错才对。于是想到了以前排查问题时用到的事件查看器。然后根据时间和类型找到可以大概找到位置点击对应的条目后,常规信息中有程序的名字,这样就能确定出错的问题了。如上信息看起来像是以前的错误弹窗,这里只是没弹窗而已,错误信息是一致的,不影响排查问题的思路。如上时确实vcruntime140.dll,Visu.原创 2022-03-15 19:44:04 · 1444 阅读 · 0 评论 -
删除文件时提示需要**权限, 通过命令行修改文件/目录的所有者和权限
删除文件失败,错误码是5,手动删除的时候提示需要 trustinstaller权限通过cacls看一下所在目录的权限C:\Windows\system32>echo y | cacls "C:\Program Files\Internet Explorer\iexplore.exe"C:\Program Files\Internet Explorer\iexplore.exe NT SERVICE\TrustedInstaller:F原创 2022-03-15 15:41:51 · 2407 阅读 · 0 评论 -
删除dll的时候提示被占用
查看dll被哪个进程占用C:\Users\aa>tasklist /m AcSignCore16.dll映像名称 PID 模块========================= ======== ============================================explorer.exe 4852 AcSignCore16.dll不知道怎么用命令行的形式把dll从进程中卸载,只能根据pi原创 2022-03-15 09:55:14 · 3290 阅读 · 0 评论 -
STORAGE_DEVICE_ID_DESCRIPTOR数据结构解析
获取磁盘的序列号或者厂商号的时候,发现了IOCTL_STORAGE_QUERY_PROPERTY的请求可以设置Property参数, // ==================STORAGE_DEVICE_ID_DESCRIPTOR==================== pPropertyQuery->PropertyId = STORAGE_PROPERTY_ID::StorageDeviceIdProperty; STORAGE_DEVICE_ID_DESCRIPTOR* pDe原创 2022-03-10 13:22:42 · 782 阅读 · 0 评论 -
EasyHook各种失败的场景
EasyHook的代码示例,使用注意事项和常见的失败场景原创 2022-03-03 18:13:05 · 794 阅读 · 0 评论 -
windows32位程序访问64位注册表
一开始以为关闭32位程序在64位系统里的重定向就可以了判断系统是不是64位的BOOL isSystem64(){ SYSTEM_INFO si; GetNativeSystemInfo(&si); if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 || si.wProcessorArchitecture != PROCESSOR_ARCHITECTURE_IA64 ) { return TRUE;原创 2021-12-31 14:35:31 · 660 阅读 · 0 评论 -
Windows监听程序访问了哪些资源
Winternals公司的SysInternals提供了很多方便工具,后来被微软收购,微软提供了该系列的工具https://docs.microsoft.com/en-us/sysinternals/监听进程访问的资源用ProcessMonitor就可以了,但是数据太多了,后来发现ProcessExplorer用起来更方便勾选Show Low Pane,就会在底部显示一个进程信息的窗格,里面默认是按type排序的,type里面有section、file、reg、event等信息,这里以fil原创 2021-12-21 14:43:09 · 2588 阅读 · 0 评论 -
windows给浏览器注册uri可以打开的应用程序
测试:创建a.reg文件Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\myApp]@="""URL Protocol"="C:\\Program Files (x86)\\myApp\\myApp.exe"[HKEY_CLASSES_ROOT\myApp\DefaultIcon]@="C:\\Program Files (x86)\\myApp\\myApp.exe"[HKEY_CLASSES_ROOT\myApp\原创 2021-02-03 11:47:36 · 424 阅读 · 0 评论 -
windbg preview初级远程调试
windbg preview下载介绍https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugger-download-tools里面有下载地址pc1:客户环境机器,运行exe程序,作为调试的serverwindbgx -server tcp:port=1234 E:\a\superCoaching.exewindgbx就是windgb preview的可执行文件,不过大小是0,windows自己会.原创 2020-09-03 21:19:20 · 1105 阅读 · 0 评论 -
qt窗口去除标题栏保留阴影
qt接口setWindowFlags(Qt::CustomizeWindowHint);可以单独去掉标题栏,保留边框阴影,但是顶部会多出6个像素的白边,十分难看,又不想窗口无边框的窗口自己实现阴影和拖拽事件,于是google了一下参考https://stackoverflow.com/questions/39731497/create-window-without-titlebar-with-resizable-border-and-without-bogus-6px-whitpro文原创 2020-08-02 15:30:22 · 1834 阅读 · 0 评论 -
windows去掉标题栏保留阴影
参考https://stackoverflow.com/questions/39731497/create-window-without-titlebar-with-resizable-border-and-without-bogus-6px-whit项目win32,不是控制台程序#include <Windows.h>#include <windowsx.h>#include <Dwmapi.h>#pragma comment(lib, "dwma原创 2020-08-02 15:22:48 · 1424 阅读 · 0 评论 -
Windows批处理执行命令却不停重入,陷入死循环
bat文件中写入shutdown -s -t 60本意是60秒后关机,但是双击执行这个bat却不停打印shutdown -s -t 60明明也没有执行循环啊,就算失败也应该退出了啊,搞了好久,换个命令又没问题,然后发现批处理的名字就是shutdown,结果原来是不断重入到本文件中来了,陷入了死循环,所有一定不要调用本批处理的名字,最好写一个不会被批处理调用的名字。比如写关机.bat,然后原创 2018-01-11 11:31:19 · 8555 阅读 · 5 评论 -
应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具
应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具.我使用的编译器是VS2008.网上提供了多种解决办法,我只是采用了修改配置的方法,因为已经提示了并行配置不正确,所以肯定得改Multi-threaded 。也就是配置-->C/C++-->Code Generation-->RunTime Library...原创 2018-04-11 10:04:36 · 7458 阅读 · 2 评论 -
服务程序创建用户进程
#include <stdio.h>#include <stdlib.h>#include <Windows.h>#include <tchar.h>#include <Tlhelp32.h>#include <UserEnv.h>#include <io.h>void writefile(TCHAR *szBuf原创 2018-04-11 16:33:31 · 921 阅读 · 2 评论 -
windows shift+鼠标右键打开cmd
windows10之前shift+鼠标右键可以在当前目录打开cmd命令行,但是在windows里面只能打开powershell,powershell又不那么方便,所以想改改鼠标右键的菜单修改注册表\HKEY_CLASSES_ROOT\Directory\Background\shell\Powershell\command不是\HKEY_CLASSES_ROOT\Directory...原创 2018-11-28 20:44:26 · 1061 阅读 · 2 评论 -
wininet、winhttp、winsock定义
wininet、winhttp、winsock含义WinInet(“Windows Internet”)是一个网络编程接口, 帮助程序员使用三个常见的Internet协议: HTTP、FTP、Gopher(信息查找系统,www出现后已渐渐不在使用), wininet.dll。借助 WinInet 接口,可不必去了解 Winsock、TCP/IP 和特定 Internet 协议的细节就可以编...原创 2018-12-21 19:13:10 · 295 阅读 · 0 评论 -
C#播放服务器视频
C#提供了组件,调用本地的windows media player播放视频,可以播放本地视频,也可以播放服务器视频,传入url即可添加组件:1、项目->右键->属性->添加->引用弹出的对话框,在COM中选择windows media player,有多个重名的,鼠标悬浮后能看到引用的路径,选择路径对应到xmp.dll的2、选择一个form,打开工具箱,(先...原创 2019-01-26 17:42:30 · 2077 阅读 · 0 评论 -
windows命令枚举wifi,连接wifi
枚举netsh wlan show all | findstr "^\s*SSID"netsh wlan show all 显示所有网络连接,findstr过滤连接netsh wlan connect name="tplink-4jt454ktj"多网卡的情况下指定用那块网卡链接(普通pc只能连接2.4G赫兹的wifi,外接一个无线网卡可以连接上5G赫兹平频率的wif...原创 2019-07-19 11:15:19 · 691 阅读 · 0 评论 -
记录一个C#静态变量的问题
本来想写一个日志类,初始化是获取streamwriter,然后记录日志时write,flush,这样可以避免重复打开文件,可是streamwriter莫名其妙变成null了,于是写了一个简单的测试demousing System;using System.Diagnostics;using System.Globalization;using System.Linq;using Sy...原创 2019-07-23 10:27:24 · 366 阅读 · 0 评论 -
windows服务程序弹出有界面的MessageBox
WTSSendMessage可以在指定的用户会话中弹出对话框,获取用户会话可以用WTSGetActiveConsoleSessionId获取当前活动用户的会话idOE_UINT32 sessionId = WTSGetActiveConsoleSessionId();DWORD dwRespon = 0xff;if(!WTSSendMessage((HANDLE)0, se原创 2015-11-05 11:03:00 · 2934 阅读 · 0 评论