- 博客(82)
- 资源 (1)
- 收藏
- 关注
原创 Windows C++实现文件共享
一、背景在Windows上做应用开发,有时会遇到一种场景:要使用的文件放在其他机器上,由另外的机器取访问存放文件的电脑。存放文件的节点系统可以是Windows、Linux或其他系统,但为了用户能方便查看文件,一般还是会选择Windows系统。一台硬件低配的机器即可,搭载多张磁盘,做成磁盘阵列来实现数据冗余(以防数据丢失)。二、数据访问接下来要考虑的是,把数据放到其他机器上后,要如何访问到那些数据呢?方法很多!比如在存放文件的系统上搭载一个ftp或者http服务器。但这种方案有个很明显的问
2022-03-11 08:22:54
2863
原创 web远程访问Windows桌面
一、远程桌面的方法Windows远程桌面连接可以使用微软自带的mstsc,还有比较常用的teamviewer、toDesk、向日葵和vnc等。其中teamviewer是商用软件,现在需注册登录,个人感觉不是很好用。这些都是客户端桌面软件,这边要说的是,采用web浏览器的方式连接远程桌面。二、web远程方案这边要说的是,使用开源代码的方式实现:mstsc,用的是node框架,其使用的是node-rdp。github地址:GitHub - citronneur/mstsc.js: A pur
2021-11-12 16:15:44
33261
1
原创 mstsc.js远程桌面NODE_RDP_PROTOCOL_X224_NEG_FAILURE错误
node使用mstsc.js实现远程桌面连接,在Windows 10专业版和Windows server 2019 标准版上一切正常,但在连接Windows 2016时,出现NODE_RDP_PROTOCOL_X224_NEG_FAILURE()的错误提示。经查找资料和测试,原来是mstsc.js使用了node-rdpjs,而node-rdpjs当前仅支持ssl层,不支持RDP层,所以需要在组策略中设置使用的安全协议。步骤如下:编辑组策略 --- 计算机配置 --- 管理模板 --- Windows
2021-08-07 09:26:06
3050
1
原创 Error: Can‘t find Python executable “python“, you can set the PYTHON env variable
nodejs在使用npm拉取工程依赖robot-js时,报错提示找不到python,找不到vs编译环境,但事实上机器上已经安装了python和vs。开始以为是没添加环境变量,导致node找不到安装位置导致的,但添加环境变量后,依旧提示相同的错误。查看robot-js的依赖信息,指明robot-js使用的是python2.7。安装python2.7,添加系统环境变量,结果依旧提示错误。几经搜索,得到一个解决方法:运行下面代码:npm install --global --production
2021-08-06 18:09:28
224
原创 Windows 使用Redis
Redis官方并没有支持Windows版本不过微软对Redis做了,以适用于Windows平台,已将源码开源与Github,目前版本是3.2.100,稳定版本为3.0.504。GitHub地址为:https://github.com/microsoftarchive/redis/releases对源码checkout后,用VS2019会编译不过,不过只要稍加修改即可。需要注意的...
2020-04-18 22:27:29
155
1
转载 windows 系统服务访问网络共享资源
普通用户进程可以在设置好的网络共享中直接通过IP或电脑用户名访问共享的资源,但是在系统服务下不能直接访问,需要通过地址映射到本地才可进行访问。以下是实现代码(转载自:https://blog.youkuaiyun.com/venice0708/article/details/85213433)#include <Windows.h>#include <tchar.h>...
2020-04-09 18:42:45
606
原创 Inno Setup 制作自动安装脚本
需求如标题,即用inno setup 制作一个双击安装包后,就可以自动执行安装的安装包,不需要更多的人为介入。在inno setup的[setup] session中设置了各种选项,但生成的安装包运行后都会有一个安装向导(如下图),需要人为点击一次按钮。网上搜索了好久,终于有个符合要求的方案。提供主要脚本[setup]DisableDirPage=yesDefaultGrou...
2020-02-20 21:48:07
1606
原创 chromuim内核video audio标签自动播放
chromuim 66 版本以后的内核,在默认情况下<video>和<audio>标签已经不能自动播放了。需要用户点击触发后才播放,或者要把播放设置为静音模式才可自动播放。但很多情况下,我们希望用户看到这个标签后,就可以自动播放标签资源。还好,内核预留了设置开关。我们可以使用 --autoplay-policy=no-user-gesture-required 来关...
2019-06-13 14:49:54
1620
原创 C++ 实现的快速排序算法
快速排序算法思想的资料很多,这边只展示用C++ 实现的快速排序算法:#include <stdio.h>#include <stdlib.h>void quickSort(int arr[], int nLen){ if (nLen <= 1) { return; } int n = arr[0]; ...
2019-05-17 10:15:01
335
原创 基于socket实现http服务器
要实现http服务器,首先得了解http协议。同样,要用socket实现服务器,那就得熟悉socket了。最近的项目中要实现一个类似http服务器的功能,项目是Windows平台下。心血来潮,顺便在Linux下也实现了一个简单server。目前,仅支持GET、HEAD和POST方法,待有空时继续完善。使用socket,采用多线程处理每个客户端的连接请求,未处理客户端connection...
2019-05-13 16:28:15
1509
转载 Fiddler 抓包https配置 提示creation of the root certificate was not successful 证书安装不成功
在使用Fiddler抓包时,我们有时需要抓https协议的包,这种需要配置一下 开启监控https才可以首先 找到Tools——>Options 在弹出的菜单中 选择https项 勾选捕捉https 这样配置完OK之后 一般会弹窗提示安装证书,点击安装,然后重启Fiddler即可。但有时候没有弹窗安装证书或根本就没有提示,这种情况一般在Win7中较多出...
2018-12-20 11:13:12
379
原创 兼容模式运行程序
在运行程序时,为了在win Vista以上版本弹出UAC窗口,我们往往设置程序不使用管理员权限打开。因为在程序在一定目录下,不使用管理员运行也是能达到自身的目的(不读写磁盘),但在诸如系统盘下,我们的程序可能就运行的不好,需要管理员权限才能正常运行,但在程序中设置了管理员权限运行,用户电脑没关闭UAC的话,运行又会出现烦人的弹窗。所以,我们可以先判断,如果用户电脑有打开UAC,而且程序运行的在磁盘...
2018-07-17 11:18:08
1852
转载 一些有用的注册表参数(关于IE的)
;在IE中添加网际快车右键菜单 [-HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\MenuExt] [HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\MenuExt\\] @=- [HKEY_CURRENT_USER\\Software\\Microsoft...
2018-07-14 10:38:27
2427
1
转载 chtmlview C++交互
文章来源:https://blog.youkuaiyun.com/andycoder/article/details/258762211、创建一个继承自CHtmlView的类;2、构造函数中添加CNewHtmlView::CNewHtmlView(){ // 允许自动化 EnableAutomation();}3、重载 virtual HRESULT OnGetExternal( LPDISPATCH *lp...
2018-07-02 16:28:30
964
原创 为帮助保护你的安全,您的Web浏览器已经限制此文件显示可能访问您的计算机的活动内容
在开发时,会遇到是要HTML来做UI,是要js与C++进行交互。在加载完页面后,一些电脑中会出现“为帮助保护你的安全,您的Web浏览器已经限制此文件显示可能访问您的计算机的活动内容”(用IE打开,自己程序里面用的是chtmlview是看不到的),这导致页面中用于与C++代码交互的按钮事件不能在C++代码中接收。这是因为浏览器的安全限制造成的,可使用如下方法:因为HTML页面是本地的,我们可以在页面...
2018-07-02 16:23:40
11077
转载 代码实现pe文件图标替换
最近,好多人问我如何通过写个小程序,动态替换可执行文件的图标。这个问题看起来虽小,但却涉及到很多问题。网上也只能找到一些零零散散的资料,却没有详细的指导性文档。所以我决定把这个问题写下来,以方便大家查阅。 EXE文件图标的替换有很多方法,例如用一个EXE文件的图标替换另外一个EXE文件的图标;用一个ICO文件内的图标替换EXE文件的图标。这两种情况替换的方法不太相同,下面会详细讨论。 EXE文...
2018-05-17 14:31:13
2643
1
翻译 获取进程命令行参数
#include <Winternl.h>void GetProcessCommandLine(DWORD pid){ pid = 1688; HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); if (INVALID_HANDLE_VALUE != hProc) { HANDLE hNewProcess = NUL...
2018-04-14 15:30:05
4533
2
翻译 在非控制台程序中开启控制台进行信息的输出
有些时候,我们需要在程序运行的时候查看相关的信息,但又不想输出懂日志文件中,这时可以用控制台输出的方式进行显示信息void InitConsoleWindow(){ int nCrt = 0; FILE* fp; AllocConsole(); nCrt = _open_osfhandle((long)GetStdHandle(STD_OUTPU
2015-09-24 08:06:50
864
1
转载 c++与js脚本交互,C++调用JS函数/JS调用C++函数
一、javascript调用c++,方法有两种方案1:1.html编写TESTfunction TestFunc(){ alert("TestFunc");} 2.C++的CHtmlView类重写OnBeforeNavigate2函数void CAddGoogleMap_CHtmlView::On
2014-06-10 13:38:10
11102
4
原创 VC 用微软插件或CHtmlView 开发浏览器时如何指定使用的IE内核版本
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
2014-05-27 19:26:19
5589
转载 VC 实现Windows 文件监控
应用层vc实现三种文件监视方法下面介绍三种非驱动实现文件监视的方法。=================================================================通过 未公开API SHChangeNotifyRegister 实现==================================================
2014-02-17 11:54:30
2615
原创 OpenProcess 返回拒绝访问的错误提示
有时需要使用OpenProcess来查看进程的相关信息,或者结束进程的运行,但是会碰到“拒绝访问”的错误,这时需要提升进程的权限为Debug权限。BOOL EnableDebugPrivilege(){ HANDLE hToken; BOOL fOk=FALSE; if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_P
2014-02-07 11:25:57
8417
原创 VC 判断进程是否是以管理员权限运行,并且判断是否是用户进程而非服务进程
在Win7中,我们有时需要判断哪些进程是以管理员权限运行的,有时需要判断该进程是服务进程还是用户进程。下面这段代码可以实现在Win7中获取一个以管理员权限运行的客户进程。BOOL FindUacToken(HANDLE &hToken){HANDLE hProcessSnap = NULL;BOOL bRet= FALSE;PROCESSENTRY32pe32 =
2014-01-17 20:10:31
5486
翻译 VC 用服务进程开启有UI的进程和写注册表HKEY_CURRENT_USER子键的问题
有时我们需要通过服务进程来启动某个进程,且该被启动的进程有UI,或者需要用服务进程来写HKEY_CURRENT_USER子键,此时我们就会碰到一个问题:被启动的进程看不到UI,但在进程列表中却能看到该进程;而HKEY_CURRENT_USER键则必须用当前用户才能写成功。如果使用CreateProcess来创建进程的话,新创建的进程和服务程序依然是相同的用户身份,还是无法达到目的,只有使用Cr
2014-01-13 19:45:53
2036
转载 VS2008提示无法打开包括文件:“afxcontrolbars.h”解决办法
我发生过几次这个问题,都是以前用了vs2008SP1写的程序,现在用没有SP1的vs2008编译引起的。解决它的根本方法当然就是装SP1,但是这个SP1装起来需要1个钟头,很麻烦。而且装上要耗掉1G多硬盘空间。我的程序是对话框程序,和那些高端的controlbar根本没什么关系,我猜大概改源代码也可以。后来我尝试了一下,直接在stdafx.h中改了一处,把#include 注掉,后面加了一行
2014-01-08 20:22:41
867
原创 Win7 PCA 弹窗问题
VC开发应用程序,有时碰到在win7下会出现关闭程序后,系统会弹出PCA窗体(程序兼容性助手)。当我们以某个兼容模式运行该程序,退出后就不会出现改提示窗。查过好些资料,有的说是运行的库冲突导致的,可能是吧。这边只说下我的解决方法: version="1.0.0.0" processorArchitecture="X86"
2014-01-04 15:28:33
1995
转载 vc内存泄漏定位
Detected memory leaks!Dumping objects ->{98500} normal block at 0x05785AD0, 152 bytes long.Data: 3C AC 4E 10 00 00 00 00 BC A4 4E 10 78 B6 37 00Object dump complete.解决方法:在程序开始启动的地方(足够前的地方
2013-12-30 13:35:41
809
翻译 VC 创建Windows服务程序2
文章来源:http://www.vckbase.com/index.php/wv/1391本文主要介绍了 OpenSCManager、CreateService、OpenService、ControlService、DeleteService、RegisterServiceCtrlHandler、SetServiceStatus、StartServiceCtrlDispatcher等操作服
2013-12-24 13:34:58
1046
翻译 VC 创建Windows服务程序
本文章来源于:http://www.vckbase.com/index.php/wv/1166http://www.vckbase.com/index.php/wv/1391本文描述如何用 Visual C++ 创建 Windows NT 服务程序。创建该服务仅用到一个 C++ 类,这个类提供服务与操作系统之间一个简单的接口。使用这个类实现自己的服务非常简单,只要改写少数几个基类中的虚
2013-12-24 12:49:07
7869
翻译 VC 添加一个选择的目录
int CALLBACK BrowseCallbackProc(HWND hwnd, UINT msg, LPARAM lp, LPARAM pData) {TCHAR szDir[MAX_PATH] = TEXT("C:\....");if (msg == BFFM_INITIALIZED ) //初始化时选定一个目录{ ::SendMessage(hwnd,
2013-12-13 14:20:38
1128
原创 VC 打开文件框选择文件
VC中,选择文件的方法:1. MFC下:CFileDialog fDlg(TRUE, _T(".apk"), NULL, OFN_HIDEREADONLY | OFN_FORCESHOWHIDDEN | OFN_PATHMUSTEXIST | OFN_ALLOWMULTISELECT, _T("Apk Files(*.apk)|*.apk|All Files(*.*)|*.*||"
2013-11-07 10:41:21
1298
原创 判断PC使用的默认浏览器方法
要知道PC使用的是哪个默认浏览器,可以从注册表中读取相应键值来判断。HKEY_CLASSES_ROOT\http\shell\open\command,但是从这个键值中读取的值往往与设置的默认浏览器不符。在我们修改了默认浏览器后,这个值并不总是发生改变。这样,我们从该值去做判断,必然出错。我们可以从HKEY_CURRENT_USER\Software\Microsoft\Windows\She
2013-11-04 10:46:15
1362
原创 使用STL::map来实现函数映射调用
有时我们编写一个C++类,在处理函数调用时会使用一串字符匹配来调用相应的函数。这时我们可以使用map来实现,字符串作为KEY,函数指针作为值。采用这种方式,在构造map时,还有调用对应函数时,可能出现一些问题。这边记录了一个例子,是本人在解决问题后所记录下来的:先定义这个类:class ClassName{....protected:void Fun1();void
2013-10-30 17:44:27
1808
1
翻译 C++解析JSON的好文章
使用C++处理JSON数据交换格式一直以来都是做windows桌面应用软件,之前也从未接触过json,但是由于工作需要,要与服务器进行交互,服务器字符使用的是json,这就需要对其进行解析...下面是从网上找来的文章,挺好的,只需按照说明进行试验就明白json库要如何使用了。首先,附加下自己的测试代码...int _tmain(int argc, _TCHAR*
2013-10-17 10:25:07
823
翻译 C++与Flash的交互
1. 新建一个MFC Dialog程序2. 添加一个Flash控件 3. 把Flash控件添加一个变量 4. 在OnInitDialog()中添加载.swf文件[cpp] view plaincopy// CCppFlashDlg 消息处理程序 BOOL
2013-09-17 11:22:05
933
翻译 VC 链接时new和delete运算符已经在 LIBCMTD.lib 中定义解决方法
error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj)
2013-08-14 14:02:49
5629
原创 MFC 检测USB接口设备连接变化
添加 WM_DEVICECHANGE 消息afx_msg BOOL OnDeviceChange(UINT nEventType, DWORD_PTR dwData);BEGIN_MESSAGE_MAP(Cwndclass, Cbaseclass)ON_WM_DEVICECHANGE()END_MESSAGE_MAP()// 获取盘符LONG
2013-08-13 18:45:19
5653
用 C++ 创建简单的 Win32 服务程序
2013-12-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人