Windows API
allenltiverson
CSDN软件与网页收藏居然不同步…
展开
-
Windows API——FindFirstFile——查找文件
1 //查找文件 2 HANDLE WINAPI FindFirstFile( 3 __in LPCTSTR lpFileName,//文件名或路径 4 __out LPWIN32_FIND_DATA lpFindFileData 5 ); 6 7 //查找下一个文件 8 BOOL WINAPI FindNextFile(原创 2013-11-18 20:26:14 · 1652 阅读 · 0 评论 -
Windows API ——OpenProcess——打开进程
1 bool KillProcess(TCHAR *pProcess)//ch是进程名字符串 2 { 3 HANDLE hSnapshot; 4 PROCESSENTRY32 lppe; 5 //创建系统快照 6 hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL)原创 2013-11-18 20:25:10 · 2352 阅读 · 0 评论 -
Windows API ——WritePrivateProfileString——配置文件
1 #pragma once 2 3 class OperationConfig 4 { 5 public: 6 7 OperationConfig(void); 8 ~OperationConfig(void); 9 10 //设置配置文件的值11 BOOL SetIniFile(LPCSTR lpPath,LPCSTR原创 2013-11-18 20:24:49 · 822 阅读 · 0 评论 -
Windows API ——GetLogicalDriveStrings——获取逻辑驱动器
1 TCHAR buffer[MAX_PATH];2 DWORD dwVal=::GetLogicalDriveStrings(MAX_PATH,buffer);3 4 CString str;5 for(int i = 0; i 4)6 {7 CString str;8 str.Format(_T("%c:\\"), buffer[i]);9原创 2013-11-18 20:26:12 · 893 阅读 · 0 评论 -
Windows API ——CreateFile——创建文件
这个函数可以创建或打开一个对象的句柄,凭借此句柄就可以控制这些对象:控制台对象、通信资源对象、目录对象(只能打开)、磁盘设备对象、文件对象、邮槽对象、管道对象。 函数原型:1 HANDLE CreateFile(2 LPCTSTR lpFileName, // 文件名3 DWORD dwD原创 2013-11-18 20:26:16 · 1182 阅读 · 0 评论 -
Windows API —— ShellExcute——打开文件
函数原型:1 HINSTANCE ShellExecute( 2 HWND hwnd,//指向父窗口的窗口句柄。此窗口接收应用程序产生的任何信息框3 LPCTSTR lpOperation,//要执行的操作4 LPCTSTR lpFile,//要打开或打印的文件或者是要打开或搜索的文件夹。 5原创 2013-11-18 20:26:22 · 1077 阅读 · 0 评论 -
Windows API——SHFileOperation——文件操作
1 int SHFileOperation( LPSHFILEOPSTRUCT lpFileOp);如果执行成功返回0. 1 typedef struct _SHFILEOPSTRUCT { 2 HWND hwnd;//指向发送消息的窗口 3 UINT wFunc;//执行的操作 4 LPCTSTR pFrom;//源文件名 5 LPCTSTR pTo;//原创 2013-11-18 20:26:09 · 959 阅读 · 0 评论 -
Windows API——OpenClipboard——剪切板
剪切板:系统维护的一个全局公共内存区域.每次只允许一个进程对其进行访问。剪切板操作方法如下:(MSDN上搜索Clipboard Operations)1.打开剪切板Bool OpenClipboard(HWND hWndNewOwner); 指定关联到打开的剪切板的窗口句柄,传入NULL表示关联到当前任务。每次只允许一个进程打开并访问。每打开一次就要关闭,否则其他进程无法访问剪切板。原创 2013-11-18 20:25:48 · 990 阅读 · 0 评论 -
Windows API——CreateEvent——创建事件
事件是一个允许一个线程在某种情况发生时,唤醒另外一个线程的同步对象。事件告诉线程何时去执行某一给定的任务,从而使多个线程流平滑CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,线程锁定方面. HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // 安全属性 BOOL bManu原创 2013-11-18 20:24:15 · 1266 阅读 · 0 评论 -
Windows API ——GetVersionEx——获取操作系统版本信息
1 //获取系统版本 2 BOOL GetOSName( CString& csOsName ) 3 { 4 OSVERSIONINFOEX osvi; 5 SYSTEM_INFO si; 6 BOOL bOsVersionInfoEx; 7 ZeroMemory(&si, sizeof(SYSTEM_INFO)); 8 ZeroMemory(&原创 2013-11-18 20:25:19 · 1823 阅读 · 0 评论 -
GetLastError演示
VS中添加监视$err,hr可以查询到错误码和对应的解释。也可以查看 winerror.h方法1. 1 ListBox.ResetContent();//清空CListBox 2 3 LPVOID lpMsgBuf; 4 5 for (int i=0;i1000;i++) 6 7 { 8 9 DW原创 2013-11-18 20:24:26 · 723 阅读 · 0 评论 -
只运行一个实例的方法
在VC++ 中编程中,只运行一个实例的方法主要有两类:1 遍历当前的所有窗口,查找相同的实例。为了便于查找,一般要事先设一个查找标志。2 利用系统提供的互斥对象或信标,直接让系统抑制重复的实例。在发现重复运行时,一般还有一个任务,就是激活已经存在的窗口。一、 第一类方法的实现下面是一个具体的例子,下图是示例代码运行的情况。部分关键代码 1、在App的InitInstan原创 2013-11-18 20:24:22 · 650 阅读 · 0 评论 -
Windows API ——CreateMutex——创建互斥对象
互斥对象是系统内核维护的一种数据结构,它保证了对象对单个线程的访问权 互斥对象的结构:包含了一个使用数量,一个线程ID,一个计数器 使用数量是指有多少个线程在调用该对象,线程ID是指互斥对象维护的线程的ID 计数器表示当前线程调用该对象的次数 HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, 安全属原创 2013-11-18 20:24:13 · 861 阅读 · 0 评论 -
Windows API ——GetFileTime——获取文件时间
FILETIME结构包含了文件或目录的日期和时间信息:(自1601年1月1日以来,单位为100纳秒)1 typedef struct _FILETIME {2 3 DWORD dwLowDateTime; //低32位4 5 DWORD dwHighDateTime; //高32位6 7 } FILETIME, *PFILETIME; SY原创 2013-11-18 20:26:18 · 1528 阅读 · 0 评论 -
Windows API——SHGetFileInfo——获取文件信息
本文从一下几个方法进行介绍: SHGetFileInfo的定义 SHGetFileInfo()函数的工作原理 SHGetFileInfo()函数的返回值 SHGetFileInfo()函数的简单示例 SHGetFileInfo的定义 SHGetFileInfo在MSDN上的定义是: Retrieves information about原创 2013-11-18 20:26:07 · 949 阅读 · 0 评论 -
中文错误信息的显示:GetLastErro的使用
1 string GetErroMessage(DWORD dwError) 2 { 3 HLOCAL hLocal; 4 hLocal=NULL; 5 BOOL bFun; 6 HMODULE hDll=LoadLibraryEx(TEXT("netmsg.dll"),NULL,DONT_RESOLVE_DLL_REFERENCES); 7原创 2013-11-18 20:24:30 · 1099 阅读 · 0 评论 -
Windows API ——CreateToolhelp32Snapshot——查找进程
1 //根据进程名获取进程ID 2 DWORD GetPidByProcessName(TCHAR *pProcess) 3 { 4 HANDLE hSnapshot; 5 PROCESSENTRY32 lppe; 6 //创建系统快照 7 hSnapshot = ::CreateToolhelp32Snapshot(TH32CS_原创 2013-11-18 20:25:17 · 1060 阅读 · 0 评论 -
Windows API ——SetWindowLong—— 设置窗口样式
SetWindowLong 函数原型为:LONG SetWindowLong(HWND hwnd,int nIndex,Long dwNewLong);详见MSDN。下面简单总结一下SetWindowLong函数几种常用的地方:1.设置窗口风格 如:SetWindowLong(hWnd, GWL_STYLE, WS_POPUP|WS_BORDER); //有边框的弹出窗口原创 2013-11-18 20:25:00 · 3561 阅读 · 0 评论 -
Windows API ——LoadCursor——载入鼠标
1: LoadStandardCursor使用方法 . LoadStandardCursor用来载入系统自带的光标 , 调用方式如下: HCURSOR hCursor = (HCURSOR)AfxGetApp()->LoadStandardCursor(IDC_CROSS); ::SetCurso原创 2013-11-18 20:25:46 · 4415 阅读 · 0 评论 -
Windows API——SHGetSpecialFolderPath——获取系统特殊路径
1 BOOL SHGetSpecialFolderPath( 2 HWND hwndOwner, 3 LPTSTR lpszPath, //路径,长度至少为MAX_PATH,Windows下即260 4 int nFolder,//MSDN上搜索CSIDL,可以知道常用的特殊路径的宏定义 5 BOOL fCreate//如果为true,表原创 2013-11-18 20:25:34 · 1444 阅读 · 0 评论 -
内存文件映射
服务器端: HANDLE m_handle; CString m_file; char* m_str;1. m_handle=CreateFileMapping( INVALID_HANDLE_VALUE,//创建共享内存 NULL,//默认安全属性 PAGE_READWRITE,//可读写 0,//最大对象空间 BUFSIZ,//缓冲大小 m_file);//映射对象名2.原创 2013-11-18 20:24:03 · 686 阅读 · 0 评论 -
内核对象
无论怎样创建内核对象,都要向系统指明将通过调用C l o s e H a n d l e 来结束对该对象的操作:BOOL CloseHandle(HANDLE hobj);该函数首先检查调用进程的句柄表,以确保传递给它的索引(句柄)用于标识一个进程实际上无权访问的对象。如果该索引是有效的,那么系统就可 以获得内核对象的数据结构的地址,并可确定该结构中的使用计数的数据成员。如果使用计数是0原创 2013-11-18 20:23:31 · 610 阅读 · 0 评论 -
WIN32进程快照以及进程ID和句柄查找(转)
要对进程进行某种操作,就必须首先知道该进程的进程句柄或者进程ID,否则一切无从谈起,对于程序自己创建的子进程来说,CreateProcess函数返回了进程句柄和进程ID,但如果需要调试系统中已经运行的进程,那就必须首先获取它们的句柄才行。Win32中并没有直接获取其他进程句柄的函数,但如果知道进程ID,可以由此得到进程句柄,所以可以首先通过某种途径获取进程ID。 一、获取进程ID原创 2013-11-18 20:25:12 · 1889 阅读 · 0 评论