社区
C语言
帖子详情
控制台程序如果采用事件处理方式的话如何处理呢
dearlee_01
2006-03-06 05:46:38
rt
...全文
87
6
打赏
收藏
控制台程序如果采用事件处理方式的话如何处理呢
rt
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bohlee
2006-03-07
打赏
举报
回复
控制台程序应该是windows系统对dos系统程序的迁移提供支持,其本身不存在事件模型。至于对多线程的支持,dos系统不存在多线程的概念...,但是win下控制台程序可以这么做
冥王之锤
2006-03-06
打赏
举报
回复
你可以不用控制台程序,而是写一个窗口隐藏掉的windows程序,就可以支持消息机制了.
同意!
jixingzhong
2006-03-06
打赏
举报
回复
模拟消息事件 ~
逸学堂
2006-03-06
打赏
举报
回复
控制台程序如果采用事件处理方式的话如何处理
~~~~~~···
楼上的方法。
或者自己模拟消息事件
wshcdr
2006-03-06
打赏
举报
回复
#include <windows.h>
#include <stdio.h>
#include <conio.h>
unsigned long WINAPI Thread(PVOID pvoid);
void main()
{
DWORD dwThreadId;
printf("use timer in workthread of console application<masterz>\n");
HANDLE hThread = CreateThread(
NULL, // no security attributes
0, // use default stack size
Thread, // thread function
0, // argument to thread function
0, // use default creation flags
&dwThreadId);
DWORD dwwait=WaitForSingleObject(hThread,1000*30);
switch(dwwait)
{
case WAIT_ABANDONED:
printf("main thread WaitForSingleObject return WAIT_ABANDONED\n");
break;
case WAIT_OBJECT_0:
printf("main thread WaitForSingleObject return WAIT_OBJECT_0\n");
break;
case WAIT_TIMEOUT:
printf("main thread WaitForSingleObject return WAIT_TIMEOUT\n");
break;
}
CloseHandle(hThread);
_getch();
}
unsigned long WINAPI Thread(PVOID pvoid)
{
MSG msg;
PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE);
UINT timerid=SetTimer(NULL,111,3000,NULL);
BOOL bRet;
int count =0;
while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
if(msg.message==WM_TIMER)
{
count++;
printf("WM_TIMER in work thread count=%d\n",count);
if(count>4)
break;
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
KillTimer(NULL,timerid);
printf("thread end here\n");
return 0;
}
junguo
2006-03-06
打赏
举报
回复
你可以不用控制台程序,而是写一个窗口隐藏掉的windows程序,就可以支持消息机制了.
捕获
控制台
程序
关闭事件(SetConsoleCtrlHandler
有时候运行在服务器上的
控制台
程序
,需要记录详细的运行日志,这就需要对
程序
关闭进行日志记录,以便能根据日志了解
程序
的运行状况。比如正在运行的
程序
被人不小心关闭了,导致最终任务没有运行成功,这时日志也没有错误记录,对分析原因造成不便,记录了关闭事件日志后就能了解到这种情况是
程序
被终止了。这样注意通过消息钩子来实现,通过调用WIN32 API SetConsoleCtrlHandler方法来实现,具体代
[VC++]
控制台
程序
窗口隐藏
HWND hWnd; SetConsoleTITle("HEHE"); hWnd=::FindWindow(NULL,"HEHE"); ShowWindow(hWnd,SW_HIDE); 当创建一个
控制台
程序
时,又不想看到其窗口可用如下代码解决: #ifdef NDEBUG #pragma comment( linker, "/subs
易语言假死无响应
采用
处理
事件()
处理
事件() 一个比较简单的理解是:让
程序
反应过来 这个函数一般是用在延时之后,如果不用的话
程序
很容易形成假死,造成
程序
无响应 如下图,虽然这个
程序
还在运行,但是界面上东西是显示不了的,比如标签,编辑框,画板,会有一个圆圈转啊转 加了
处理
事件() 就可以避免这种情况, 可以试试看,在一个计次循环或者判断循环里使用延时函数,然后分别在后面加上
处理
事件() 和不加
处理
事件() 。 位置...
控制台
应用
程序
本篇复习 —
控制台
应用
程序
和长文件名 在本章中包含的内容有
控制台
应用
程序
。它看起来象是 DOS 应用
程序
,但它可以访问 WIN32 提供的 4GB 地址空间。在本章中你还将看到如何使用长文件名以及 WIN32 文件 I/O 等内容的介绍。 本章中所有
程序
都是专门针对 Windows NT 和 Windows 9x 的,它们不能在 16 位模式和 Windo
VC++窗口应用
程序
中使用
控制台
输出
用了n多年的OutputDebugString作为调试输出信息的方法,很顺手,在VS2008中用起来也依然顺手,VS2010亦然. 马上2012了,我想如果真的有末日,就在末日来临之前,让我尝试下与以往不同的方法,不要让生命留下什么遗憾.所以我就想能不能使用一个
控制台
窗口来作为辅助的调试信息输出窗口,甚至可以用它来接收一些控制命令,从而更灵活的控制
程序
的调试呢?于是又一个大胆的尝试历程开始了,和...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章