![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Windows
龙图腾
驱动工程师真心喜欢学习真心喜欢技术
展开
-
解决反正的频繁弹出 扫描并修复
因为嵌入式开发,常用的SD卡需要在linux中格式化为多个分区。这个时候,sd卡接入windows后会弹出 扫描并修复 。。。。特别烦人。如果不小心还会搞坏卡里面的BootLoader解决方法:我的电脑->管理->服务 ->shell hardware detection关掉...原创 2020-11-26 18:37:54 · 1251 阅读 · 0 评论 -
C++ 注册表编程
1.基础知识注册表的组织方式跟文件目录比较相似,主要分为根键、子键和键值项三部分,与文件目录对应的话就是根目录、子目录和文件。分别介绍一下这三部分:(1)根键。分为5个,分别为HKEY_CLASSES_ROOT, HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS和HKEY_CURRENT_CONFIG,把它们理解成磁盘的五个分区可以了。(2原创 2011-12-14 09:35:52 · 789 阅读 · 0 评论 -
如何在VC++6.0中修改主窗口风格
Visual C++是一种面向对象的可视化编程工具,它提供的AppWizard能自动生成应用程序的标准框架,大大减轻了编程的工作量。本文主要介绍如下的编程技巧:修改主窗口风格、创建不规则形状窗口、用鼠标单击窗口标题条以外区域移动窗口、使用上下文菜单、使应用程序只能运行一个实例、使应用程序显示为任务条通知区中的图标和显示旋转文本等。1. 修改主窗口风格AppWizard 生成的应用程序框架的原创 2011-12-22 14:33:41 · 5223 阅读 · 0 评论 -
SetWaitableTimer定时器的使用
使用SetWaitableTimer定时器前先了解一下几个函数:HANDLE CreateWaitableTimer( LPSECURITY_ATTRIBUTES lpTimerAttributes, //安全描述符,可以为NULL BOOL bManualReset, //是否为手动定时器,如果是手动的,需要调用SetWaitableTimer才能将定转载 2011-12-14 15:23:11 · 1491 阅读 · 0 评论 -
函数WaitForMultipleObjects整理
DWORD WaitForMultipleObjects( DWORD nCount, const HANDLE* lpHandles, BOOL bWaitAll, DWORD dwMilliseconds);其中参数 nCount 句柄的数量 最大值为MAXIMUM_WAIT_OBJECTS(64)HANDLE 句柄数组的指针。HANDLE 类型可以为(Event,Mu转载 2012-02-06 18:54:41 · 505 阅读 · 0 评论 -
调试常用的 __FILE__, __FUNCTION__, __LINE__ __DATE__, __TIME__
调试常用的 __FILE__文件 __FUNCTION__函数 __LINE__行号__DATE__日期__TIME__时间没想到 VC6 不支持 __FUNCTION__所以我写了如下的奇怪代码//用来记录当前行和当前函数//也可说是记录 堆栈void log_stack(const char *file, int line, const原创 2011-12-08 17:50:52 · 1529 阅读 · 0 评论 -
使用mouse_event时屏幕绝对坐标如何计算
使用mouse_event时屏幕绝对坐标如何计算 [DllImport("user32", EntryPoint="mouse_event")] public static extern void mouse_event ( int dwFlags, int转载 2012-02-09 18:34:42 · 5533 阅读 · 0 评论 -
XP下通过 命令行/批处理 修改环境变量
恩,我猜你应该在研究这个,随便写几句话给你看吧。XP系统的环境变量都是保存在注册表里的,所以如果想要通过命令行或者是批处理来修改环境变量,就需要知道它保存在注册表的哪个地方。PS.CMD命令可以通过set直接修改环境变量,但那只是一次性的,系统重启后就无效了,这也是为什么要直接修改注册表的原因。系统环境变量空间的注册表项保存位置为:HKEY_LOCAL_MACHINE\SYSTEM转载 2012-02-24 17:26:51 · 1285 阅读 · 0 评论 -
修改cmd的默认路径
方法一:通过“计算机管理”修改 在“我的电脑”图标上右击(桌面和开始菜单的都行),选择“管理”命令,弹出如图1所示的“计算机管理”窗口。在左侧目录树中依次展开“系统工具→本地用户和组→用户”,接着双击右窗口的用户名,如本文的“Administrator”。在弹出的“Administrator属性”窗口中切换到“配置文件”标签页,在“主文件”中选择“本地路径”,输入“C:\”(当然可以修改为其它路径原创 2012-02-18 11:22:05 · 751 阅读 · 0 评论 -
windows关机API
NT系统的关机API函数实现过程前计算机系统多为Windows 2000和Windows XP。Windows 98系统下的关机比较容易,只需要直接调用关闭计算机函数ExitWindowEx就可以了,而在Windows 2000系统下的调用这个函数只能“注销”而不能实现系统关机。在Windows 2000系统实现关机操作得到SHUTDOWN许可,得到SHUTDOWN转载 2012-03-02 16:17:03 · 8294 阅读 · 1 评论 -
RAR 命令行参数
[语法]RAR [ - ] [ ]RAR [ ] [ ][命令]A 增加文件到压缩包,如果省略参数A也为添加文件,但不同的是添加当前路径文件到指定路径;另外如果-AD指定的目录带有\则不会添加子目录的文件:RAR A .\BACKUP\MYRAR -AD %WINDIR%\IME 添加IME目录的所有文件(包含子目录)到当前目录的转载 2012-03-02 18:30:10 · 1186 阅读 · 0 评论 -
清除Windows共享登录的用户名密码
1、如何清除Windows共享登录的用户名密码记录 在Windows XP系统下,每次用户以共享(samba)方式访问远程主机后,会在本地Windows系统中记录下访问登录时的用户名和密码(如果用户选择了记住用户名 和密码),下次用户访问该主机时,就无需再输入用户名和密码了。通常情况下,这样做能省去用户需要频繁输入用户名和密码的麻烦,但是,如果用户访问同一主机时,使用不同的帐号,一旦记录转载 2012-07-25 19:02:02 · 1677 阅读 · 0 评论 -
将rar整合到jpg图片中(Copy /b jpg+rar jpg)
嘻,谁的图片没内容!~~汗。不过偶程序目录中的图片真的与众不同!不信你下载其中的一个JPG图片,将扩展名改为RAR,你就会发现其中真的别有洞天!想知道怎么做的吗?Let' Go! 在动手之前,先要准备一张图片(jmdcw.jpg)和一个压缩文件(jmdcw.rar)。~~~准备好了没?OK!先在“运行”中输入“Cmd”,打开命令提示窗口,用CD命令切换路径至所存放文件的目录,执行以下命令:转载 2012-07-28 09:33:34 · 9231 阅读 · 0 评论 -
windows xp下 usb驱动编写
一,概述现在很多的主控上都带有USB的功能,但是对于初学者来说,这方面应用还是比较棘手,因为usb的不但固件程序需要编写,PC端的驱动也要编写,而且驱动写好了还要写个上位机才能看出效果。这样调试起来十分困难,建议从USB的键盘,鼠标开始做,了解清楚了,再做自己的协议就比较简单了。USB的概念历史啥的这里就不说了。我们先不管具体的数据包格式,这一节先从整个包的层面上简单的说,过程是这样的,转载 2012-10-16 23:52:02 · 1157 阅读 · 0 评论 -
宽字符版文件夹遍历
typedef BOOL (WINAPI *EnumerateFunc) (LPWSTR lpFileOrPath ,WIN32_FIND_DATAW lpFileInfo, void* pUserData); //返回值:返回FALSE中断遍历// 返回TRUE继续遍历//lpPath 遍历路径//nRecursion 遍历深度void doFileEnumeratio原创 2011-12-13 17:37:44 · 844 阅读 · 0 评论 -
学习写一个Hello World驱动
导读: ☆─────────────────────────────────────☆ hellguard (小四★北渡北汉江⊙) 于 (Wed Jun 11 15:44:48 2003) 提到:学习笔记,没有技术含量,高手勿Ctrl-F了日期: 2003-06-10 21:50更新:-------------------------------转载 2011-12-08 17:52:55 · 1137 阅读 · 0 评论 -
关于资源的修改
前两天写一个程序修改exe的资源信息。资源信息的读取API还是比较多的,但是修改的就不多了。经常使用的ResHack工具,修改资源方便的很,但是却没有源码参考。只得自己动手。修改资源的方法可以从API和PE两种方式入手。一、首先介绍从PE入手修改资源:这里我从网上摘抄了一个修改ICON的例子。首先,我们需要两个可执行文件,并且已知这两个exe文件都有图标资源。1、 peSour转载 2011-12-02 13:33:17 · 1224 阅读 · 0 评论 -
从记事本了解PE结构的导入表
导入表是杀毒软件厂商非常关注的部位尤其是启发式扫描。所以,了解导入表的结构对免杀技术是必不可少的。 下文我们从大家最常用的notepad.exe的分析来揭开导入表的神秘面纱。 首先用LoadPE工具加载notepad.exe。查看其区段表和目录表信息。 第一步:计算转换因子从目录表的输入表的RVA(相对虚拟地址)查找在区段表中的位置。这里的RVA是0x76转载 2011-12-02 13:37:05 · 1154 阅读 · 0 评论 -
获取系统分辨率
看了一些从函数中得到系统分辨率的方法,但我发现如果你只想得到屏幕的长和宽的话,其实是很简单的,如下:procedure TForm1.Button1Click(Sender: TObject);begin Label1.Caption:='Screen Width:'+ inttostr(Screen.Width) ; label2.Caption:='Screen转载 2011-12-02 10:13:35 · 1259 阅读 · 0 评论 -
针对文件目录内容变化的检测
检测目录文件变化(增、删改)等操作的方法有很多。下面就我使用的方法进行总结如下:方法一:使用ReadDirectoryChangesW优点:1、可以指定检测目录,缩小检查返回2、使用简单缺点:1、只有unicode班,需要转化2、需要单开线程,因为该操作是同步阻塞的,在不是overlap情况下3、异步的overlap的操作方法特别复杂,涉及到完成端口相关信息。转载 2011-12-02 13:40:38 · 1106 阅读 · 0 评论 -
内存映射文件
本文内容全部引子windows核心编程。只因今天详细的看了一下,特做了摘抄而已!内存映射文件最好用于只读独占的方式打开,因为如果采用可写的方式的话,不能保证一个进程的修改立即在另一个进程生效。以独占方式打开就禁止了其他进程的访问。下面详细介绍一下使用文件映射的步骤和方法:步骤1:创建或打开文件内核对象HANDLE CreateFile( PCSTR pszFileNam转载 2011-12-02 13:45:36 · 423 阅读 · 0 评论 -
插件系统结构浅析
一、插件系统概述普通的系统,在编译发布之后,系统就不允许进行更改或扩充了,如果要进行某个功能的扩充,则必须要修改代码重新编译发布。使用插件可以很好地解决这个问题。二、插件系统的优势1、系统的扩展性大大地加强了。如果我们在系统发布后需要对系统进行扩充,就不必重新编译,只需要增加或修改插件就可以了。2、有利于模块化的开发方式。我们可以开发强大的插件管理系统,在这样的一个插件系统下,转载 2011-12-02 13:46:51 · 610 阅读 · 0 评论 -
服务程序与桌面的交互
大家都知道服务默认是不可以访问桌面UI的。而如果我们的服务中需要使用桌面句柄(截图),或是需要弹出对话框之类的UI相关操作时,都会返回失败。如何让服务可以与桌面交互呢。网上搜索到的答案多是需要修改注册表项,但是我在虚拟机中操作了,结果依旧是不行的。并且这种直接修改注册表的方法很容易被杀软误报。所以,还是通过编程来解决更地道一些。下面就把具体的代码粘贴出来,以供参考。 BOOL Switch转载 2011-12-02 13:47:39 · 1465 阅读 · 0 评论 -
基于wince的录音机
基于wince的录音机基于D:\WINCE500\PUBLIC\COMMON\SDK\SAMPLES\AUDIO\WAVREC 的录音程序建立: PCRecord MFC 工程工程加入:wavrec.cppwavefile.cppwavefile.h将wavrec.cpp 的 winmain 函数声明去掉,把 winmai转载 2011-12-05 17:27:39 · 1751 阅读 · 0 评论 -
通用USB设备驱动源码分析
前段时间写了篇 的文章 , 描述了自己如何为高通的一个 usb modem 设备写驱动的过程 , 最近发现实际上可以使用 linux 自带的一个叫 usbserial 的模块作为这个 modem 的驱动并能良好的工作 , 所以写了这片文章来详细的分析下 usbserial 模块的源码 (2.6.16.3).应该来说 , 对于那些仅仅是用 USB 来通信 , 在上层可看作 tty 设备 , 不转载 2011-12-05 12:03:25 · 846 阅读 · 0 评论 -
C++遍历文件夹
C++遍历文件夹的代码如下:#include #include #include using namespace std; void visit(string path,int layer) { struct _finddata_t filefind; string原创 2011-12-05 17:30:22 · 712 阅读 · 0 评论 -
C/C++:遍历子目录,枚举文件,FindFirstFile + FindNextFile
平时写程序时经常会用到的遍历子目录枚举文件的功能,用 Windows API 函数FindFirstFile() 和 FindNextFile() 直接实现起来会相当繁琐,有许多细节需要注意和记忆,要在短时间内写出可以正常工作的、没有BUG的、能够递归遍历多层子目录并枚举其中所有文件的程序代码,不是一件轻松的事情。以下这个 doFileEnumeration() 函数,是我(liigo)在 Win原创 2011-12-05 19:24:12 · 1279 阅读 · 0 评论 -
USB设备驱动程序
一. USB加载式流接口驱动要点分析为了支持不同类型的外围设备,WinCE平台提供了具有定制接口的流接口驱动程序模型。因为大部分USB外围设备由于功能性更适合流接口驱动的结构,所以一般都采用加载式流接口驱动程序模型来开发USB设备驱动程序。(1)USB系统结构分析WinCE下USB系统软件由两层组成:较高USB设备驱动程序层和较低的USB函数层。较低的USB函数层本身又由两部分组成:较转载 2011-12-08 11:32:32 · 1007 阅读 · 0 评论 -
Wince 6.0 教程---第一课 环境搭建
第一课. 环境搭建1.安装vs20052.安装vs2005sp1,文件为VS2005sp1-KB926601-X86-ENU.exehttp://www.microsoft.com/downloads/info.aspx?na=41&SrcFamilyId=BB4A75AB-E2D4-4C96-B39D-37BAF6B5B1DC&SrcDisplayLang=zh-cn&u=http%转载 2011-12-08 11:33:14 · 817 阅读 · 0 评论 -
驱动向应用程序发送消息
驱动向应用程序发送消息这里介绍一下常见的两种办法。 1、驱动程序调用API SendNotifyMessage,发送特定的消息给应用程序,这就要求应用程序要有消息循环机制并且要事先做好消息的处理。参数 1为窗口句柄,可以设置HWND_BROADCAST表示广播消息。要注意的是不要在参数中传递指针(虚拟地址),因为执行驱动程序的线程和应用程序并不在同一个进程空间中。解决办法可以利用内存转载 2011-12-08 11:38:26 · 1478 阅读 · 0 评论 -
摆脱vc8和vc9的依赖库困惑
大家都知道现在的vs2010马上就要推出了,但是还有很多人喜欢使用vc6进行编程,原因很简单,就是因为用vc6编译的程序,依赖的库msvcrt42。mfc42等在winxp之后的版本都自动集成了,所以,用户使用时像绿色软件一样。但是vc6早已是过时的开发环境了,他的界面效果不好,语法检测不严格。如果我们在用vs2003之后的所有开发环境开发出的程序也像vc6一样,不需要安装任何运行时库就可以绿色使转载 2011-12-02 13:36:14 · 1469 阅读 · 0 评论