
Windows
持成
开发中的菜鸟,菜鸟中得战斗机,为了菜鸟的荣耀,万胜!!!
https://github.com/ccovers
展开
-
程序兼容模式及管理员权限读取
桌面上图标右键->属性->兼容性->(兼容模式、管理员权限)||映射注册表|当前用户HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers32位Windows:所有用户HKEY_LOCAL_MACHINE\Software\Microsoft\W原创 2016-08-28 11:57:59 · 4277 阅读 · 2 评论 -
Windows Shell编程之右键菜单遇到的问题
最近做了个程序需要将程序的打开方法添加到桌面右键菜单。编译成功后,可以看到已经在注册表中实现了,但是桌面上右键菜单后却没有显示出来。一番折腾下来,终于找到问题,操作系统是64位的,扩展程序必须也是64位的,因此重新编译成64位的就运行成功了。编译64位的时候可能会报错,把GetCommandString函数的第一个参数类型从UINT改为UINT_PTR就可以了。效果原创 2016-08-28 11:42:58 · 806 阅读 · 1 评论 -
Win8、Win10中不同进程间发送自定义消息失败
程序A和程序B,其中程序A向程序B发送自定义消息,在Win7、XP上都没有问题,但是在Win8、Win10中有些时候无法收到消息,导致调用失败。经过一番测试,最终发现问题所在:情景1: 用户账户控制中设置为从不通知 ===》 收发消息成功情景2: 用户账户控制设置为其他(除了从不通原创 2016-09-10 13:12:48 · 2996 阅读 · 2 评论 -
桌面右键菜单,添加程序的方法
最近做了一个程序,想要在桌面右键中添加菜单项,可以直接在上面点击就能进入打开或程序界面。方法1:注册表中直接添加在HKEY_CLASSES_ROOT\Directory\Background\shell下新建项,命名为自己想在右键菜单中显示的名字,如”谷歌吧”、“百度吧”。然后在其下继续添加新建项,命名为command,同时默认值改为自己程序的路径,当然如果需要原创 2016-08-28 11:10:12 · 6899 阅读 · 0 评论 -
windows桌面菜单的Shell扩展 模块加载失败
编写了一个桌面右键菜单的的Shell扩展,为了验证是否与其它系统是否兼容,故用虚拟机分别安装了Win7的64位和32位,XP的32位系统,结果注册时出现了以下问题。 反复检查,路径肯定是对的,dll模块在开发机上也没有问题,权限也使用了管理员权限。最后没有办法,就在虚拟机上安装了VS并编译程序,结果这下又能注册成功了。锁定问题为环境配置,将项目配置属性--->常规--->...原创 2016-09-04 11:16:31 · 82264 阅读 · 2 评论 -
窗口进入退出的 简单滑动动画效果
最开始想到的是把创建的窗口隐藏起来,然后调用AnimateWindow。但是因为基础知识不够,找不到适合调用的地方。如果窗口还没创建完成,调用AnimateWindow就会失败,但是什么时候窗口创建成功呢?窗口创建完成后的第一次调用最终使用用了SetWindowPos来实现了功能。1、首先创建的窗口隐藏2、设置定时器3、调用SetWindowPos将整个窗口一部分一部分原创 2016-10-21 15:55:46 · 1094 阅读 · 3 评论 -
线程学习笔记(windows核心编程)
1、使用MsgWaitForMultipleObjects或WaitForMultipleObjects时注意:其第一个参数最大值64即等待的线程最多不超过64个错误:等待超过64个线程,返回WAIT_FAILED,参数无效 2、每个线程都有独有的寄存器,线程并发时:变量variable = 0线程A读取变量值variable到寄存器eax,eax进行加1,将eax中值...原创 2017-01-06 14:25:11 · 524 阅读 · 0 评论 -
Windows核心编程之共享内存
Windows共享数据和信息的机制:RPC、COM、OLE、DDE、窗口消息、剪贴板、邮箱、管道、套接字以及内存映射文件。内存映射:通过让两个或多个进程映射同一个文件。(在进程空间中保留一个地址空间区域,将物理存储器提交给该区域)内存映射文件的物理存储器(用来作为虚拟内存)来自一个位于磁盘驱动器上的数据文件。一旦该文件被映射,就可以访问它,就像文件已经加载内存一样。(操作系统使得内存能够将...原创 2016-11-10 10:09:00 · 8012 阅读 · 0 评论