精华内容
下载资源
问答
  • 2022-01-21 10:58:17
    更多相关内容
  • Windows常用消息大全和Windows消息机制(总结篇) 详谈Windows消息循环机制 一、重要的概念 先看一下Windows 消息MSG结构体的定义: typedef struct tagMsg { HWND hwnd; // 接受该消息的窗口句柄 UINT message; /...

    Windows常用消息大全和Windows消息机制(总结篇)

    详谈Windows消息循环机制

    一、重要的概念

    先看一下Windows 消息MSG结构体的定义:

    typedef struct tagMsg
    {
           HWND    hwnd;       // 接受该消息的窗口句柄
           UINT    message;    // 消息常量标识符,也就是我们通常所说的消息号
           WPARAM  wParam;     // 32位消息的特定附加信息,确切含义依赖于消息值
           LPARAM  lParam;     // 32位消息的特定附加信息,确切含义依赖于消息值
           DWORD   time;       // 消息创建时的时间
           POINT   pt;         // 消息创建时的鼠标/光标在屏幕坐标系中的位置
    }MSG;
    

    Windows消息按类型分类:
    窗口消息,命令消息,控件通知消息和用户定义消息
    (1)窗口消息:

    即与窗口的内部运作有关的消息,如创建窗口,绘制窗口,销毁窗口等。
    一般以WM_开头,如WM_CREATE, WM_SIZE, WM_MOUSEMOVE等标准的Windows消息, 用于窗口相关的事件通知,窗口消息将由系统分配到该窗口的窗口过程处理。

    (2)命令消息 (WM_COMMAND):

    当用户从菜单选中一个命令项目、按下一个快捷键或者点击工具栏上的一个按钮,都将发送WM_COMMAND命令消息。一种特殊的窗口消息,它从一个窗口发送到另一个窗口以处理来自用户的请求,通常是从子窗口发送到父窗口,例如,点击按钮时,按钮的父窗口会收到WM_COMMAND消息,用以通知父窗口按钮被点击,经测试:子窗口向父窗口发送WM_COMMAND消息,或者称为父窗口会收到WM_COMMAND消息,操作系统并不是通过将WM_COMMAND消息放入到父窗口的消息队列中去,而是直接调用了父窗口的窗口过程,以 WM_COMMAND 为消息标识参数(UINT uMsg),实现这个功能的。

    (3)控件通知消息:

    当一个窗口内的子控件发生了一些事情,而这些是需要通知父窗口的,通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows公共控件如树状视图、列表视图等。随着控件的种类越来越多,用WM_NOTIFY消息来扩展WM_COMMAND消息。

    (4)用户定义消息:

    windwos也能定义自己的消息,使用SendMessage或PostMessage来发送消息。

    队列消息和非队列消息:
    消息队列可以分成系统消息队列和线程消息队列。系统消息队列由Windows维护,线程消息队列则由每个GUI线程自己进行维护,为避免给non-GUI现成创建消息队列,所有线程产生时并没有消息队列,仅当线程第一次调用GDI函数时系统才给线程创建一个消息队列。
    (1)队列消息:

    如:WM_PAINT,WM_TIMER,WM_CREATE,WM_QUIT,以及鼠标,键盘消息等。当鼠标、键盘事件被触发后,相应的鼠标或键盘驱动程序就会把这些事件转换成相应的消息,然后输送到系统消息队列,由 Windows系统去进行处理。

    (2)非队列消息:

    非队列消息将会绕过系统队列和消息队列,直接将消息发送到窗口过程。如:WM_ACTIVATE, WM_SETFOCUS, WM_SETCURSOR,WM_WINDOWPOSCHANGED


    二、Windows 常用消息

    消息名称含义
    WM_NULL0x0000空消息,此消息将被接收窗口忽略
    WM_CREATE0x0001应用程序创建一个窗口
    WM_DESTROY0x0002一个窗口被销毁
    WM_MOVE0x0003移动一个窗口
    WM_SIZE0x0005改变一个窗口的大小
    WM_ACTIVATE0x0006一个窗口被激活或失去激活状态
    WM_SETFOCUS0x0007获得焦点后
    WM_KILLFOCUS0x0008失去焦点
    WM_ENABLE0x000A应用程序Enable状态改变时产生
    WM_SETREDRAW0x000B设置窗口是否能重画
    WM_SETTEXT0x000C应用程序发送此消息来设置一个窗口的文本
    WM_GETTEXT0x000D应用程序发送此消息来复制对应窗口的文本到缓冲区
    WM_GETTEXTLENGTH0x000E得到与一个窗口有关的文本的长度(不包含空字符)
    WM_PAINT0x000F要求一个窗口重绘自己
    WM_CLOSE0x0010当一个窗口或应用程序要关闭时发送一个信号
    WM_QUERYENDSESSION0x0011用户选择结束对话框或应用程序自己调用ExitWindows()函数
    WM_QUIT0x0012用来结束程序运行或应用程序调用Postquitmessage()函数来产生此消息
    WM_QUERYOPEN0x0013当用户窗口恢复以前的大小位置时,把此消息发送给某个图标
    WM_ERASEBKGND0x0014当窗口背景必须被擦除时(例如在窗口改变大小时)
    WM_SYSCOLORCHANGE0x0015当系统颜色改变时,发送此消息给所有顶级窗口
    WM_ENDSESSION0x0016当系统进程发出WM_QUERYENDSESSION消息后,此消息发送给应用程序
    WM_SHOWWINDOW0x0018当隐藏或显示窗口是发送此消息给这个窗口
    WM_ACTIVATEAPP0x001C当某个窗口将被激活时,将被激活窗口和当前活动(即将失去激活)窗口会收到此消息,发此消息给应用程序哪个窗口是激活的,哪个是非激活的
    WM_FONTCHANGE0x001D当系统的字体资源库变化时发送此消息给所有顶级窗口
    WM_TIMECHANGE0x001E当系统的时间变化时发送此消息给所有顶级窗口
    WM_CANCELMODE0x001F发送此消息来取消某种正在进行的操作
    WM_SETCURSOR0x0020如果鼠标引起光标在某个窗口中移动且鼠标输入没有被捕获时,发消息给该窗口
    WM_MOUSEACTIVATE0x0021当光标在某个非激活的窗口中而用户正按着鼠标的某个键发送此消息给当前窗口
    WM_CHILDACTIVATE0x0022发送此消息给MDI子窗口当用户点击此窗口的标题栏,或当窗口被激活、移动、改变大小
    WM_QUEUESYNC0x0023此消息由基于计算机的训练程序发送,通过WH_JOURNALPALYBACK的Hook程序分离出用户输入消息
    WM_GETMINMAXINFO0x0024当窗口要将要改变大小或位置时,发送此消息给该窗口
    WM_PAINTICON0x0026当窗口图标将要被重绘时,发送此消息给该窗口
    WM_ICONERASEBKGND0x0027在一个最小化窗口的图标在重绘前,当图标背景必须被重绘时,发送此消息给该窗口
    WM_NEXTDLGCTL0x0028发送此消息给一个对话框程序以更改焦点位置
    WM_SPOOLERSTATUS0x002A当打印管理列队增加或减少一条作业时发出此消息
    WM_DRAWITEM0x002B当Button,ComboBox,Listbox,Menu控件的外观改变时,发送此消息给这些控件的所有者
    WM_MEASUREITEM0x002C当Button,ComboBox,list box,ListView,Menu 项被创建时,发送此消息给控件的所有者
    WM_DELETEITEM0x002D当ListBox 或 ComboBox 被销毁或当某些项通过发送LB_DELETESTRING、LB_RESETCONTENT、 CB_DELETESTRING、CB_RESETCONTENT 消息被删除时,发送此消息给控件的所有者
    WM_VKEYTOITEM0x002E一个具有LBS_WANTKEYBOARDINPUT风格的ListBox控件发送此消息给它的所有者,以此来响应WM_KEYDOWN消息
    WM_CHARTOITEM0x002F一个具有LBS_WANTKEYBOARDINPUT风格的ListBox控件发送此消息给它的所有者,以此来响应WM_CHAR消息
    WM_SETFONT0x0030应用程序绘制控件时,发送此消息得到以何种字体绘制控件中的文本
    WM_GETFONT0x0031应用程序发送此消息得到当前控件绘制文本的字体
    WM_SETHOTKEY0x0032应用程序发送此消息让一个窗口与一个热键相关联
    WM_GETHOTKEY0x0033应用程序发送此消息来判断热键与某个窗口是否有关联
    WM_QUERYDRAGICON0x0037此消息发送给最小化窗口,当此窗口将要被拖放而它的类中没有定义图标,应用程序就返回一个图标或光标的句柄,当用户拖放图标时系统显示这个图标或光标
    WM_COMPAREITEM0x0039发送此消息来判定ComboBox或ListBox新增加的项的相对位置
    WM_COMPACTING0x0041显示内存已经很少了
    WM_WINDOWPOSCHANGING0x0046当调用SetWindowPos()函数改变窗口的大小和位置后,发送此消息给该窗口
    WM_POWER0x0048当系统将进入挂起状态时发送此消息给所有进程
    WM_COPYDATA0x004A当一个应用程序传递数据给另一个应用程序时发送此消息
    WM_CANCELJOURNAL0x004B当某个用户取消程序日志激活状态,发送此消息给应用程序
    WM_NOTIFY0x004E当某个控件的某个事件已经发生或这个控件需要得到一些信息时,发送此消息给它的父窗口
    WM_INPUTLANGCHANGEREQUEST0x0050当用户选择某种输入语言,或输入语言的热键改变
    WM_INPUTLANGCHANGE0x0051当应用程序输入语言改变后发送此消息给受影响的最顶级窗口
    WM_TCARD0x0052当应用程序已经初始化Windows帮助例程时发送此消息给应用程序
    WM_HELP0x0053当用户按下了F1,如果某个菜单是激活的,就发送此消息给此窗口关联的菜单,否则就发送给有焦点的窗口,如果当前都没有焦点,就把此消息发送给当前激活的窗口
    WM_USERCHANGED0x0054当用户已经登录或退出后发送此消息给所有的窗口,当用户登录或退出时系统更新用户的具体设置信息,在用户更新设置时系统马上发送此消息
    WM_NOTIFYFORMAT0x0055公用控件和它们的父窗口通过此消息来判断在WM_NOTIFY消息中是使用ANSI还是UNICODE形式的结构,使用此控件能使某个控件与它的父控件进行相互通信
    WM_CONTEXTMENU0x007B当用户在某个窗口中点击右键,则发送此消息给该窗口
    WM_STYLECHANGING0x007C当将要调用SetWindowLong()函数窗口的一个或多个风格时,发送此消息给该窗口
    WM_STYLECHANGED0x007D当调用SetWindowLong()函数改变了窗口的一个或多个风格后,发送此消息给该窗口
    WM_DISPLAYCHANGE0x007E当显示器的分辨率改变后发送此消息给所有的窗口
    WM_GETICON0x007F发送此消息给某个窗口,返回与某个窗口有关联的大图标或小图标的句柄
    WM_SETICON0x0080应用程序发送此消息让一个新的大图标或小图标与某个窗口关联
    WM_NCCREATE0x0081当某个窗口第一次被创建时,此消息在WM_CREATE消息被发送前发送
    WM_NCDESTROY0x0082此消息通知某个窗口,正在销毁非客户区
    WM_NCCALCSIZE0x0083当计算某个窗口的客户区大小和位置时发送此消息
    WM_NCHITTEST0x0084移动鼠标,按住或释放鼠标时产生此消息
    WM_NCPAINT0x0085当某个窗口的框架必须被绘制时,应用程序发送此消息给该窗口
    WM_NCACTIVATE0x0086通过改变某个窗口的非客户区来表示窗口是处于激活还是非激活状态时,此消息被发送给该窗口
    WM_NCMOUSEMOVE0x00A0当光标在窗口的非客户区(窗口标题栏及边框)内移动时发送此消息给该窗口
    WM_NCLBUTTONDOWN0x00A1当光标在窗口的非客户区并按下鼠标左键时发送此消息
    WM_NCLBUTTONUP0x00A2当光标在窗口的非客户区并释放鼠标左键时发送此消息
    WM_NCLBUTTONDBLCLK0x00A3当光标在窗口的非客户区并双击鼠标左键时发送此消息
    WM_NCRBUTTONDOWN0x00A4当光标在窗口的非客户区并按下鼠标右键时发送此消息
    WM_NCRBUTTONUP0x00A5当光标在窗口的非客户区并释放鼠标右键时发送此消息
    WM_NCRBUTTONDBLCLK0x00A6当光标在窗口的非客户区并双击鼠标右键时发送此消息
    WM_NCMBUTTONDOWN0x00A7当光标在窗口的非客户区并按下鼠标中键时发送此消息
    WM_NCMBUTTONUP0x00A8当光标在窗口的非客户区并释放鼠标中键时发送此消息
    WM_NCMBUTTONDBLCL0x00A9当光标在窗口的非客户区并双击鼠标中键时发送此消息
    WM_KEYDOWN0x0100按下一个非系统键(按下键时未按下“ALT”键)
    WM_KEYUP0x0101释放一个非系统键
    WM_CHAR0x0102按下某键,当TranslateMessage()转发WM_KEYDOWN后发送本消息
    WM_DEADCHAR0x0103释放某键,当TranslateMessage()转发WM_KEYUP后发送本消息
    WM_SYSKEYDOWN0x0104当按住ALT键同时按下其他键时发送此消息给拥有键盘焦点的窗口
    WM_SYSKEYUP0x0105当释放一个键同时按住ALT键时发送此消息给拥有键盘焦点的窗口
    WM_SYSCHAR0x0106当TranslateMessage()转发WM_SYSKEYDOWN后发送此消息给拥有键盘焦点的窗口
    WM_SYSDEADCHAR0x0107当TranslateMessage()转发WM_SYSKEYUP后发送此消息给拥有键盘焦点的窗口
    WM_INITDIALOG0x0110在被显示前发送此消息对话框,通常用此消息初始化控件和执行其他任务
    WM_COMMAND0x0111选择窗口菜单项或某个控件发送一条消息给它的父窗口或按下一个快捷键时产生此消息
    WM_SYSCOMMAND0x0112选择窗口菜单项或选择最大化或最小化时,发送此消息给该窗口
    WM_TIMER0x0113发生了定时器事件
    WM_HSCROLL0x0114当窗口水平滚动条产生一个滚动事件时发送此消息给该窗口和滚动条的所有者
    WM_VSCROLL0x0115当窗口垂直滚动条产生一个滚动事件时发送此消息给该窗口和滚动条的所有者
    WM_INITMENU0x0116当一个菜单将要被激活时发送此消息,它发生在按下菜单项或按下菜单快捷键时,它允许程序在显示前更改菜单
    WM_INITMENUPOPUP0x0117当一个下拉菜单或子菜单将要被激活时发送此消息,它允许显示前在修改菜单而不必更改整个菜单
    WM_MENUSELECT0x011F选择一条菜单项时发送此消息给菜单的所有者(一般是窗口)
    WM_MENUCHAR0x0120当菜单已被激活且用户按下了某个键(非快捷键),发送此消息给菜单的所有者
    WM_ENTERIDLE0x0121当一个有模式对话框或菜单进入空闲状态时发送此消息给它的所有者,空闲状态指在处理完一条或几条先前的消息后,消息列队为空
    WM_MENURBUTTONUP0x0122当光标位于菜单项上时,释放鼠标右键产生此消息
    WM_MENUDRAG0x0123当拖动菜单项时,发送此消息给拖放菜单的所有者
    WM_MENUGETOBJECT0x0124当光标移入菜单项或者从菜单项中心移到菜单项顶部或底部时,发送此消息给拖放菜单的所有者
    WM_UNINITMENUPOPUP0x0125当下拉菜单或者子菜单被销毁时产生此消息
    WM_MENUCOMMAND0x0126当用户选择菜单项时产生此消息
    WM_CHANGEUISTATE0x0127应用程序发送此消息表明用户界面(UI)状态应当被改变
    WM_UPDATEUISTATE0x0128应用程序发送此消息改变指定窗口及其子窗口的用户界面(UI)状态
    WM_QUERYUISTATE0x0129应用程序发送此消息得到某个窗口的用户界面(UI)状态
    WM_CTLCOLORMSGBOX0x0132绘制消息框前发送此消息给它的父窗口,通过响应这条消息,父窗口可以通过使用给定的相关显示设备的句柄来设置消息框的文本和背景颜色
    WM_CTLCOLOREDIT0x0133绘制编辑型控件前发送此消息给它的父窗口,可用来设置编辑框的文本和背景颜色
    WM_CTLCOLORLISTBOX0x0134绘制列表框控件前发送此消息给它的父窗口,可用来设置编辑框的文本和背景颜色
    WM_CTLCOLORBTN0x0135绘制按钮控件前发送此消息给它的父窗口,可用来设置编辑框的文本和背景颜色
    WM_CTLCOLORDLG0x0136绘制对话框前发送此消息给它的父窗口,可用来设置编辑框的文本和背景颜色
    WM_CTLCOLORSCROLLBAR0x0137绘制滚动条控件前发送此消息给它的父窗口,可用来设置滚动条控件的文本和背景颜色
    WM_CTLCOLORSTATIC0x0138绘制静态控件前发送此消息给它的父窗口,可用来设置静态控件的文本和背景颜色
    WM_MOUSEMOVE0x0200鼠标移动
    WM_LBUTTONDOWN0x0201按下鼠标左键
    WM_LBUTTONUP0x0202释放鼠标左键
    WM_LBUTTONDBLCLK0x0203双击鼠标左键
    WM_RBUTTONDOWN0x0204按下鼠标右键
    WM_RBUTTONUP0x0205释放鼠标右键
    WM_RBUTTONDBLCLK0x0206双击鼠标右键
    WM_MBUTTONDOWN0x0207按下鼠标中键
    WM_MBUTTONUP0x0208释放鼠标中键
    WM_MBUTTONDBLCLK0x0209双击鼠标中键
    WM_MOUSEWHEEL0x020A当鼠标滚轮转动时发送此消息给当前获得焦点的窗口
    WM_PARENTNOTIFY0x0210当MDI子窗口被创建或被销毁,或当光标位于子窗口上且用户按了一下鼠标键时,发送此消息给它的父窗口
    WM_ENTERMENULOOP0x0211发送此消息通知应用程序的主窗口进程已经进入了菜单模式循环
    WM_EXITMENULOOP0x0212发送此消息通知应用程序的主窗口进程已经退出了菜单模式循环
    WM_SIZING0x0214调整窗口大小时发送此消息给窗口,通过此消息应用程序可以监视或修改窗口大小和位置
    WM_CAPTURECHANGED0x0215当窗口设定为不捕获鼠标事件时,发送此消息给该窗口
    WM_MOVING0x0216移动窗口时发送此消息给窗口,通过此消息应用程序可以监视或修改窗口大小和位置
    WM_POWERBROADCAST0x0218发送此消息给应用程序通知它有关电源管理事件
    WM_DEVICECHANGE0x0219当设备的硬件配置改变时发送此消息给应用程序或设备驱动程序
    WM_MDICREATE0x0220应用程序发送此消息给多文档的客户窗口来创建一个MDI 子窗口
    WM_MDIDESTROY0x0221应用程序发送此消息给多文档的客户窗口来关闭一个MDI 子窗口
    WM_MDIACTIVATE0x0222应用程序发送此消息给多文档的客户窗口通知客户窗口激活另一个MDI子窗口,当客户窗口收到此消息后,它发出WM_MDIACTIVE消息给MDI子窗口(未激活)来激活它
    WM_MDIRESTORE0x0223应用程序发送此消息给MDI客户窗口通知子窗口恢复到原来大小
    WM_MDINEXT0x0224应用程序发送此消息给MDI客户窗口激活下一个或前一个窗口
    WM_MDIMAXIMIZE0x0225应用程序发送此消息给MDI客户窗口以最大化一个MDI子窗口
    WM_MDITILE0x0226应用程序发送此消息给MDI客户窗口以平铺方式重新排列所有MDI子窗口
    WM_MDICASCADE0x0227应用程序发送此消息给MDI客户窗口以层叠方式重新排列所有MDI子窗口
    WM_MDIICONARRANGE0x0228应用程序发送此消息给MDI客户窗口重新排列所有最小化的MDI子窗口
    WM_MDIGETACTIVE0x0229应用程序发送此消息给MDI客户窗口以找到激活的子窗口的句柄
    WM_MDISETMENU0x0230应用程序发送此消息给MDI客户窗口用MDI菜单代替子窗口的菜单
    WM_ENTERSIZEMOVE0x0231当窗口进入移动或改变大小模式循环时,发送此消息给该窗口
    WM_EXITSIZEMOVE0x0232当窗口退出移动或改变大小模式循环时,发送此消息给该窗口
    WM_DROPFILES0x0233当用户在应用程序窗口中拖动某个文件时,产生此消息
    WM_MDIREFRESHMENU0x0234应用程序发送此消息给MDI客户窗口以刷新窗口菜单
    WM_MOUSEHOVER0x02A1当光标在窗口客户区悬停超过TrackMouseEvent()指定的时间时,发送此消息给该窗口
    WM_MOUSELEAVE0x02A3当光标离开窗口客户区超过TrackMouseEvent()指定的时间时,发送此消息给该窗口
    WM_CUT0x0300应用程序发送此消息给一个编辑框或ComboBox以删除当前选择的文本
    WM_COPY0x0301应用程序发送此消息给一个编辑框或ComboBox以复制当前选择的文本到剪贴板
    WM_PASTE0x0302应用程序发送此消息给一个编辑框或ComboBox以从剪贴板中得到数据
    WM_CLEAR0x0303应用程序发送此消息给一个编辑框或ComboBox以清除当前选择的内容
    WM_UNDO0x0304应用程序发送此消息给一个编辑框或ComboBox以撤消最后一次操作
    WM_DESTROYCLIPBOARD0x0307当调用EmptyClipboard()清空剪贴板时,发送此消息给剪贴板所有者
    WM_DRAWCLIPBOARD0x0308当剪贴板的内容变化时发送此消息给剪贴板观察链中的第一个窗口,它允许用剪贴板观察窗口来显示剪贴板的新内容
    WM_PAINTCLIPBOARD0x0309当剪贴板包含CF_OWNERDIPLAY格式的数据且剪贴板观察窗口的客户区需要重绘时,发送此消息给剪贴板所有者
    WM_VSCROLLCLIPBOARD0x030A当剪贴板包含CF_OWNERDIPLAY格式的数据且剪贴板观察窗口发生垂直滚动条事件时,剪贴板观察窗口发送此消息给剪贴板所有者
    WM_SIZECLIPBOARD0x030B当剪贴板包含CF_OWNERDIPLAY格式的数据且剪贴板观察窗口的客户区域的大小已经改变时,剪贴板观察窗口发送此消息给剪贴板的所有者
    WM_ASKCBFORMATNAME0x030C剪贴板观察窗口发送此消息给剪贴板所有者以获得CF_OWNERDISPLAY剪贴板格式的名字
    WM_CHANGECBCHAIN0x030D当一个窗口从剪贴板观察链中移去时发送此消息给剪贴板观察链中的第一个窗口
    WM_HSCROLLCLIPBOARD0x030E当剪贴板包含CF_OWNERDIPLAY格式的数据且剪贴板观察窗口发生水平滚动条事件时,剪贴板观察窗口发送此消息给剪贴板所有者
    WM_QUERYNEWPALETTE0x030F发送此消息给将要获得键盘焦点的窗口,此消息使窗口在获得焦点时同时有机会实现它的逻辑调色板
    WM_PALETTEISCHANGING0x0310应用程序将要实现它的逻辑调色板时发送此消息通知所有应用程序
    WM_PALETTECHANGED0x0311获得焦点的窗口实现它的逻辑调色板后发送此消息给所有顶级并重叠的窗口,以此来改变系统调色板
    WM_HOTKEY0x0312当用户按下由RegisterHotKey()注册的热键时产生此消息
    WM_PRINT0x0317应用程序发送此消息给窗口,要求窗口在指定设备环境中绘制自己,一般情况下是打印机设备环境
    WM_PRINTCLIENT0x0318应用程序发送此消息给窗口,要求窗口在指定设备环境中绘制窗口客户区,一般情况下是打印机设备环境
    WM_APP0x8000帮助用户自定义消息,自定义消息可以为WM_APP+X,X为正整数
    WM_USER0x0400帮助用户自定义消息,自定义消息可以为WM_USER+X,X为正整数

    通知消息:
    按扭控件:

    名称含义
    BN_CLICKED用户单击了按钮
    BN_DISABLE按钮被禁止
    BN_DOUBLECLICKED用户双击了按钮
    BN_HILITE用户加亮了按钮
    BN_PAINT按钮应当重画
    BN_UNHILITE加亮应当去掉

    组合框控件:

    名称含义
    CBN_CLOSEUP组合框的列表框被关闭
    CBN_DBLCLK用户双击了一个字符串
    CBN_DROPDOWN组合框的列表框被拉出
    CBN_EDITCHANGE用户修改了编辑框中的文本
    CBN_EDITUPDATE编辑框内的文本即将更新
    CBN_ERRSPACE组合框内存不足
    CBN_KILLFOCUS组合框失去输入焦点
    CBN_SELCHANGE在组合框中选择了一项
    CBN_SELENDCANCEL用户的选择应当被取消
    CBN_SELENDOK用户的选择是合法的
    CBN_SETFOCUS组合框获得输入焦点

    编辑框控件:

    名称含义
    EN_CHANGE编辑框中的文本己更新
    EN_ERRSPACE编辑框内存不足
    EN_HSCROLL用户点击了水平滚动条
    EN_KILLFOCUS编辑框正在失去输入焦点
    EN_MAXTEXT插入的内容被截断
    EN_SETFOCUS编辑框获得输入焦点
    EN_UPDATE编辑框中的文本将要更新
    EN_VSCROLL用户点击了垂直滚动条消息含义

    列表框控件:

    名称含义
    LBN_DBLCLK用户双击了一项
    LBN_ERRSPACE列表框内存不够
    LBN_KILLFOCUS列表框正在失去输入焦点
    LBN_SELCANCEL选择被取消
    LBN_SELCHANGE选择了另一项
    LBN_SETFOCUS列表框获得输入焦点

    作者说:

    什么东西能使人成为强者?那就是时间!

    参考1:Windows 常用消息大全
    参考2:深入理解windows 消息机制

    展开全文
  • 功能: 监听获取电脑版微信消息,新消息十秒未查看自动弹窗 使用方法: 文本编辑器ansi编码文件类型bat保存双击执行

    一、功能:

    监听获取电脑版微信消息,新消息十秒未查看自动弹窗

    二、使用方法:

    文本编辑器ansi编码文件类型bat保存双击执行

    三、声明:

    禁止加入恶意代码,否则后果自负,有问题发私信

    四、代码:

    @echo off
    setlocal enabledelayedexpansion
    echo 电脑版微信新信息提示工具
    echo.
    echo 作者:phenix
    echo.
    echo 邮箱:279682817@qq.com
    echo.
    for /f "tokens=* delims=" %%m in ('dir /b %temp%^|find "msg_"') do (
    del /q %temp%\%%m>nul
    )
    :main
    echo msgbox "您有新的未查看的微信消息!">%temp%\msg.vbs
    echo wscript.echo "暂无新的未查看的微信消息!">%temp%\nomsg.vbs
    echo wscript.sleep 1000*10>%temp%\sleep.vbs
    set wechat_root=%USERPROFILE%\Documents\WeChat Files\
    set msg_flag=0
    set idx=1
    for /f "tokens=* delims=" %%a in ('dir /b "!wechat_root!"^|find "wxid_"') do (
    set wechat_dir=%%a
    set wechat_file=Msg\Multi\MSG0.db-wal
    set wechat_fullpath=!wechat_root!\!wechat_dir!\!wechat_file!
    if exist "!wechat_fullpath!" (
    set msg_startlen=
    set msg_endlen=
    if exist %temp%\msg_len_!idx!.txt (
    set /p msg_startlen=<%temp%\msg_len_!idx!.txt
    for /f "tokens=* delims=" %%1 in ('"powershell -command (ls ^'!wechat_fullpath!^').LastAccessTimeUtc"') do (
    set msg_endlen=%%1
    echo !msg_endlen!>%temp%\msg_len_!idx!.txt
    rem echo !msg_startlen!
    rem echo !msg_endlen!
    )
    ) else (
    for /f "tokens=* delims=" %%1 in ('"powershell -command (ls ^'!wechat_fullpath!^').LastAccessTimeUtc"') do (
    echo %%1>%temp%\msg_len_!idx!.txt
    )
    )
    if "!msg_startlen!" neq "!msg_endlen!" (
    start /wait /b cscript /nologo %temp%\sleep.vbs
    set startdate=
    set enddate=
    if exist %temp%\msg_date_!idx!.txt (
    for /f "tokens=* delims=" %%1 in (%temp%\msg_date_!idx!.txt) do (
    set startdate=%%1
    )
    for /f "tokens=* delims=" %%1 in ('"powershell -command (ls ^'%PUBLIC%\Desktop\微信.lnk^').LastAccessTimeUtc"') do (
    set enddate=%%1
    echo !enddate!>%temp%\msg_date_!idx!.txt
    )
    rem echo !startdate!
    rem echo !enddate!
    ) else (
    for /f "tokens=* delims=" %%1 in ('"powershell -command (ls ^'%PUBLIC%\Desktop\微信.lnk^').LastAccessTimeUtc"') do (
    echo %%1>%temp%\msg_date_!idx!.txt
    )
    )
    if "!startdate!" equ "!enddate!" (
    start %PUBLIC%\Desktop\微信.lnk
    for /f "tokens=* delims=" %%1 in ('"powershell -command (ls ^'%PUBLIC%\Desktop\微信.lnk^').LastAccessTimeUtc"') do (
    echo %%1>%temp%\msg_date_!idx!.txt
    )
    set msg_flag=1
    )
    ) else (
    for /f "tokens=* delims=" %%1 in ('"powershell -command (ls ^'%PUBLIC%\Desktop\微信.lnk^').LastAccessTimeUtc"') do (
    echo %%1>%temp%\msg_date_!idx!.txt
    )
    )
    )
    set /a idx+=1
    )
    if !msg_flag! equ 0 (
    cscript /nologo %temp%\nomsg.vbs
    )
    start /wait /b cscript /nologo %temp%\sleep.vbs
    goto :main

     

    展开全文
  • Windows Operating systems generally installed from a CD or DVD. On the other side Linux operating systems like Ubuntu, Debian, Mint, Fedora, etc can be installed from USB easily. Recently Windows also...

    Windows Operating systems generally installed from a CD or DVD. On the other side Linux operating systems like Ubuntu, Debian, Mint, Fedora, etc can be installed from USB easily. Recently Windows also started to support installation from the USB drive. Windows 10 Media Creation is a tool provided by Microsoft where it creates USB or DVD  Windows 10 installation media easily.

    Windows操作系统通常从CD或DVD安装。 另一方面,可以通过USB轻松安装Linux操作系统,如Ubuntu,Debian,Mint,Fedora等。 最近,Windows还开始支持从USB驱动器进行安装。 Windows 10 Media Creation是Microsoft提供的工具,可在其中轻松创建USB或DVD Windows 10安装媒体。

    Windows 10媒体创建工具要求 (Windows 10 Media Creation Tool Requirements)

    In order to create a Windows 10 Installation Media via Windows 10 Media Creation Tool there are some requirements and musts to obey. Below are what we will need;

    为了通过Windows 10 Media Creation Tool创建Windows 10安装介质,必须满足一些要求和必须遵守的要求。 以下是我们所需要的;

    • A PC with a reliable, unrestricted and fast internet connection is required because the Windows ISO file will be downloaded from internet which is about 4-5 GB.

      需要一台具有可靠,不受限制且快速的Internet连接的PC,因为将从Internet下载大约4-5 GB的Windows ISO文件。
    • A USB flash drive where we will store the Windows 10 installation files.

      我们将在其中存储Windows 10安装文件的USB闪存驱动器。
    • A product key for Windows 10 license but it is not a must which can be provided later after installation.

      Windows 10许可证的产品密钥,但不是必需的,可以在安装后稍后提供。
    • Your target system where Windows 10 will be installed should met the Windows 10 requirements too.

      您将安装Windows 10的目标系统也应符合Windows 10要求。

    下载Windows 10媒体创建工具 (Download Windows 10 Media Creation Tool)

    Windows 10 Media Creation Tool can be download from the official Microsoft site from the following page. We will just click to the Download button which will download the tool.

    Windows 10 Media Creation Tool可以从下页的Microsoft官方网站下载。 我们只需单击“ Download按钮即可下载该工具。

    https://www.microsoft.com/en-gb/software-download/windows10

    https://www.microsoft.com/zh-CN/software-download/windows10

    Download Windows 10 Media Creation Tool
    下载Windows 10媒体创建工具

    Or simply we can use the following link in order to download the MediaCreationTool.exe . But keep in mind that this is the direct link for a specific version of the Media Creation Tool and can be outdated in the future. In order to download the most recent and up to date version please use the previous link specified above.

    或者只是我们可以使用下面的链接来下载MediaCreationTool.exe 。 但是请记住,这是特定版本的媒体创建工具的直接链接,将来可能会过时。 为了下载最新版本,请使用上面指定的上一个链接。

    LEARN MORE  How To Manage Windows Services with services.msc
    了解更多如何使用services.msc管理Windows服务

    https://software-download.microsoft.com/download/pr/MediaCreationTool1903.exe

    https://software-download.microsoft.com/download/pr/MediaCreationTool1903.exe

    启动Windows 10媒体创建工具 (Start Windows 10 Media Creation Tool)

    When we start the Windows 10 Media Creation Tool we need some privileges in order to make changes in the existing operating system. So we will be asked for Administrator settings by User Account Control like below.

    启动Windows 10 Media Creation Tool时,我们需要一些特权才能在现有操作系统中进行更改。 因此,如下所示,用户帐户控制将要求我们提供管理员设置。

    Start Windows 10 Media Creation Tool
    Start Windows 10 Media Creation Tool
    启动Windows 10媒体创建工具

    Now the Windows 10 Setup screen will appear which provide a message like Getting a few things ready.  This will gather some information about the system and from the internet about the latest Windows 10. This can take some time which is related to the speed of the internet.

    现在,将出现Windows 10安装程序屏幕,其中提供了诸如“ Getting a few things ready类的消息。 这将收集有关系统的信息以及有关最新Windows 10的互联网信息。这可能需要一些时间,这与互联网的速度有关。

    Windows 10 Setup Getting Started
    Windows 10 Setup Getting Started
    Windows 10安装入门

    As always we have to Accept the EULA - End User License Agreement provided by Microsoft.

    与往常一样,我们必须Accept Microsoft提供的EULA - End User License Agreement

    Accept EULA
    Accept EULA
    接受EULA

    In this step, we will select option Create installation media. We can upgrade the current operating system like Windows 7, Windows 8 into Windows 10. Or We can create installation media (USB flash drive, SVS, or ISO file) for another PC.

    在此步骤中,我们将选择选项Create installation media 。 我们可以将当前的操作系统(例如Windows 7,Windows 8)升级到Windows10。或者我们可以为另一台PC创建安装媒体(USB闪存驱动器,SVS或ISO文件)。

    Windows 10 Media Creation Selections
    Windows 10 Media Creation Selections
    Windows 10媒体创建选择

    In this part, we will see that there are some options for media creation. We can select 3 different options like below.

    在这一部分中,我们将看到用于媒体创建的一些选项。 我们可以选择以下3种不同的选项。

    • Language will provide us a lot of different languages like English, Turkish, Spanish, etc.

      Language将为我们提供许多不同的语言,例如英语,土耳其语,西班牙语等。

    • Edition is the version of the Windows 10 like Home, Pro, etc. More details are provided below the screenshot.

      Edition是Windows 10的版本,例如Home,Pro等。屏幕截图下方提供了更多详细信息。

    • Architecture is the installation CPU architecture like 32-bit or 64-bit. The best choice is 64-bit where 32-bit is abandoned in most of the cases.

      Architecture是安装CPU架构,例如32位或64位。 最好的选择是64位,而在大多数情况下放弃32位。

    Select Installation Media Options
    Select Installation Media Options
    选择安装媒体选项

    Windows 10的提供的版本(Provided Versions Of Windows 10)

    With the Media Creation Tool for Windows 10, the following Windows 10 versions are provided where they can be downloaded and installed automatically. By the way, both 32-bit and 64-bit versions are supported.

    使用适用于Windows 10的媒体创建工具,提供了以下Windows 10版本,可以自动下载和安装它们。 顺便说一下,支持32位和64位版本。

    • Windows 10 Home is designed for home and regular end-users.

      Windows 10 Home是为家庭和普通最终用户设计的。

    • Windows 10 Home N is designed home users but adds some more features to the standard version.

      Windows 10 Home N是专为家庭用户设计的,但在标准版本中添加了更多功能。

    • Windows 10 Home Single Language supports only a single language for Windows 10.

      Windows 10 Home Single Language仅适用于Windows 10单一语言。

    • Windows 10 Pro is a professional version of the Windows mainly advanced home or basic enterprise users.

      Windows 10 ProWindows 10 Pro的专业版本,主要用于高级家庭或基本企业用户。

    • Windows Pro N is a bit advanced version of the Pro.

      Windows Pro NWindows Pro N高级版本。

    LEARN MORE  What Is BIOS (Basic Input/Output System) and How To Access and Use?
    了解更多什么是BIOS(基本输入/输出系统)以及如何访问和使用?

    In this part, we will select the media we want to use. We have the following options.

    在这一部分中,我们将选择我们要使用的媒体。 我们有以下选择。

    • USB flash drive will install the Windows10 into a USB flash drive we have attached. The USB flash drive must be at least 8 GB.

      USB flash drive会将Windows10安装到我们附带的USB闪存盘中。 USB闪存驱动器必须至少为8 GB。

    • ISO file will download the ISO file of the Windows 10. We can burn or write into USB flash, DVD later.

      ISO file将下载Windows 10的ISO文件。稍后,我们可以刻录或写入USB闪存,DVD。

    Choose Media
    Choose Media
    选择媒体

    In this step, we will select the USB flash drive we want to write Windows 10 installation files. Then click new which will write into USB flash drive. Below we can see that there is only single drive C:\ where the Windows installation files will be put.

    在此步骤中,我们将选择要写入Windows 10安装文件的USB闪存驱动器。 然后单击新建,它将写入USB闪存驱动器。 下面我们可以看到只有一个驱动器C:\将放置Windows安装文件。

    Select USB Flash
    Select USB Flash
    选择USB闪存

    After the Windows 10 USB Installation is completed the following files will exist in the USB Flash drive. We can see that there are the following files and folders.

    Windows 10 USB安装完成后,USB闪存驱动器中将存在以下文件。 我们可以看到有以下文件和文件夹。

    •  boot contains boot related files and configurations.

      boot包含与引导相关的文件和配置。

    • efi contains EFI boot files and certificates.

      efi包含EFI引导文件和证书。

    Windows 10 Installation USB Drive
    Windows 10 Installation USB Drive
    Windows 10安装USB驱动器

    翻译自: https://www.poftut.com/how-to-download-and-use-windows-10-media-creation-tool-to-create-windows-10-usb-or-dvd/

    展开全文
  • win10 消息队列服务怎么开启的情况我认为很多网友都遇到过,甚至有些时候会经常碰到,这个win10 消息队列服务怎么开启的问题平时不多见,也许还会难倒一些大神,如果你咨询很多人都不知道win10 消息队列服务怎么开启...
  • 使用Python在Windows 10上显示通知信息

    千次阅读 2022-02-07 19:40:49
    https://github.com/jithurjacob/Windows-10-Toast-Notifications 安装**win10toast** pip install win10toast 使用示例 from win10toast import ToastNotifier toast = ToastNotifier() toast.show_toast(title=...
  • Windows 窗口发送消息参数详解

    万次阅读 2020-06-24 15:32:25
    窗口发送消息参数详解 // 窗口.发送消息 函数功能: 将指定的消息发送到一个窗口,同win32 api 里面的SendMessage等同的效果 中文函数原型: 发送消息(hwnd,msg,wparam,iparam) 英文函数原型: sendmessage(hwnd,...
  • win键+u 打开控制面板 点击进入主页 3.点击系统后选择左侧的通知和操作 4.从右侧找到qq应用,点击并选择高级选项 5.点击重置即可
  • windows消息传递机制详解

    万次阅读 多人点赞 2018-01-31 18:06:11
    Windows消息提供了应用程序之间、应用程序与Windows系统之间进行通信的手段。应用程序想要实现的功能由消息来触发,并且靠对消息的响应和处理来完成。必须注意的是,消息并非是抢占性的,无论事件的缓急,总是按照...
  • 您好,Windows7和Windows10的区别还是蛮大的,我们来开始慢慢讲解两者的具体区别有哪些。外观方面外观上,Windows7采用的3D立体图标和Aero透明效果,同时加入了很多窗口间的过渡动画和特效,很多人也正是由于沉迷...
  • windows10 记事本进程 键盘消息钩子 dll注入

    千次阅读 多人点赞 2018-03-10 20:21:31
    10、 点击最上方的生成->生成解决方案,成功的话,找到DLL->x64->Debug这个文件夹,看下有没有DLL.dll这个文件,注意:不是DLL->DLL->x64->Debug这个文件夹,不要问我为什么会知道。 至此第一部分就算完成了,...
  • 上周末把电脑系统升级成了win11,有吐槽也有爽点,但我还是换回了win10,今天就当做是win11系统的测评文章吧,有优点也有缺点,至于升不升级用不用完全看个人的需求。 领取福利 300+Python经典编程案例 50G+学习...
  • Golang 实现调用 Windows 10 通知

    千次阅读 2019-05-25 12:42:27
    Golang 实现调用 Windows 10 通知 使用到的库:https://github.com/go-toast/toast toast 库实现原理很简单,用 Go 的 exec.Command 调用临时生成的包含通知代码的 Powershell 脚本 示例代码: package main import...
  • 锁定Windows 10 PC的10种方法

    千次阅读 2021-06-19 07:21:25
    离开时,锁定Windows 10 PC是保护计算机安全的最佳方法。这不会退出或中断任何正在运行的应用程序,您必须输入PIN或密码才能通过锁定屏幕。您可以通过以下10种方式锁定计算机。在“开始”菜单中锁定计算机毫不奇怪,...
  • 其实也不是什么挺新鲜的事情,早在之前Nokia时代,Windows Phone还掀起过一波小高潮,不过随着安卓系统的强势崛起,微软还是继续跟英特尔(wintel)继续过安稳日子去了,至于2017年推出的Windows10 RT版本,可用性...
  • windows 10系统运行shell脚本

    千次阅读 2021-09-18 14:03:40
    (11条消息) Windows10下安装Git_勿忘初心的博客-CSDN博客_windows安装git 安装好git后,可按照如下步骤执行shell脚本. 1.进入sh脚本所在得文件夹 2.右键点击空白处,选择 Git Bash Here 3.即可执行脚本命令 ...
  • 通过Windows仿真器在PC上安装Windows10X

    千次阅读 2020-02-15 09:36:04
    微软已经为开发者提供了Windows 10X的预览版本,以便其开始在即将推出的双屏Windows设备(例如Surface Neo)上测试和开发程序。 Windows 10X只能Windows内测用户下载,只作为Microsoft模拟器的附加程序包。它不能...
  • 更改硬件后如何重新激活Windows 10

    千次阅读 2020-09-23 05:12:17
    Did your PC suffer a catastrophic failure requiring new ... Have you upgraded to better components and Windows 10 just doesn’t recognize your PC? This guide shows you how to reactivate Windows 1...
  • windows10arm手机版是微软与高通合作后推出的arm芯片的专属微软系统,该系统可以运行exe文件,类似于桌面端,arm作为未来系统发展方向,为用户提供了移动手机办公的可能性。windows10arm镜像介绍Windows 10 on ARM...
  • Windows搭建青龙面板最新教程

    千次阅读 2022-04-27 11:53:05
    然后继续下载安装https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 接着我们去D盘新建Docker文件夹,然后在Docker文件夹内创建"ql"文件夹,进入“ql”文件夹后创建“config”,“log”,...
  • 请访问原文链接:https://sysin.org/article/windows-10/,查看最新版。原创作品,转载请保留出处。 Windows 10, version 21H1, all editions 发布日期: 2021/5/18 版本: Windows 10,版本 21H1 21H1 Windows 10 21...
  • Windows10 msg命令

    千次阅读 2021-02-26 16:55:43
    msg:将消息发送给用户。 MSG {username | sessionname | sessionid | @filename | *} [/SERVER:servername] [/TIME:seconds] [/V] [/W] [message] 名称 描述 username 标识指定的用户名。 sessionname ...
  • 遇到这种操作,建议跳过:有一步疏漏,或遇到 Windows 10 系统升级 / 改版,其带来的后果将难以恢复(因为过于深入操作系统)。 推荐的方法一:磁盘清理(最简单) 右键 C 盘 - 属性 - 常规 - 磁盘清理 在确认你的...
  • windows】win10如何安装使用bitlocker

    千次阅读 2021-09-10 10:34:00
    服务器端需要安装加密磁盘,Linux的可以使用cryptsetup,win的话可以...但是服务器中并没有该选项,在Windows搜索bitlocker也没有相关选项。如果遇到这个问题,可以使用下面的方法开启bitlocker。 1. 查看bitlocker功
  • 10行代码带你入门Windows编程

    千次阅读 多人点赞 2022-04-22 12:21:08
    手把手带你入门Windows
  • 详细教你windows10的配置要求

    千次阅读 2021-07-13 02:07:11
    随着科技与生活水平的提高电脑的硬件配置也是多年前不可比拟的,现在大部分的电脑...Windows10从刚发布时的很多人不想升级win10系统到现在大部分的人都想升级到win10系统离不开它的更新完善与各种特点的吸引,Windo...
  • 如何离开Windows 10的S模式

    千次阅读 2020-09-15 01:50:23
    Some PCs, including Microsoft’s Surface Laptop and the Windows on ARM PCs, run “Windows 10 in S Mode.” In S Mode, Windows can only run apps from the Store—but you can leave S Mode in a few clicks....
  • 如何在Windows 10中打开设置?

    千次阅读 2020-10-13 13:45:09
    Windows 10 provides the Windows Settings in order to configure different settings of the Windows 10. Windows Settings features are provided with Windows 10 and did not provide for Windows 7, Windows 8...
  • Windows 10上,如果您尝试使用远程桌面应用程序连接到计算机或访问共享的网络,并且收到错误的密码错误消息,或者根本无法连接,则可能是由于以下原因这个问题,但最像是一个帐户问题,而不是连接问题。...
  • 我们在使用 Windows 电脑工作或者学习的时候,现在很多人手上可能都有一些半淘汰的笔记本电脑。可能是自己以前的主力电脑,但现在由于配置原因或者换了新机器而闲置了。 但是我们又不舍得卖掉或者让它吃灰,那这时候...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 243,814
精华内容 97,525
关键字:

window10最新消息