社区
Windows SDK/API
帖子详情
我用sendmessage向其他程序定时发消息,可是在WIN98下会有一点延时,WIN2000下就是好的!有没有办法解决?或者用其他方法代替!
sungu0
2002-11-25 09:44:26
()
...全文
47
15
打赏
收藏
我用sendmessage向其他程序定时发消息,可是在WIN98下会有一点延时,WIN2000下就是好的!有没有办法解决?或者用其他方法代替!
()
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kmask
2002-12-01
打赏
举报
回复
应该是先天不足吧
能降低精度就降低精度吧,2K忙的时候,也会有延时
cnsccd1989
2002-12-01
打赏
举报
回复
同意“小可”。
继续关注学习。
sungu0
2002-12-01
打赏
举报
回复
我还想问一下,主线程能不能设置优先级?
cnsuyong
2002-11-29
打赏
举报
回复
如果你能把Windows多任务运行方式想象成为一个高速旋转的齿轮,只有转到最顶端的齿(任务)才会被处理,这时其他的齿(任务)都在休息。
那么,你就能明白发送消息有延时是不可避免的,只是感觉是否明显而已。
还有,计时器精度由CPU时钟频率决定,你固然可以认为计时器与你的消息延时没有因果关系,但计时器精度确实能反映最本质的东西:CPU到底能“转”多快,Windows到底能“转”多快。而这是消息必然延时的根本原因所在。
qiandeng
2002-11-28
打赏
举报
回复
问题解决如下
建立线程
设置线程的优先级为实时(最高的)
然后定时发送
在一般的情况下,cpu分配的时间片有限....,自然会延时
sungu0
2002-11-28
打赏
举报
回复
up
zqdshsy
2002-11-28
打赏
举报
回复
up
sungu0
2002-11-28
打赏
举报
回复
为什么大家都认为是记时器的问题呢,其实我在前面已经说的很明白了,记时器的误差很小了,主要是消息发送时产生的延时!
help me
Billy_Chen28
2002-11-27
打赏
举报
回复
BOOL QueryPerformanceFrequency(
LARGE_INTEGER *lpFrequency // address of current frequency
);
这个函数来做定时比多媒体定时器精度还要高!
sungu0
2002-11-27
打赏
举报
回复
是这样的,我以前也用过TIMER,可是发现时间不准后已经不用了,现在用的是
mmsystem里面的timesetevent and timekillevent
精度很高,大概只有2毫秒的误差,
以前用TIMER误差在20-56之间,
但是现在我的程序向其他程序发消息还是不能绝对准,98有时候准有时候不准
2000好些,只误差几毫秒,98有时候要迟30-100毫秒。有没有高手帮我,我希望98和2000一样准。
cnsuyong
2002-11-26
打赏
举报
回复
呵呵,楼主果然很细心。Win2K中和Win9x中的Timer,其精度有很大差异。(比如执行一次Sleep(1)实际上绝对不可能实现预期目的)。依稀记得在书上看到过,Win98中Timer的精度大概是60ms,WinNT和Win2K大约是20ms(可能数字有误,但数量级不会错)。也就是说,你在Win2K中执行一次Sleep(1),实际上至少要“睡”20ms。这不是延时,而是执行一次时钟唤醒处理所需的最小时间决定了时钟精度。因此,精确到毫秒就目前来说是不可能的。(如有人不信,可以用TTimer来试试,看看将Interval设置为1时在1000ms即1秒内能执行多少次。)
flyingkiller
2002-11-26
打赏
举报
回复
up
cgh1970
2002-11-26
打赏
举报
回复
up
sungu0
2002-11-26
打赏
举报
回复
不是这个问题,,,我需要在指定的时间发到其他程序,精确到毫秒,时间部分我用多媒体记时器没有问题,,主要是发消息出问题,因为2000和98的消息处理有点不一样,所以2000没有问题,我想知道有没有别的办法可以向其它程序发消息的函数或别的方法。
stanely
2002-11-25
打赏
举报
回复
postmessage可以立即返回,你试试!
MFC的消息机制
首先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵(C
Win
Thread::PumpMessage)和MFC的消息在窗口之间的路由是两件不同的事情。在MFC的应用
程序
中(应用
程序
类基于C
Win
Thread继承),必须要有一个消息循环,他的作用是从应用
程序
的消息队列中读取消息,并把它派送出去(::DispatchMessage)。而消息路由是指消息派送出去
博客摘录「 外挂编写完全攻略」2024年10月21日
外挂编写完全攻略一、先说一下写一个外挂需要什么条件1、熟练的C语言知识目前的外挂大部分都是用BC或者是vc写的,拥有熟练的C语言知识是写外挂的基本条件2、具有很强的汇编基础 一般游戏都不可能有原代码的,必须*反汇编或者跟踪的
办法
来探索其中的机理 ,所以有强的汇编基础也是必不可少的条件3、熟练掌握跟踪和调试的工具有了上面2个条件后,掌握一些工具也是很有必要的跟踪的工具,softice当然是不二之选,至于反汇编的工具,我推荐用IDA PRO这个工具反汇编出来的代码结构清晰,非常好读如果你不具有上面的条件,还是先
如何让del+CTRL+ALT看不见
程序
运行
问:如何让del+CTRL+ALT看不见
程序
运行? 答:为了让
程序
用ALT+DEL+CTRL看不见,在implementation后添加声明: function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL'; 再在上面的窗...
我在CSDN参与的3000个帖子
今日偶然翻到,感慨万千 1:申述:版主,是否扣了我的专家分? 2:100分急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,常用软件、游戏、精美图库下载,希望对网友有帮助!顺便散分! 6:VBA请教怎
delphi经典技艺
delphi经典技艺 2012年01月10日 http://yxl8.net/htmlVer1/news/read.asp?id=1167 问:如何让del+CTRL+ALT看不见
程序
运行? 答:为了让
程序
用ALT+DEL+CTRL看不见,在implementation后添加声明: function RegisterServiceProcess(dwProcessI...
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章