问道自动喊话交易器喊话器...速度

爱帮生活搜索
抱歉,您输入的网址可能不正确!以下服务您可能会喜欢:秒钟后自动跳转爱帮首页
最火爆最实惠的团购信息?请火速加入
商家的***、地址,地图定位?请询问
公交地铁线路、换乘方案、驾车地图?请移步
或者,逛逛爱帮网的
爱帮网是中国领先的本地生活搜索服务提供商。在全国各大城市,爱帮网为您提供最为详尽准确的***、地址,电子地图等本地商户黄页信息,以及公交查询、团购打折、生活经验等本地生活类信息。1651人阅读
之前写了喊话器单开版的(http://blog.csdn.net/a/article/details/8043354&),最近有个客户找我让我帮他写了个多开版的喊话器。
过程有点小曲折,功能的实现过程如下:
1. F5继续所有窗口喊话,F6暂停所有喊话,F7启动当前窗口喊话,F8终止当前窗口喊话。 & &每按一次F7,就创建一个线程,按F8,就让线程自然结束,用全局变量标志。 启动,暂停喊话,都可以用全局变量来标志。 (按键用低级键盘钩子来捕获,注意创建线程传指针参数时,指针应该是全局或者是静态的,否则就指针一无效就要悲催,表示找这错误找了一天。血的教训。)(关闭线程时让它自然结束,这样资源才是回收率最高的。嗯嗯,用个全局变量来标志,好习惯)
2. 线程互斥 来实现去全屏功能。 用的是事件对象 CreateEvent 自动重置型,按回车前等待信号,按下ALT时,键盘钩子捕获到之前也马上等待信号。原理上完全可以现实互斥,但是事实上还是有一定概率全屏,20开的机子,概率为11%全屏。 5开以下,概率为1%全屏。 已经是自己能实现屏蔽全屏的最有力方案了。不过还没有100%,这里标记一下,以后再看看有没有更好方案。(表示ALT键是系统键,有点不受控制!! 以后再也不敢惹它了。)
WaitForSingleObject(g_hEvent,INFINITE);
::SendMessage(tp.hwnd,WM_KEYDOWN,VK_RETURN,0);
::SendMessage(tp.hwnd,WM_KEYUP,VK_RETURN,0);
SetEvent(g_hEvent);
3. 读写文件。fputs 不会自动换行,fgets读出来的时候,会把回车也读出来!! &明白这特性就好处理了。
总结: 软件用起来还是挺顺手的,大小不超过30K。对线程同步互斥有更一步了解。还好正在学操作系统课,哈哈。稳定还是很稳定,自我感觉比市面上的好用多了。不多说了。不过以后再也不写喊话器了,感觉写到的东西不多。 还是好好继续看完三本天书吧。好好学Linux吧。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:84717次
积分:1301
积分:1301
排名:千里之外
原创:43篇
转载:14篇
评论:11条
(1)(1)(6)(1)(3)(2)(5)(2)(3)(7)(2)(1)(1)(1)(3)(8)(1)(1)(8)

参考资料

 

随机推荐