研究下以前抄的C++版Windows服务
前言
以前做项目需要用到Windows服务,于是随便在网上找了一篇C++版的Windows服务代码,封装的很好,直接拿来用就可以。现在项目需求发生了一点小变化,需要服务时刻监听启动的exe是否异常,如果异常就重新启动。于是研究下代码,顺便熟悉下Windows服务。
以前做项目需要用到Windows服务,于是随便在网上找了一篇C++版的Windows服务代码,封装的很好,直接拿来用就可以。现在项目需求发生了一点小变化,需要服务时刻监听启动的exe是否异常,如果异常就重新启动。于是研究下代码,顺便熟悉下Windows服务。
虽然ActiveX已被淘汰,但是又没有新的解决方案来替代ActiveX,好多公司都会使用ActiveX解决网页调用本地资源。ActiveX最容易注册出现问题,所以我们接上一篇关于微软的Manifest的那些事,我们谈下如何运用清单Manifest,来实现免注册调用COM组件,也就是调用ActiveX。
在Windows中,manifest(清单)是一个XML文件,根据清单类型不同,可以分为四种:
Manifest | 描述 |
---|---|
程序集清单 | 描述名称、版本、资源、依赖的side-by-side程序集 |
应用程序清单 | 描述共享的side-by-side的程序集版本和名称,可能包含私有side-by-side的程序集元数据 |
应用程序配置文件 | 重定向每一个应用程序依赖的程序集版本 |
发布者配置文件 | 使用发布者配置重定向一整块的程序集版本 |
最近老是遇到安装软件后环境不正常,有些软件安装时并不检测是否在运行,结果安装完之后需要重启电脑,还有一些不提示重启电脑但是安装完之后发现环境还是不正常。排查问题需要关注注册表,再次把我经常需要用到的注册表项列出来。
使用程序去安装根证书的目的是:使用自签的证书给软件进行签名,安装根证书之后,电脑就会信任该自签名软件,不会进行拦截。当然可以的话,掏钱买证书比较好。我见过有些软件会安装根证书,但都是key驱动或者CA厂家。安装根证书需要用户手动点击确定按钮,就好比你是否同意我们的协议。
以下的证书都是cer证书,base64内容。其他格式可以转成cer格式
最近忙着写项目,wxWidgets计划还有wxWidgets日志系统的拦截重定向,剩下一些比较杂的知识点,想到哪写到哪。比如进程间通信、调用外部程序后结束本程序(用于升级程序)、集成带窗口的ActiveX、创建单进程程序等,这些文档上基本都有。下面开始多线程的应用。
目前很多应用程序界面的标题栏都是自绘的,wxWidgets如果想要达到360安全卫士那种效果就需要重新定义一个Frame。
首先定义一个自定类,这个类继承wxFrame,在里面重写wxFrame:
最近在看Cairo,准备做ofd生成图片。技术选型选了几天,编译过Mesa3D,但是好像不太适合。最后选择Cairo 2D绘图库,因为是在Linux下跑的,特地安装了个CentOS7编译Demo,发现可以运行。Cairo有直接绘制图片,也有渐变和矩阵转换,比较适合。
Windows编译和Linux编译参考官网:https://www.cairographics.org/download/
绘图之前需要理解几个概念:
暂时这些就够了,首先surface,我的理解是画布。有的画布是图片,有的画布是窗口。