首页 > 系统相关 >Windows定时器-timeSetEvent

Windows定时器-timeSetEvent

时间:2024-07-10 14:10:16浏览次数:5  
标签:定时器 Windows timer timeSetEvent UINT DWORD id

 

接口:

MMRESULT timeSetEvent(  
  UINT uDelay,         // 以毫秒指定事件的周期  
  UINT uResolution,    // 以毫秒指定延时的精度,缺省值为1ms  
  LPTIMECALLBACK lpTimeProc, // 指向回调函数的指针  
  WORD dwUser,         // 用户定义的回调数据,传递给回调函数  
  UINT fuEvent         // 定时器事件类型(TIME_ONESHOT:只触发一次)(TIME_PERIODIC:每隔uDelay毫秒,触发多次)
);

 

Demo

// ConsoleApplication1.cpp : windows定时器
//

#include <iostream>
using namespace std;

#include <Windows.h>
#include <mmsystem.h>
#pragma comment(lib, "Winmm.lib")


void CALLBACK myTimerCB(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2)
{
    cout << "触发了: " << uTimerID << endl;
}


int main()
{
    // windows 定时器
    
    /**timeSetEvent
    * 
    MMRESULT timeSetEvent(  
      UINT uDelay,         // 以毫秒指定事件的周期  
      UINT uResolution,    // 以毫秒指定延时的精度,缺省值为1ms  
      LPTIMECALLBACK lpTimeProc, // 指向回调函数的指针  
      WORD dwUser,         // 用户定义的回调数据,传递给回调函数  
      UINT fuEvent         // 定时器事件类型(TIME_ONESHOT:只触发一次)(TIME_PERIODIC:每隔uDelay毫秒,触发多次)
    );
    */

    UINT g_timer_id = 0;

    bool run_timer = true;
    while (run_timer)
    {
        cout << "1:开启定时器;0:关闭定时器" << endl;
        
        int index;
        cin >> index;
        switch (index)
        {
        case 0: 
        {
            if (g_timer_id != 0) { timeKillEvent(g_timer_id); }
            run_timer = false;
        }break;
        case 1: 
        {
            if (g_timer_id != 0) { timeKillEvent(g_timer_id); }
            g_timer_id = timeSetEvent(50, 1, myTimerCB, NULL, TIME_PERIODIC);
        }break;
        }
    }
}

 

标签:定时器,Windows,timer,timeSetEvent,UINT,DWORD,id
From: https://www.cnblogs.com/shiyixirui/p/18293933

相关文章

  • Windows下升级JDK
    1.官网下载安装包,官网地址:https://www.oracle.com/cn/java/technologies/downloads/#jdk21-windows 2.java-version检查现有jdk版本3.修改环境变量 4.  java-version检查jdk版本,未生效 输出环境变量,发现确实配置已经成功 5.重启电脑,搞定 ......
  • 如何在 Windows 10 上恢复未保存的 Word 文档
    您是否整晚都在处理一个重要的word文件,但忘记保存它了?本文适合您。在这里,我们将解释如何恢复未保存的word文档。除此之外,您还将学习如何恢复已删除的word文档。从专业人士到高中生,每个人都了解丢失重要Word文件的痛苦。幸运的是,有多种方法可以恢复未保存和已删除的Wo......
  • ab for windows
    Windows上安装和使用ab压测Apachebench是一款压力测试工具,用于测试http服务请求的性能情况1下载http://httpd.apache.org/docs/current/platform/windows.html#down #管理员模式进入CMD C:>d:  D:\>cdapache  D:\apache>cdApache24  D:\apache\Apache24>c......
  • Windows LAPS(Local Administrator Password Solution)是一种由微软提供的工具和解决方
    WindowsLAPS(LocalAdministratorPasswordSolution)是一种由微软提供的工具和解决方案,旨在管理Windows操作系统中本地管理员账户的密码。它的设计初衷是提高系统安全性,特别是防止在企业环境中多台计算机上使用相同的本地管理员密码所带来的安全风险。特点和工作原理个性化密......
  • Windows10设置任务栏时间显示秒数
    Windows10设置任务栏时间显示秒数操作步骤:1、打开注册表【Windows+R】键打开运行窗口,输入【regedit】,回车打开注册表编辑器。 2、新建注册表项1)在注册表编辑器地址栏输入【计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced】,回车......
  • 远程线程注入的英文全称是 Remote Thread Injection,简称通常是 RTI。远程线程注入是一
    远程线程注入的英文全称是RemoteThreadInjection,简称通常是RTI。远程线程注入(RemoteThreadInjection)是一种利用操作系统的特性,在一个进程的上下文中执行代码的技术。它通常涉及以下基本步骤和原理:获取目标进程句柄:首先,注入进程需要获取目标进程的句柄(handle),这可以通过......
  • DPAPI(Data Protection API)是Windows操作系统提供的一种加密API,用于帮助开发者保护用户
    DPAPI(DataProtectionAPI)在其设计上是相对安全的,但在使用过程中仍然可能存在一些潜在的漏洞或安全考虑:物理访问:如果攻击者能够物理访问受保护数据的存储设备(如硬盘或内存),并且拥有系统管理员权限,他们可能能够通过直接访问加密密钥或拦截解密过程来获取敏感信息。恶意软件......
  • Windows bat批处理启动git bash 自动提交git push
    前言全局说明Windowsbat批处理启动gitbash自动提交gitpush一、说明环境:Windows11家庭版23H222631.3737二、新窗口打开gitbash(和手动右键点gitbashhere一样)@echooff"C:\ProgramFiles\Git\git-bash.exe"--cd=D:\temp-c"ls-l&&pwd"--cd=指定......
  • Windows 10如何手动更新设备驱动
        在数字化的今天,计算机硬件的性能与稳定性直接关系到我们的工作效率和生活质量。Windows10作为全球广泛使用的操作系统,其设备驱动的健康状况对整个系统的表现起着决定性作用。无论是为了优化硬件性能,解决设备兼容性问题,还是提升安全防护,定期更新设备驱动已成为每位......
  • Windows 10防火墙掌控指南:轻松开关,安全随心
        在数字时代,网络安全已成为不容忽视的关键议题。作为个人电脑的守护者,Windows10自带的防火墙系统在拦截恶意攻击、保护隐私方面发挥着至关重要的作用。然而,对于许多用户而言,如何正确地打开或关闭Windows防火墙,以适应不同的网络环境和安全需求,仍是一个亟待解答的问......