win32API
风清扬_jd
专注搬砖
展开
-
c++ windows置顶窗体终极方案
windows置顶窗体终极方案LRESULT OnForceShow(HWND hWnd){ HWND hForeWnd = NULL; DWORD dwForeID = 0; DWORD dwCurID = 0; hForeWnd = ::GetForegroundWindow(); dwCurID = :: GetCurrentThreadId(); dwForeID = ::GetWindowThreadProcessId( hForeWnd, NULL ); :.原创 2020-06-29 15:03:02 · 1497 阅读 · 1 评论 -
c++ 调用批处理 bat 清理浏览器缓存。
1、通过工具抓取 IE浏览器,搜狗浏览器,chrome浏览器,火狐浏览器缓存路径如下: C:\Users\Administrator\AppData\Roaming\SogouExplorer\Webkit\Default\CacheC:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\CacheC:\Users\Administrator\AppData\Local\Mozilla\Firefox\Profil.原创 2020-05-21 23:37:38 · 2798 阅读 · 0 评论 -
c++ 枚举指定进程子窗口以Acrobat Reader DC (AcroRd32.exe)为例
/*说明:枚举指定窗口 且可见子窗体 句柄文件:FindWindows.h作者:@jd枚举指定进程子窗口类此类以Acrobat Reader DC (AcroRd32.exe)为例*/#pragma onceclass CFindWindows{public: CFindWindows(void); ~CFindWindows(void); /*...原创 2019-11-20 14:30:23 · 793 阅读 · 0 评论 -
利用CreateRemoteThread 实现远程代码注入的例子!!
#include "stdafx.h"#include <windows.h>#include <stdlib.h>#include <stdio.h>void CheckError ( int, int, char *); //出错处理函数PDWORD pdwThreadId; HANDLE hRemoteThread, hRemoteProcess;DWOR...原创 2018-07-05 13:46:56 · 2096 阅读 · 0 评论 -
rpc通信例子收藏(仅供个人参考学习)
微软官网解释https://docs.microsoft.com/zh-cn/windows/desktop/Rpc/tutorial 此手册可使你从已经存在的单独程序,一步步地创建简单的、单客户端、单服务端的分布式程序。步骤如下:· 设计接口和创建程序配制文件。· 使用MIDL编译器来创建C语言客户端桩、服务端桩及相关头文件。· 写客户端程序。它负责管...原创 2018-07-05 14:03:06 · 342 阅读 · 0 评论 -
Dynamic-Link Library Best Practices
Dynamic-Link Library Best PracticesUpdated:May 17, 2006In this articleGeneral Best PracticesDeadlocks Caused by Lock Order InversionBest Practices for SynchronizationRecommendationsImportant APIsDllMa...转载 2018-06-20 14:30:39 · 206 阅读 · 0 评论 -
开发中常用的只允许一个程序运行的办法createmutex
//开发中常用的只允许一个程序运行的办法//程序以单例模式运行 常用办法,创建一个互斥量//由于互斥量只允许一个进程或者线程占用 会创建失败,利用这个特性可以做到单例运行改程序#include "stdafx.h"#include<windows.h>#include <stdio.h>int _tmain(int argc, _TCHAR* argv[]...原创 2018-08-01 22:27:00 · 1967 阅读 · 0 评论 -
c++调用约定不一致抛出 (_CRT_DEBUGGER_HOOK(_CRT_DEBUGGER_GSFAILURE)异常
1、dll导出程序部分代码 .def文件定义LIBRARY "TestDll"EXPORTS;fnTestDll @1Add @2代码.htypedef int(WINAPI *CallBackFn)(int n); //回调函数// 这是导出函数的一个示例。int WINAPI fnTestDll(CallBackFn pfn);int WINAPI Add...原创 2019-04-16 00:18:37 · 1370 阅读 · 0 评论 -
枚举会话ID(可以用来检测当前windows用户是否是远程登录!)
#include <Windows.h>#include <WtsApi32.h>#include <stdio.h>#include <string>#include <iostream>#pragma comment(lib,"Wtsapi32.lib")//GetSystemMetrics(SM_REMOTESESSI...原创 2019-06-23 00:36:50 · 1389 阅读 · 0 评论 -
禁用dpi缩放功能
Windows Registry Editor Version 5.00//禁用某个程序dpi缩放功能[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]//win7"C:\\Users\\system32\\AppData\\Local\\GitHubDesktop...原创 2019-08-21 10:28:20 · 5143 阅读 · 0 评论 -
遍历ini下所有节点值
#define MY_PATH 4096BOOL Cxxx:TerminatePro(){ TCHAR chSectionNames[MY_PATH]={0}; //所有节名组成的字符数组 TCHAR *pSectionName; //保存找到的某个节名字符串的首地址 int i; //i指向数组chSectionNames的某个位置,从0开始,顺序后移 int j=0; ...原创 2018-07-03 16:16:51 · 5563 阅读 · 0 评论 -
c++提取应用程序中的图标(绘制图标ico)
//提取应用程序中的图标 CSttring m_strIcoPath = L"xx.exe"; CRect m_rcItem; //绘制区域 HICON hIcon = ::ExtractIcon(GetModuleHandle(NULL), m_strIcoPath, 0); if (hIcon != NULL) { Graphics graphics(hDC); Bit...原创 2018-06-20 10:36:40 · 5771 阅读 · 0 评论 -
如何创建空文件夹CreateDirectory
//CString strPath = _T("C:\\test");WCHAR strPath[] =_T("C:\\test");if (!::CreateDirectory(strPath,NULL)) //创建空文件夹{DWORD nErro = ::GetLastError();//AfxMessageBox(_T("创建文件夹失败"));::Message原创 2013-12-03 11:31:01 · 2052 阅读 · 0 评论 -
如何删除空文件DeleteFile
//CString strPath = _T("C:\\test.txt"); //删除空文件 WCHAR strPath[] = _T("C:\\test.txt"); if (!::DeleteFile(strPath)){DWORD nErro = ::GetLastError();//AfxMessageBox(_T("删除空文件夹失败!"));::Messag原创 2013-12-03 11:33:03 · 1016 阅读 · 0 评论 -
PeekMessage&GetMessage
PeekMessage与GetMessage的对比相同点:PeekMessage函数与GetMessage函数都用于查看应用程序消息队列,有消息时将队列中的消息派发出去。不同点:无论应用程序消息队列是否有消息,PeekMessage函数都立即返回,程序得以继续执行后面的语句(无消息则执行其它指令,有消息时一般要将消息派发出去,再执行其它指令)。Get转载 2014-01-10 12:44:32 · 602 阅读 · 0 评论 -
如果通过ShellExecute打开一个连接
CString strURL = if (::ShellExecute(NULL, NULL, strURL, NULL, NULL, SW_SHOWNORMAL) {TRACE(_T("Can't open URL: %s\n"), strURL);}原创 2014-05-28 17:04:45 · 1029 阅读 · 0 评论 -
c++ 如何监控本机共享文件夹变化(通过监控注册表来实现)
1、共享文件夹的新建和停止都会在系统注册表中记录,找到这个注册表,监控他的变化就可。 #define key = _T(" HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\LanmanServer\Shares")2、用打开上述注册表文件() handel hshare = RegOnKepey(key); //具体可以参考原创 2016-07-10 16:49:21 · 2449 阅读 · 0 评论 -
重启/关闭Windows
HANDLE hToken = NULL;::OpenProcessToken(::GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);TOKEN_PRIVILEGES tkp;LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0原创 2016-09-29 16:38:10 · 662 阅读 · 0 评论 -
64位系统文件 重定向问题(遍历system32目录文件问题)
文件重定向同样,文件系统也存在2个独立的部分(1)32位程序对%systemroot%/system32 的操作存在重定向32位文件会被重定向到%systemroot%/SysWOW64(2)64位程序对文件操作不存在重定向(3)补充%systemroot%/SysWOW64下的都为32位程序,在里面可以找到32位的cmd、calc关闭重定向即可!!eg:BOOL IsWow64(){ typed...原创 2018-06-15 16:35:22 · 2213 阅读 · 0 评论 -
枚举本地盘符
// dirtest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <Windows.h>#include <string.h>#define _WTL_NO_CSTRING#include <atlbase.h>#include &...原创 2018-06-15 16:42:53 · 772 阅读 · 0 评论 -
c++ 枚举系统字体
//1、定义: CStringArray m_mSysFonts //2、回调: static INT CALLBACK NEnumFontNameProc(LOGFONT *plf, TEXTMETRIC* /*ptm*/, INT /*nFontType*/, LPARAM lParam/**/); HDC hdc = ::GetDC(*this); int nRet = ::EnumFont...原创 2018-06-19 10:07:35 · 2225 阅读 · 1 评论 -
如何删除空文件夹RemoveDirectory
//CString strPath = _T("C:\\test"); //删除空文件夹WCHAR strPath[] = _T("C:\\test.txt"); if (!::RemoveDirectory(strPath)){DWORD nErro = ::GetLastError();//AfxMessageBox(_T("删除空文件夹失败!"));::Messa原创 2013-12-03 11:34:20 · 2159 阅读 · 0 评论