自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 版务处理

 

2006-11-24 21:11:00 1001

原创 注册文件类型,关联文件

BOOL function::RegisterFileType(LPCTSTR houzhui,LPCTSTR fmiaoshu,LPCTSTR wmiaoshu,LPCTSTR filepath){HKEY hKey = NULL; DWORD dwDip=0;LPTSTR newreg=new TCHAR[512];TCHAR bufpath[256];if(filepath==NULL)Ge

2006-02-22 13:41:00 2018

原创 判断客户端是否断开

BOOL CMySocket::IsDropped(){ BOOL bDropped = FALSE; INT iRet = 0; BOOL bOK = TRUE;  struct timeval timeout = { 0, 0 };//立刻返回,不阻塞 fd_set readSocketSet;  FD_ZERO( &readSocketSet ); FD_SET( m_hSocket, &r

2005-07-24 17:24:00 1615

原创 枚举系统进程核心代码(代码)

包含头文件:#include "tlhelp32.h"示例:void CTerminateProcessDlg::OnGetProcess() {  m_ListBox.ResetContent(); CString m_output; HANDLE hProcessSnap=NULL; PROCESSENTRY32 pe32={0}; hProcessSnap=CreateToolhelp32S

2004-12-29 16:37:00 1640

原创 FAQ2004:删除非空目录下所有文件

【问题】怎样删除一个非空目录,及其目录里面所有内容:【解答1】如果不进行递归删除。你可以使用API函数SHFileOperation,它可以一次删除目录及其下面的子目录和文件。    示例代码:    BOOL DelTree(LPCTSTR lpszPath){  SHFILEOPSTRUCT FileOp;  FileOp.fFlags = FOF_NOCONFIRMATION;  FileO

2004-12-29 16:25:00 1438

原创 屏蔽WIN、ALT+TAB、CTRL+ESC键的低级键盘钩子

回调函数:LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam){ BOOL fEatKeystroke = FALSE; PKBDLLHOOKSTRUCT p = NULL; if (nCode == HC_ACTION)  {  p = (PKBDLLHOOKSTRUCT) lParam;  

2004-12-29 16:25:00 2599

原创 枚举注册表键名与键值

枚举注册表键名与键值的一个函数:// QueryKey - Enumerates the subkeys of key, and the associated //    values, then copies the information about the keys and values //    into a pair of edit controls and list boxes. /

2004-12-29 16:23:00 2198

原创 一份进程注入的代码

// Injection.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "Injection.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// 唯一的应用程序对象CWinApp theApp;using namespace std;typedef struct _RemotePara{//参数结构   c

2004-12-29 16:22:00 1751 1

原创 工具条加入文本名称

主要函数1.CToolBar::SetSizes(SIZE sizeButton,SIZE sizeImage)用于设置工具按钮的大小以及它上面的位图的大小.这个函数有两个参数,其中,sizeButton用于指定按钮的大小,sizeImage用于指定位图的大小.需注意的是:这两个参数的cx域和cy域都必须大于零,并且,sizeButton的宽度(cx)至少要比sizeImage的宽度大7,高度(c

2004-12-29 16:21:00 1306

原创 链接错误浅谈

学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。  初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为:  unresolved e

2004-12-29 16:21:00 1191

原创 VC中的自定义消息(收藏)

Windows 应用程序所要做的每项工作几乎都是基于消息处理的, Windows 系统消息分为常用 Windows 消息,控件通知消息和命令。然而,有时我们需要定义自己的消息来通知程序什么事情发生了,这就是用户自定义消息。 ClassWizard 并没有提供增加用户自定义消息的功能,所以要使用用户自定义消息,必须手工编写代码。然后 ClassWizard 才可以象处理其它消息一样处理你自定义的消息

2004-12-29 16:19:00 1188

原创 用.DEF文件导出DLL中的函数

通常我们在调用DLL时所需的DLL文件必须位于以下三个目录之一:  (1)Windows的系统目录:/windows/system;  (2)DOS中path所指出的任何目录;  (3)程序所在的目录。  一、动态链接库的结构  动态链接库中定义有两种函数:导出函数(export function)和内部函数(internal function),导出函数可以被其它模块调用,内部函数只能在库内部使

2004-12-29 16:19:00 2692

原创 Windows 任务管理器如何确定应用程序"没有响应"(收藏)

最近参加的一个项目要求实现远程任务管理功能,也就是"Remote Task Manager"(RTM)。我把它与Windows NT的任务管理器进行了比较,发现标准的任务管理器显示应用程序的状态(正在运行或者没有响应)。标准的任务管理器发送(通过SendMessageTimeout函数)一个消息到主应用窗口,如果函数调用失败或者超时--则应用程序的状态就是"没有响应",否则状态为"正在运行"。  

2004-12-29 16:18:00 2292 1

原创 用API实现繁体简体的转换(收藏)

1. 输入Big5字符,返回Gb简体字符    //---------------------------------------------------------------------------    //函数输入Big5字符,返回Gb简体字符    //--------------------------------------------------------------------

2004-12-29 16:17:00 1693

原创 FAQ200412:得到指定文件的信息

char* szFileName = "C://EnochShen.exe"; DWORD dwSize = GetFileVersionInfoSize(szFileName,NULL); LPVOID pBlock = malloc(dwSize); GetFileVersionInfo(szFileName,0,dwSize,pBlock); char* pVerValue = NULL; 

2004-12-29 16:02:00 1045

原创 FAQ200412:获取系统有几个逻辑分区

char cr[3]; char lable[12]; for(int n=0;n {  CString str;  str.Format("%c:",n+A);  strcpy(cr,str);  int dt = GetDriveType(cr);  int succeed = GetVolumeInformation(cr,lable,12,NULL,NULL,NULL,NULL,0);

2004-12-29 16:01:00 893

原创 利用HTTP方式上传(代码)

#include #include #include #include BOOL UseHttpSendReqEx(HINTERNET hRequest, DWORD dwPostSize,CString strLocalFile);BOOL Upload(CString bstrLocalFile,CString bstrServerIP,CString strServerPort,CStrin

2004-12-29 15:58:00 1568

原创 VC中使用存储过程(收藏)

看了很多VC数据库的书,里面很少设计到用VC和存储过程操作的资料,网上找了又找,结果还是很少,收集了一下一些代码片断,以供参考。代码片断1:_variant_t _vValue; _variant_t RecordsAffected; VARIANT vtRetval; vtRetval.vt = VT_I2; _CommandPtr    pCmd = NULL; _ParameterPtr  

2004-12-29 15:57:00 2079 1

原创 FAQ200412:怎么在一个静态Picture控件中显示JPG文件

my  example:  HBITMAP  CPicture::LoadImageFromID(UINT  nIDRes)  {             try             {                         HMODULE  hInst=GetModuleHandle(NULL);                         LPCTSTR  lpRes  = 

2004-12-29 15:55:00 1058

原创 对话框编程技巧(收藏)

一、如何往基于Dialog的程序添加菜单[1.1] 先添加菜单(IDR_MENU1)资源,并加上需要的菜单项。[1.2] 编辑对话框资源IDD_DLGMENUTOOLBAR_DIALOG的属性,在属性对话框中选择IDR_MENU1即可。[1.3] 假如您不希望在对话框属性中直接设置菜单,而通过代码在程序中动态生成可以采用如下方法:[1.3.1]在CDlgMenuToolbarDlg类声名中添加成员

2004-12-29 15:55:00 1102

原创 获取磁盘使用空间和剩余空间(代码)

char crDrv[3];CStringArray strArray;_ULARGE_INTEGER  n64TotalNumberOfBytes, n64TotalNumberOfFreeBytes;__int64  n64TotalFree = 0,n64TotalSpace = 0;float fTotalFree,fTotalSpace,fTempFree,fTempTotal;ULON

2004-12-29 15:54:00 1295

原创 关于Debug和Release之本质区别的讨论(收藏)

本文主要包含如下内容:1. Debug 和 Release 编译方式的本质区别2. 哪些情况下 Release 版会出错3. 怎样“调试” Release 版的程序--------------------------------------            一、Debug 和 Release 编译方式的本质区别    Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员

2004-12-29 15:52:00 3110

原创 获得INTEL系列CPU序列号

//取得IntelCPU的ID号:void IntelCPUIDDlg::OnButtonCPUID(){   unsigned long s1,s2;   unsigned char vendor_id[]="------------------";   CString str1,str2,str3;  __asm{   xor eax,eax   cpuid   mov dword ptr v

2004-12-29 15:48:00 2758

原创 堆和栈的区别(转载)

在bbs上,堆与栈的区分问题,似乎是一个永恒的话题,由此可见,初学者对此往往是混淆不清的,所以我决定拿他第一个开刀。    首先,我们举一个例子:    void f() { int* p=new int[5]; }     这条短短的一句话就包含了堆与栈,看到new,我们首先就应该想到,我们分配了一块堆内存,那么指针p呢?他分配的是一块栈内存,所以这句话的意思就是:在栈内存中存放了一个指向一块堆

2004-12-29 15:47:00 858

原创 另一个特殊矩阵的Java实现

这是另外一个比较有趣的矩阵的Java实现。当n=4的时候,输出如下:        1    2    5    10        4    3    6    11        9    8    7    12       16  15   14   13Java代码实现如下:import javax.swing.JOptionPane;public class Test2{ public

2004-10-05 13:43:00 874

原创 蛇形矩阵的代码

蛇形矩阵是比较特别的矩阵,但是只要掌握了坐标的规律,用程序实现也不难。以下是我用Java实现的蛇形矩阵:n=4 的时候输出为:        1     2    6     7        3     5    8     13        4     9    12   14       10    11   15   16源代码实现如下:       import javax.swing

2004-10-05 13:42:00 1477

原创 防止对话框程序按Enter和ESC退出的对策

在一般情况下编写的对话框程序,用户在运行的时候,如果不注意按下了ENTER或者ESC键,程序就会立刻退出,之所以会这样,是因为按下Enter键时,Windows就会自动去找输入焦点落在了哪一个按钮上,当获得焦点的按钮的四周将被点线矩形包围。如果所有按钮都没有获得输入焦点,Windows就会自动去寻找程序或资源所指定的默认按钮(默认按钮边框较粗)。如果对话框没有默认按钮,那么即使对话框中没有OK按钮

2004-10-05 13:38:00 1327

原创 在VC中使用WMI(英文原版)作者:BugSearcher

IntroductionWe normally find a lot of ways and a number of resources to use WMI or to get information from “Windows Management Instrumentation” while using Visual Basic 6 and C#, but I could not fin

2004-09-04 10:29:00 2152 3

原创 一个有趣的GDI图形测试程序

    这是一个有趣的GDI图形测试程序,其主要功能就是获取在桌面上绘图,结果是……你的桌面会一团遭,像病毒一样,看了你会吓一跳,但是有惊无险 :)一下程序在VC++.NET下编译通过。#include "stdafx.h"#include "stdlib.h"int APIENTRY WinMain(HINSTANCE hInstance,                     H

2004-08-07 23:30:00 1319

原创 自增操作的反汇编分析

在考试或者做题的时候,经常遇到这类问题,出题的老师就是爱在这点上面钻牛脚尖,那就是自增自减操作的组合运算,我个人认为,考这样的题,没多大意思,因为各个编译器不同,出来的结果也不同,而且这样有一种误导,而失去了语言学习的本质,但是我们还是得面对……悲哀啊。下面我用汇编来分析一下这个例子:#include "stdio.h"int main(){ int i=0,n = 0; n = (++i)+

2004-08-07 23:19:00 2702

原创 WINAPI HOOK (修改前五个字节,JMP跳转法)

本文一介绍用修改API头五个字节的方法在Win2k下的使用。利用Win2k为我们提供了一个强大的内存Api操作函数---VirtualProtectEx,WriteProcessMemeory,ReadProcessMemeory,有了它们我们就能在内存中动态修改代码了,其原型为: BOOL VirtualProtectEx( HANDLE hProcess, // 要修改内存的进程句柄 LPVO

2004-07-02 11:22:00 2376

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除