![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术文章
WSG121212
大家好,我是一名程序员
欢迎访问我的网站
http://www.wsgsoft.com
开发了几个小软件:
1、用摄像头录像的软件 MiniVCap
2、从网站、论坛批量下载图片的软件 PSearcher
3、免费定时关机、定时重启的 软件 MiniShutoff
展开
-
获得Windows操作系统版本号的C++代码源码
获得Windows操作系统版本号的C++代码源码。原创 2023-09-27 11:16:37 · 168 阅读 · 0 评论 -
实现 trim_left 函数的C++代码源码
实现 trim_left 函数的C++代码源码。原创 2023-09-27 11:14:15 · 131 阅读 · 0 评论 -
实现窗口屏幕居中的C++代码源码(考虑任务栏)
实现窗口屏幕居中的C++代码源码(考虑任务栏)原创 2023-09-27 11:08:14 · 408 阅读 · 0 评论 -
判断是否以管理员身份权限运行的C++代码源码
判断是否以管理员身份权限运行的C++代码源码原创 2023-09-15 09:08:10 · 202 阅读 · 0 评论 -
打开文件、文件夹权限的C++源码 (去掉禁用权限)
打开文件、文件夹权限的C++源码 (去掉禁用权限)原创 2023-09-15 09:05:27 · 137 阅读 · 0 评论 -
从资源Resource中加载、使用字体的C++代码源码
从资源Resource中加载、使用字体的C++代码源码原创 2023-09-12 11:50:51 · 97 阅读 · 0 评论 -
GDI+、GdiPlus判断字体是否存在的C++代码源码
GDI+、GdiPlus判断字体是否存在的C++代码源码原创 2023-09-12 11:46:39 · 91 阅读 · 0 评论 -
检查文件名是否含不可打印字符的C++代码源码
检查文件名是否含不可打印字符的C++代码源码原创 2023-09-12 11:37:18 · 115 阅读 · 0 评论 -
Edit文本框支持回车Tab字符输入的方法C++源码
我在开发《518抽奖软件》(www.518cj.net)的时候,要在文本框里输入一行行的名单,要支持回车换行、Tab字符的输入。但是默认对话框上的文本框,是没法输入回车和Tab字符的。而且,从Unix格式的文本里复制文字到文本框的时候,它的换行符跟Windows的不一致,这也是个文本格式兼容问题。解决方法就是窗口子类化技术,用新的窗口过程代替旧的,具体代码如下。本篇文章属于《518抽奖软件开发日志》系列文章的一部分。原创 2023-09-11 18:24:28 · 148 阅读 · 0 评论 -
文本框粘贴时兼容Unix、Mac换行符的方法源码
我在开发《518抽奖软件》(www.518cj.net)的时候,要在文本框粘贴从别处复制来的名单。发现一个问题,就是一些Unix传过来的多行文本,粘贴后都变成了一行。原来,它的换行符跟Winodws的不一致导致的。解决方法就是,窗口子类化,在新的窗口过程中,专门处理这个粘贴消息,兼容Windows、Mac、Unix三种不同的文本换行符。本篇文章属于《518抽奖软件开发日志》系列文章的一部分。原创 2023-09-11 18:05:35 · 428 阅读 · 0 评论 -
获得CPU-ID(序列号、机器码)的C++代码源码
我在开发《518抽奖软件》(www.518cj.net)的时候,在软件的注册部分,需要获得CPU的序列号(ID/机器码)。在网上找了一些代码,很多不好用,最后选了下面的一个,并经过自己的优化测试。主要通过上面的汇编指令,然后经过hash运算可以缩小序列号的长度。本篇文章属于《518抽奖软件开发日志》系列文章的一部分。原创 2023-09-11 17:50:14 · 919 阅读 · 2 评论 -
防破解方法:文字提示信息都经过编码加密处理
防破解方法:文字提示信息都经过编码加密处理原创 2023-08-31 12:04:45 · 115 阅读 · 0 评论 -
获得硬盘ID(序列号、机器码)的C++代码源码
获得硬盘的序列号(ID/机器码)的C++源码原创 2023-08-31 12:00:39 · 682 阅读 · 0 评论 -
防破解暗桩思路:检查菜单是否被非法修改过源码
为了防止被破解,需用添加一些暗桩,比如菜单项是否被非法修改。原创 2023-08-31 11:53:40 · 116 阅读 · 0 评论 -
TimingLaba(定时播放软件)控制文件夹内音乐播放间隔的方法
TimingLaba(定时喇叭)作为一款专业的定时播放音乐软件(http://www.wsgsoft.com/laba/),用于幼儿园、培训机构定时播放打铃、课间操、背景音乐外,也可以定时播放一些学习音频。例如,某培训机构,每间隔5分钟,播放文件夹内的一个英语故事。实现方法是,对文件夹内的每个音乐,在其末尾追加一段无声的空白音频,可以用Audacity这个软件实现。TimingLaba(定时播放音乐软件) - 介绍TimingLaba(定时喇叭),电脑定时播放音乐软件,音乐定时播放器。定时自动播放音原创 2021-05-16 10:40:15 · 1427 阅读 · 0 评论 -
518超市播音软件如何放大音量到150的,传统播音软件声音太小(0-100)
518超市播音软件(http://www.518boyin.com/)最新版6.2 支持放大语音音量,最多可放大150%,而传统的播音软件声音太小。就是说播放音乐的时候音量挺大,到播放语音就感觉音量降低了很多。这可能是由于讲话天然没有歌曲喊的声音大。我们的解决方法是先把文字转为音频文件,然后对这个临时的音频文件进行音量放大(通过basslib的音量放大功能)。518超市播音软件的语音音量的范围是0-150,而不是传统的音量范围0-100。它的老的品牌名是《定时播音大师》(http://www.wsgsoft原创 2021-05-16 10:30:18 · 1232 阅读 · 0 评论 -
时方校园定时广播系统是如何支持节假日和调休功能的
TimingLaba(定时喇叭) 官网是 http://www.wsgsoft.com/laba/是唯一支持节假日不播放和调休功能的定时播放音乐软件。可用于幼儿园、工厂等的定时广播课间操、打铃、背景音乐、换班提醒等。他的最新品牌名是《时方校园定时广播系统》(http://www.wsgsoft.net/broadcasting/)。下面对软件功能和界面详细介绍。TimingLaba(定时喇叭),电脑定时播放音乐软件,音乐定时播放器。定时自动播放音乐文件或文件夹,支持电脑自动开关机,可用于学校、工厂和军.原创 2021-05-16 10:23:17 · 859 阅读 · 0 评论 -
AdVoice广告录音制作软件如何音乐语音混音穿插制作广告
AdVoice(语音广告制作软件)的官网是 http://www.wsgsoft.com/av/,是一个强大的制作语音广告的软件,用于制作宣传车上播出的促销活动广告加音乐、门店开业的宣传广告加音乐、也可以给一段演讲录音等配上背景音乐。它的新品牌名是《文字转语音助手》(http://www.wsgsoft.net/t2s/)。合成参数包括:语音文件、背景音乐文件、语音音量、语音循环次数、语音每次间隔、音乐音量、音乐提前播、音乐延后播、交叉时音乐减弱、结尾追加空白等。下面介绍软件的功能。AdVoice.原创 2021-05-16 10:16:42 · 1328 阅读 · 1 评论 -
TimingLaba音乐定时播放软件支持多路分区的方法
TimingLaba是一款专业的音乐定时播放软件(http://www.wsgsoft.com/laba/),好像是唯一支持多路分区的。它的新品牌名是《时方校园定时广播系统》(http://www.wsgsoft.net/broadcasting)。下面介绍下这款软件和它的多路分区功能。TimingLaba(定时播放音乐) - 软件基本介绍TimingLaba(定时喇叭),电脑定时播放音乐软件,音乐定时播放器。定时自动播放音乐文件或文件夹,支持电脑自动开关机,可用于学校、工厂和军营等的喇叭定时广播。原创 2021-05-16 10:12:56 · 419 阅读 · 0 评论 -
设计纠结:语速范围大了怕用户犯错,小了怕不够用
本篇文章属于《518超市播音软件开发日志》系列文章的一部分。我在开发《518超市播音软件》(http://www.518boyin.com/)的时候,有个设计纠结的地方,就是语速的范围,如果范围很大[-10,10],怕用户不小心调的很慢或很快,完全没法听了,还不知道什么原因,就是一些用户很小白的。如果范围小了[-2,2],怎么调都能听一下,但是,如果个别用户就是要很慢很慢的语速呢,虽然那种用户很少很少。这就是一种纠结。 解决方法如下。语速范围调为[-8,2],因为语速太快实在没什么用,但是语速慢.原创 2021-05-13 09:09:54 · 74 阅读 · 0 评论 -
打开文件所在的文件夹并选中该文件的C++代码源码
本篇文章属于《518超市播音软件开发日志》系列文章的一部分。我在开发《518超市播音软件》(http://www.518boyin.com/)的时候,在一个音乐播放列表里面,需要一个打开文件所在文件夹的功能,经过研究,下面的代码还可以。static void do_openFileLocation(){ int idx = ListView_GetNextItem(try_hLv, -1, LVNI_SELECTED); if (idx < 0) { MessageBox(tr.原创 2021-05-13 09:08:14 · 257 阅读 · 0 评论 -
NSIS安装失败或文件被占用时,提示用户改安装路径
本篇文章属于《518超市播音软件开发日志》系列文章的一部分。我在开发《518超市播音软件》(http://www.518boyin.com/)的时候,用的NSIS打包制作安装包,安装的时候,个别用户的电脑也怪,常规的安装路径居然安装失败了,或者某个要写入的文件被占用中。 解决方法,是提示用户重试或更改安装路径重新安装。具体NSIS实现代码如下。BrandingText " 518boyin.com"FileErrorText "" "无法写入文件:$\r$\n $0$\r$\n$\...原创 2021-05-13 09:06:12 · 646 阅读 · 0 评论 -
NSIS,判断安装包是否管理员身份运行的代码
本篇文章属于《518超市播音软件开发日志》系列文章的一部分。我在开发《518超市播音软件》(http://www.518boyin.com/)的时候,用的NSIS打包制作安装包,安装的时候,需要确保是管理员权限的,不是的话,就提示需要管理员权限运行,然后退出。Function un.onInitCall un.IsUserAdminPop $R0${If} $R0 == "false"MessageBox MB_ICONEXCLAMATION|MB_OK|MB...原创 2021-04-24 18:54:35 · 583 阅读 · 0 评论 -
WIN32程序,在界面上显示网页的C++代码源码
本篇文章属于《518超市播音软件开发日志》系列文章的一部分。我在开发《518超市播音软件》(http://www.518boyin.com/)的时候,需要在界面上显示一个HTM文件,用到下面的代码。主文件是网上找到后自己修改优化的。调用WCHARhtmFile[MAX_PATH] = { 0 };PathCombine(htmFile, m_pgmDir, L"welcome.htm");m_hWebpage = create_htmPage(m_hInst, m_hWelcome..原创 2021-04-24 18:52:32 · 670 阅读 · 0 评论 -
WIN32,VC程序开发,捕获软件所有异常的C++代码源码
本篇文章属于《518超市播音软件开发日志》系列文章的一部分。我在开发《518超市播音软件》(http://www.518boyin.com/)的时候,有一个异常捕获的要求,就是说如果用户用的是盗版破解,那可能会引起软件异常退出,程序最后要捕获这个异常,并提示用户不要用盗版。开发工具是 VC2015。程序代码 __try, __except __try { if (!g_app.init_app(bTray, bLockWorkStation)) { OleUninitialize()原创 2021-04-21 12:14:13 · 246 阅读 · 1 评论 -
NSIS,防止用户安装软件到不太好的位置(根目录等)
本篇文章属于《518超市播音软件开发日志》系列文章的一部分。我在开发《518超市播音软件》(http://www.518boyin.com/)的时候,用NSIS制作的安装包,程序的默认安装路径一般是C:\Program Files\某某软件, 但是有的用户把某某软件去掉了,结果直接安装到Program Files里面了。或者还有一些不合适的位置,因为用户很小白的,所以,软件里,我会检查这个路径,如果路径中不包含我们软件的名字,就追加这个名字到路径。这样如果用户选择 C:\windows下安装,结果会变成原创 2021-04-21 12:10:06 · 512 阅读 · 0 评论 -
BASS音量(线性音量)和directshow音量的转换
本篇文章属于《518超市播音软件开发日志》系列文章的一部分。我在开发《518超市播音软件》(http://www.518boyin.com/)的时候,在用户层面是用线性音量表达0-100,但是还用到directshow播放音乐,范围是0-10000不是线性的。怎么转换呢? 下面是我的转换代码,基本可以用,但是不包装是最好的最正确的代码。intTapp::lin2ds(intvol, BOOLbMute){if(bMute|| vol<= 1) return-10000...原创 2021-04-20 08:42:47 · 154 阅读 · 0 评论 -
518抽奖软件-支持扩展屏的实现方法
在开发518年会抽奖软件(www.518cj.net)的时候,软件需支持扩展屏,电脑屏后台操作,扩展大屏滚动抽奖。主要包括以下三个功能,主窗口全屏化(主屏内)、主窗口窗口化(主屏内)、主窗口只显示到扩展屏(第二屏)。原创 2016-11-19 12:18:41 · 625 阅读 · 0 评论 -
518抽奖软件源码之:使得除零异常可被捕获(VC++)
在开发“518抽奖软件”的时候,需要捕获硬件异常,例如除零等。 但是发现__try/__except没有捕获各异常,问题出在那里呢?经研究找到了解决方法,开发工具是VC2015,源码如下。原创 2017-10-21 14:51:38 · 388 阅读 · 0 评论 -
518抽奖软件源码之:删除文件夹及下面的所有文件
在开发“518抽奖软件”的时候,每次导入一批新图片的时候,要删除原来的图片文件夹。 本来递归删除即可,应该很快速的,但是在windows 10下发现删除很慢,软件会卡在那里,因为windows 10的安全性,里面很多智能的检查。 软件卡在那里总不行的,只能rename文件夹后,创建一个线程慢慢删除那个文件夹,请参看下面源码。原创 2017-10-21 14:49:29 · 298 阅读 · 0 评论 -
518抽奖软件源码之:窗口化、全屏化、扩展屏
518抽奖软件源码之:窗口化、全屏化、扩展屏原创 2017-10-20 08:27:48 · 505 阅读 · 0 评论 -
518抽奖软件源码之:检查文件名合法性
在开发“518抽奖软件”的时候,需要将每个奖项的结果保存为文件,需要检查奖项名是否是合法的文件名。 传统的检查几个非法字符的方法不够全面,所以写了一个认为比较全面的代码,源码如下。原创 2017-10-21 15:30:44 · 366 阅读 · 0 评论 -
518抽奖软件源码之:GDI+上下左右中对齐
在开发“518抽奖软件”的时候,需要用到GDI+的写文字功能。 GDI+在对齐方面比原来的GDI复杂些,主要是 StringFormat 的参数设置和行高的测定问题,详情参考下面的源码。原创 2017-10-24 15:13:52 · 491 阅读 · 0 评论 -
518抽奖软件源码之:主窗口上含对话框时如何最小化
在开发“518抽奖软件”的时候,需要用到主窗口上含对话框时最小化的功能。 本来很简单的一行代码 ShowWindow(SW_MINIMIZE) 即可,但是这个代码在XP系统下不能用,一旦执行,最小化后就无法再恢复窗口了(窗口无法再打开了)。原创 2017-10-24 15:17:04 · 322 阅读 · 0 评论 -
518抽奖软件源码之:ImageStone显示处理透明PNG图片
在开发“518抽奖软件”的时候,图片抽奖模式的时候,会遇到PNG透明图片。 需要对PNG透明图片进行显示、放大缩小、保存等处理。如何在缩小并保存后还保持透明,如何显示透明图片,请参看下面源码。原创 2017-10-24 15:18:59 · 362 阅读 · 0 评论 -
3D、描边字体特效的简单实现方法
用GDI+VC实现简单呃字体描边、3D特效原创 2015-05-04 14:51:42 · 1473 阅读 · 0 评论