| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1070 人关注过本帖
标题:Windows不自带秒表 写了个小东西 用来计时的 算是秒表了罢 可以精确到ms(Wi ...
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
结帖率:100%
收藏
 问题点数:0 回复次数:8 
Windows不自带秒表 写了个小东西 用来计时的 算是秒表了罢 可以精确到ms(Win32汇编)
;*****************************************************************************************************************
;作者:zklhp  
;Email:zklhp%(%<-@)
;QQ:493165744
;转载保留本信息可以么。。
;*****************************************************************************************************************

效果如图

图片附件: 游客没有浏览图片的权限,请 登录注册


程序+代码

timer.zip (11.84 KB)


照顾不能下载的朋友帖下代码

程序代码:

;MASMPlus 代码模板 - 以对话框做为主窗口的程序

;*****************************************************************************************************************
;作者:zklhp  
;Email:zklhp%(%<-@)
;QQ:493165744
;小程序 不求版权 但求转载保留本信息~~~
;*****************************************************************************************************************

.386
.Model Flat, StdCall
Option Casemap :None

Include windows.inc
Include user32.inc
Include kernel32.inc
Include gdi32.inc

includelib gdi32.lib
IncludeLib user32.lib
IncludeLib kernel32.lib
include macro.asm

include rsrc.inc
    
    DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
    
.const
    DLG_MAIN equ 100
    
.data?
    hInstance             dd ?
    hHook                    dd ?
    hWin                    dd ?
    dwLastCount            dd ?
.CODE


;用钩子不是很稳定 很可能崩溃~
HookProc    proc    uses ebx esi edi _dwCode,_wParam,_lParam
    local    @szBuf[256]:BYTE
    local @point:POINT
    
    invoke CallNextHookEx,hHook,_dwCode,_wParam,_lParam
    
    pushad
    .if    _dwCode == HC_ACTION
        mov    ebx,_lParam
        assume    ebx:ptr EVENTMSG
        ;[ebx].message == WM_SYSKEYDOWN 用于截取ALT的按键 至于按哪个键可以改的
        .if [ebx].message == WM_KEYDOWN || [ebx].message == WM_SYSKEYDOWN
            mov eax,[ebx].paramL
            and eax,0ffh
            .if al == VK_CONTROL
                invoke GetTickCount
                mov esi,eax
                mov edi,eax
                invoke SetDlgItemInt,hWin,IDC_STC2,esi,FALSE
                invoke SetDlgItemInt,hWin,IDC_STC1,dwLastCount,FALSE
                sub esi,dwLastCount
                invoke SetDlgItemInt,hWin,IDC_STC3,esi,FALSE
                mov dwLastCount,edi    ;每次写下当次的值作为Last Count
            .endif
        .endif
        assume    ebx:nothing
    .endif
    popad
    xor    eax,eax
    
    ret
    
HookProc    endp


START:
    invoke GetModuleHandle,NULL
    mov hInstance,eax
    invoke DialogBoxParam,hInstance,IDD_DLG1,0,offset DlgProc,0
    invoke ExitProcess,0


DlgProc proc hWnd,uMsg,wParam,lParam
    local @szBuf[256]:BYTE
    
    .if uMsg==WM_INITDIALOG
        push hWnd
        pop hWin
        
        invoke GetTickCount
        mov dwLastCount,eax
        invoke SetDlgItemInt,hWnd,IDC_STC1,eax,FALSE
        
        invoke SetWindowsHookEx,WH_JOURNALRECORD,addr HookProc,hInstance,NULL
        .if eax
            mov hHook,eax
        .else
            invoke MessageBox,0,CTXT('安装钩子出错 退出'),CTXT('出错'),0
            invoke EndDialog,hWnd,NULL
        .endif
    .elseif uMsg==WM_COMMAND
        mov eax,wParam
        and eax,0ffffh
        .if eax==IDCANCEL
            invoke SendMessage,hWnd,WM_CLOSE,0,0
        .endif
    .elseif uMsg==WM_CLOSE
        invoke UnhookWindowsHookEx,hHook
        invoke EndDialog,hWnd,wParam
    .else
        mov eax,FALSE
        ret
    .endif
    mov eax,TRUE
    ret
DlgProc endp

END START

搜索更多相关主题的帖子: 模板 朋友 Windows 
2011-08-06 19:39
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
顺手写的一个小东西 当秒表用还不错 呵呵

Firefox Nightly 8.0a1 对论坛支持不好。。。 上传附件没法显示在编辑框里

是UA的问题还是什么 唉 最近静老大也不大管论坛了 不知道这段话谁能看见。。。
2011-08-06 19:43
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:0 

mark   等待改日。。。
2011-08-07 00:06
马甲1号
Rank: 5Rank: 5
等 级:职业侠客
帖 子:68
专家分:312
注 册:2011-4-4
收藏
得分:0 


zklhp大哥。。。日志钩子可以用热键代替吗?


???????
2011-08-09 09:42
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用马甲1号在2011-8-9 09:42:18的发言:



zklhp大哥。。。日志钩子可以用热键代替吗?

可以 但是那样就必须是组合键 也就是Ctrl+4 Alt+A这样的 不灵活
2011-08-09 18:07
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:0 
Z版最近相当有激情啊
2011-08-09 21:58
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用Alar30在2011-8-9 21:58:58的发言:

Z版最近相当有激情啊

一直都有激情、、、
2011-08-10 08:04
kamuli
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-8
收藏
得分:0 
的确要支持一下,这论坛办了这么久了,怎么说也有点历史,要常来
2011-08-10 09:19
ymxu
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-6-19
收藏
得分:0 
有高手,有菜鸟,有人发有人批,有人发有人回,有人问有人回,有人回有人接,那么论坛就会四季长青了。
2011-10-30 12:25
快速回复:Windows不自带秒表 写了个小东西 用来计时的 算是秒表了罢 可以精确到 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025385 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved