windows
ckkyjtqlt
这个作者很懒,什么都没留下…
展开
-
gdi+ 裁剪圆形图片
Image image(strPath);RECT pos = GetPos();RECT padding = GetPadding();HRGN rgn = CreateEllipticRgn(pos.left,pos.top,pos.right,pos.bottom);Region region(rgn);Graphics graph(hDC);原创 2016-02-04 09:23:01 · 1556 阅读 · 0 评论 -
间接获取flash主版本号
LPOLESTR psz;CLSID CLSID_Excel;CLSIDFromProgID(OLESTR("ShockwaveFlash.ShockwaveFlash"),&CLSID_Excel);ProgIDFromCLSID(CLSID_Excel,&psz);原创 2017-07-04 10:32:18 · 229 阅读 · 0 评论 -
mscomm串口控件初始化
m_comSearial.put__CommPort(2);//端口2m_comSearial.put_InputMode(1);//1:二进制模式,0:文本模式m_comSearial.put_InBufferSize(1024);//输入缓冲区大小m_comSearial.put_OutBufferSize(512);//输出缓冲区大小m_comSearial.put_Sett原创 2017-07-14 11:55:09 · 663 阅读 · 0 评论 -
检测文件到末尾
同步操作// Attempt a synchronous read operationbResult = ReadFile(hFile, &inBuffer, nBytesToRead, &nBytesRead, NULL);// Check for eofif (bResult && nBytesRead == 0, ) { // At the end of the fi原创 2017-07-14 17:14:07 · 427 阅读 · 0 评论 -
字符串转换
宽转多字节wchar_t *pFileName = str;DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,pFileName,-1,NULL,0,NULL,FALSE);if (m_pszText){delete m_pszText;m_pszText = NULL;}m_pszText = new char原创 2017-07-18 10:27:29 · 206 阅读 · 0 评论 -
createthread dll
CreateThread api 内部会调用waitforsingleobject等待互斥量对象。目的是同步顺序执行dll 初始化。当该方法创建完线程内核对象和线程盏后,该函数内部会调用进程映射中所有dll的dllmain方法进行初始化。因此在自己写的dll中不要创建线程并使用waitforsingleobject等待线程创建。因为如果A线程创建的时候调用了dll中的dllmain函数,并且该原创 2017-09-09 11:29:57 · 521 阅读 · 0 评论 -
mfc dll
将独立的exe改写成dll添加一个导出函数extern "C" VOID PASCAL EXPORT Show(){AFX_MANAGE_STATE(AfxGetStaticModuleState());// 此处为普通函数体CScreenShotDlg dlg;dlg.DoModal();}def文件中:; screenshotdll.def原创 2018-01-22 16:06:40 · 213 阅读 · 0 评论 -
boost通过WMI获取时间有问题
使用boost的时候。源码查看后发现boost进程通讯中使用命名队列。boost会创建一个boost_interprocess的目录并且根据磁盘启动时间创建一个子目录并且创建一个命名文件。问题就出现这个启动时间里。在启动量一万+以上的情况下。有2-3百个崩溃出现在这里。inline bool shared_memory_object::priv_open_or_create (ipcd原创 2018-01-05 11:50:18 · 325 阅读 · 0 评论 -
降权启动进程
需求:管理员启动了安装包并安装完后需要启动程序。此时希望是以当前登录用户来启动,而不是以管理员用户来启动(安装包是管理员权限,直接启动因为权限继承原因,程序也会是管理员权限)思路:利用当前explorer.exe进程的token去创建目的进程DWORD GetExplorerToken(int nProcessId,OUT PHANDLE phExplorerToken) { DWO...原创 2018-07-05 10:45:38 · 2035 阅读 · 0 评论 -
Dialog响应WM_CHAR消息
创建一个MFC Dialog 的Porject 。为了截获键盘击键的值,需要用到WM_CHAR消息。但在Project中添加该消息后会发现,程序无法响应该消息。即击键后程序并没有执行到该消息对应的函数处。参考MSDN对该消息的描述:This member function is called by the framework to allow your application to han转载 2017-07-13 10:39:33 · 404 阅读 · 0 评论 -
vc++上传文件
long l_file_len; //获取文件内容 bool file_con(char **buffer,LPCSTR file) { FILE *fp = fopen(file, "rb"); if(fp==NULL) { printf("文件上传失败,请检查文件路径.....\n");原创 2017-07-03 18:55:55 · 454 阅读 · 0 评论 -
VMProtect 与 ASProtect 在VC中的SDK编程
最近想用VMProtect和ASProtect 的SDK加密一个程序,结果搞了半天没搞成,网上没看到在VC中如何使用VMProtect的SDK加密,于是琢磨了一下,总算成功了,最后有一点点心得,与大家共享,免得还有人跟我一样走弯路。 其实VMProtect和ASProtect的SDK编程都差不多,都是在编程时在语句里面插入一个标记(Marker),然后在加壳时,加壳程序就会认出这些标记,并转载 2017-06-23 17:12:09 · 485 阅读 · 0 评论 -
用webbrowser当登陆界面时拖动页面移动
拦截Internet Explorer_Server 窗口的WM_MOUSEACTIVATEHWND s_hwnd;WNDPROC s_oldProc =NULL;s_oldProc = (WNDPROC)SetWindowLong(hGGS,GWL_WNDPROC,(long)MouseProc);LRESULT CALLBACK MouseProc(HWND原创 2016-02-23 09:48:18 · 630 阅读 · 0 评论 -
移除网页滚动条
IWebBrowser2 *pWeb2;IHTMLDocument2* pDoc;IHTMLElement* pBody;IHTMLStyle* pStyle;pWeb2 = pActiveXUI->GetWebBrowser2();pWeb2->get_Document((IDispatch**)&pDoc);pDoc->get_body(&pBody);原创 2016-02-23 09:50:06 · 262 阅读 · 0 评论 -
使用gdi+裁剪圆形图像
Image image(strPath);RECT pos = GetPos();RECT padding = GetPadding();HRGN rgn = CreateEllipticRgn(pos.left,pos.top,pos.right,pos.bottom);Region region(rgn);Graphics graph(hDC);原创 2016-02-23 09:54:01 · 682 阅读 · 0 评论 -
js调用vc++的函数
template struct _ATL_NAMESINK_EVENT_ENTRY{ DISPID dispid; TCHAR* szDispIdName; void (__stdcall T::*pfn)(); //method to invoke_ATL_FUNC_INFO* pInfo;};#define BEGIN_NAMESINK原创 2016-04-27 10:59:11 · 484 阅读 · 0 评论 -
利用png图片作为窗口外观
使用该函数UpdateLayeredWindowSetWindowLong(GWL_STYLE, GetWindowLong(GWL_STYLE)|WS_MINIMIZEBOX);SetWindowLong(GWL_EXSTYLE, GetWindowLong(GWL_EXSTYLE) | WS_EX_LAYERED);HDC hdc = GetDC();CRect rc;原创 2016-04-27 15:46:04 · 464 阅读 · 0 评论 -
BHO
vs2008建立一个ATL工程,选择DLL类型,在工程里面,创建ATL简单对象,按照以下选择构建对象新增继承:public IDispEventImpl1, CMyBHO, &DIID_DWebBrowserEvents2, &LIBID_SHDocVw, 1, 1>增加公共函数:public:STDMETHOD(SetSite)(IUnknown * pUnkSi原创 2016-08-05 17:12:26 · 273 阅读 · 0 评论 -
创建桌面快捷方式
BOOL CreateFileShortcut(LPCWSTR lpszFileName, LPCWSTR lpszLnkFileDir, LPCWSTR lpszLnkFileName, LPCWSTR lpszWorkDir, WORD wHotkey, LPCWSTR lpszDescription, int iShowCmd = SW_SHOWNORMAL){原创 2016-08-08 12:02:36 · 306 阅读 · 0 评论 -
webbrowser拖动无边框页面移动
原理:截取webbrowser窗口的鼠标消息,然后在宿主窗口指定区域返回HTCAPTIONHWND hw = FindWindowEx(m_hWnd,NULL,_T("ActiveXWnd"),NULL);HWND hSon = FindWindowEx(hw,NULL,_T("Shell Embedding"),NULL);HWND hGS = FindWindowE原创 2017-01-07 10:16:39 · 1740 阅读 · 0 评论 -
查找指定进程
DWORD SystemInfo::findProcess(char* strProcessName){DWORD aProcesses[1024]={0};DWORD cbNeeded=0;DWORD cbMNeeded=0; HMODULE hMods[1024]; HANDLE hProcess; if ( !EnumProcesses( aProc原创 2017-04-21 11:15:56 · 250 阅读 · 0 评论 -
程序更新
前提:更新程序使用NSIS打包后下载更新包此处阻塞等待静默包安装覆盖原安装路径下的文件。SHELLEXECUTEINFOA ShExecInfo = {0};ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFOA);ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;ShExecInfo.hwnd =原创 2017-06-28 17:15:11 · 253 阅读 · 0 评论 -
常用函数整理(待续)
1:sscanf_s从字符串中读取数据到变量中uint32 arrayZhanLi[5] = { 0 }; sscanf_s("1,1,1,1,1", "%u,%u,%u,%u,%u", &arrayZhanLi[0], &arrayZhanLi[1], &arrayZhanLi[2], &arrayZhanLi[3], &array...原创 2019-08-20 18:00:06 · 169 阅读 · 0 评论