Windows编程
文章平均质量分 78
jingzhongrong
这个作者很懒,什么都没留下…
展开
-
在BCB中使用选择文件夹对话框
By jingzhongrong编程时的需要,我封装了一个类。由于BCB有些头文件中的结构定义与微软Windows.h中有些结构的定义相同,所以在使用的时候应该在文件最前的地方加上一句#define NO_WIN32_LEAN_AND_MEAN 下面是类的头文件 #define NO_WIN32_LEAN_AND_MEAN#ifndef CommonH#define Com原创 2007-01-02 18:33:00 · 2849 阅读 · 0 评论 -
[Unicode版本]在BCB中使用选择文件夹对话框
by jingzhongrong 原文地址:http://blog.csdn.net/jingzhongrong/archive/2007/01/02/1472452.aspx 由于使用到了UnicodeString,因此,本篇文章只适用于BCB2009。 使用方法,见文章后。 效果: theFolderDialog.h如下://--------原创 2008-10-29 20:50:00 · 1267 阅读 · 0 评论 -
C#动态调用C++编写的DLL函数
[C#动态调用C++编写的DLL函数] by jingzhongrong 2008-05-08动态加载DLL需要使用Windows API函数:LoadLibrary、GetProcAddress以及FreeLibrary。我们可以使用DllImport在C#中使用这三个函数。 [DllImport("Kernel32")]public static原创 2008-05-08 15:07:00 · 5259 阅读 · 3 评论 -
简单的多桌面的实现
多个桌面的简单实现,不同桌面可以运行不同程序,互不干扰。纯粹自娱。 原理简单,就不多加解释,主要函数如下:char DesktopID[] = "jingzhongrong";void SetDesktop() //配置新桌面{ DWORD currId = GetCurrentThreadId(); hCurrentDesktop = GetThrea原创 2008-04-15 21:22:00 · 1424 阅读 · 0 评论 -
两种检测USB设备插入和移除的方法(Ver 2)
说明:这篇文章是第二个版本。最初版本发布于http://blog.csdn.net/jingzhongrong/archive/2007/01/02/1472440.aspx两种自动检测USB设备的添加和移除的方法最初写这篇文章是因为当时看见一篇文章提出的判断方法是不断检测盘符变化,由于有更好的实现方法,因此写下那篇文章。在CSDN论坛上发现有很多提问是关于怎样判断USB插入和移除的,原创 2007-09-29 00:18:00 · 10162 阅读 · 7 评论 -
使用ComboBox控件对ListView控件中的数据进行编辑
by jingzhongrong在默认状态下,ListView控件的编辑功能是通过提供一个类似Edit控件的栏来实现的。但是如果你想让界面更加友好或者希望使用其他类型的控件来编辑数据,以提高操作的便利性。如下图所示,我们利用一个ComboBox控件来让用户以选择的方式来编辑数据。在上述图片中,使用ComboBox控件进行选择,选中的项目可以直接对ListView中的“插件状态”栏进行修原创 2007-09-19 21:27:00 · 2183 阅读 · 0 评论 -
控制台输出控制
//By jingzhongrong通过Win32API提供的函数,可以对控制台程序的输出进行控制,例如字体颜色、标题文字,以及各种属性等等。主要使用到的函数以及声明如下:HANDLE GetStdHandle( DWORD nStdHandle);此函数用于获取控制台输出、输入句柄。得到句柄之后便可以对输出进行修改了。下面是几个用于修改的函数,其他函数请查看MSDN获原创 2007-06-06 21:40:00 · 1064 阅读 · 0 评论 -
系统蓝屏前后所做的事情
By jingzhongrong下述过程出自《Windows File System Internals》 首先,关闭所有中断请求其他的用户节点(在多处理器系统中)停止当前的操作使用HalDisplayString() 函数答应出错信息在屏幕上出现蓝色背景的提示,包括BugCheckCode等信息(包括KeBugCheckEx的其他可选参数)如果有描述BugChec原创 2007-08-04 17:25:00 · 1187 阅读 · 0 评论 -
数据共享的简单方法
By jingzhongrong每个Win32的可执行程序以及DLL文件都是由许多个节组成,像程序代码会被放入.text节中,初始化过的数据被放置在.data节中,而未经初始化的数据会被放入.bss节中。 我们可以通过让编译器创建一个用于共享数据的共享节,用于存放用来共享的数据。 下面指令告诉编译器和链接程序在编译的时候创建一个节, #pragma data_seg(“SectionNam原创 2007-03-10 18:21:00 · 2938 阅读 · 0 评论 -
两种自动检测USB设备的添加和移除的方法
By jingzhongrong今天看到一篇文章里面说到的检测U盘插入的方法文章中使用的是用循环不停检测系统盘符的变化,然后根据盘符对应的类型来判 断。 下面是大概的方法 //检测是否为可移动磁盘 int CheckDisk(char *disk) {原创 2007-01-02 18:11:00 · 6435 阅读 · 4 评论 -
可执行文件的捆绑和分离
多个文件的捆绑,为了实现上述功能,可以将主程序中加入分解功能,或者使用一个自解压的控制程序来进行文件的分解。下面以一个自解压控制程序来说明问题:捆绑之后的程序结构如下所示: 自解压控制程序原创 2007-02-24 17:54:00 · 2751 阅读 · 0 评论 -
监视系统中进程的创建和终止
//write by jingzhongrong最近在论坛上看到很多人都在问这个问题,花了一些时间写了这个程序,原理很简单,主要功能通过一个内核驱动中使用PsSetCreateProcessNotifyRoutine 函数来实现。效果也不错首先新建一个驱动程序工程,在DriverEntry例程中调用PsSetCreateProcessNotifyRoutine函数向系统添加一个回调函数,并原创 2007-02-16 21:07:00 · 2635 阅读 · 1 评论 -
用户态枚举进程的几种方法
最近在准备一个进程查看(当然不只进程查看功能了)的工具,总结了在用户态下查找进程的几种方法。当然,如果想要真正做到进程查看,还是要进入核心态中,因为在用户态是查不到什么东西的,但是可以用来和核心态结果进行比较找出隐藏进程。(内核级病毒、木马在Ring0中可以很容易的做到隐藏而是用户态程序检测不到)。//write by jingzhongrong1、利用ToolHelp API原创 2007-02-13 14:45:00 · 2085 阅读 · 1 评论 -
判断是否有全屏程序正在运行(C#)
注册一个AppBar(什么是AppBar?Using Application Desktop Toolbars),通过SHAppBarMessage向系统注册AppBar,这样,当有程序全屏运行时系统会向我们的程序发送消息,在窗体WndProc中处理即可。声明要使用到的API和常量:public class APIWrapper { [DllIm原创 2010-03-16 16:24:00 · 3172 阅读 · 7 评论