WINDOWS运行机制

合集下载

如何在Windows操作系统中管理任务和进程

如何在Windows操作系统中管理任务和进程

如何在Windows操作系统中管理任务和进程第一章:任务和进程的概念及区别任务(Task)和进程(Process)是操作系统中的重要概念,理解它们的区别对于有效管理任务和进程至关重要。

1. 任务(Task)是应用程序的实例,它可以包含一个或多个进程。

任务是操作系统分配资源和管理进程的基本单位。

2. 进程(Process)是计算机程序执行时的一个实例。

每个进程都有自己的内存空间和系统资源,可以单独运行并独立于其他进程。

第二章:任务管理任务管理是指在Windows操作系统中对任务进行查看、创建、删除、切换等操作。

下面是一些常见的任务管理方法:1. 任务管理器:可以通过按下Ctrl+Shift+Esc快捷键直接打开任务管理器。

在任务管理器中,可以查看所有正在运行的任务、系统性能和资源占用情况,也可以结束任务、创建新任务等。

2. 任务栏:任务栏是Windows桌面的一部分,可以通过鼠标右键点击任务栏空白处,选择“任务管理器”打开任务管理器。

任务管理器将显示当前正在运行的任务列表,可以切换任务或结束任务。

3. 命令行:在命令提示符窗口中,使用tasklist命令可以查看当前所有运行的任务,使用taskkill命令可以结束特定的任务。

这些命令可以通过调用批处理文件或PowerShell脚本批量管理任务。

第三章:进程管理进程管理涉及对运行中的进程进行查看、创建、结束、优先级调整等操作。

以下是一些常用的进程管理方法:1. 任务管理器:在任务管理器中,可以查看当前运行的进程列表。

可以通过点击“进程”选项卡来查看详细的进程信息,如进程ID、CPU、内存占用等。

还可以通过“结束进程”来结束特定的进程。

2. 命令行:使用tasklist命令可以列出当前正在运行的进程列表,使用taskkill命令可以结束特定的进程。

通过添加参数,如/prio来调整进程的优先级。

第四章:调度策略调度策略是操作系统为进程分配系统资源的一种机制。

windows操作系统原理

windows操作系统原理

windows操作系统原理Windows操作系统原理是指Windows操作系统设计与实现的基本原理和机制。

Windows操作系统是由微软公司开发的一种面向个人计算机的操作系统。

Windows操作系统的原理包括以下几个方面:1. 多任务管理:Windows操作系统采用了抢占式的多任务处理机制,通过任务调度器来管理多个任务的执行。

每个任务独立运行在自己的进程中,操作系统根据进程的优先级和时间片来进行任务调度。

2. 内存管理:Windows操作系统使用虚拟内存管理机制,将物理内存划分为多个页框,每个进程有自己的虚拟地址空间。

操作系统通过分页机制将虚拟内存映射到物理内存中,以便实现进程间的隔离和保护。

3. 文件系统:Windows操作系统使用NTFS文件系统作为默认的文件系统。

NTFS文件系统支持文件和目录的权限控制、文件压缩和加密等功能。

4. 设备管理:Windows操作系统通过设备驱动程序来管理硬件设备。

每个设备驱动程序负责与特定设备的通信,并提供统一的接口供应用程序调用。

5. 网络通信:Windows操作系统支持TCP/IP协议栈,并提供了各种网络通信服务,如网络协议栈、网络接口、套接字接口等,以实现应用程序之间的网络通信。

6. 用户界面:Windows操作系统提供了图形用户界面(GUI),包括窗口管理、菜单、对话框等,使得用户可以通过鼠标、键盘等输入设备与计算机进行交互。

7. 安全性:Windows操作系统通过用户账户和权限管理来保护系统和用户数据的安全性。

每个用户都有自己的账户,并且可以通过权限控制来限制对文件和系统资源的访问。

这些原理和机制共同构成了Windows操作系统的核心。

通过合理地设计和实现,Windows操作系统能够提供稳定、安全、高效的计算环境,满足用户的各种需求。

windows程序消息机制(Winform界面更新有关)

windows程序消息机制(Winform界面更新有关)

windows程序消息机制(Winform界⾯更新有关)1. Windows程序消息机制Windows GUI程序是基于消息机制的,有个主线程维护着消息泵。

这个消息泵让windows程序⽣⽣不息。

Windows程序有个消息队列,窗体上的所有消息是这个队列⾥⾯消息的最主要来源。

这⾥的While循环使⽤了GetMessage() 这个⽅法,这是个阻塞⽅法,也就是队列为空时⽅法就会阻塞,从⽽这个While循环停⽌运动,这避免了⼀个程序把cpu⽆缘⽆故的耗尽,让其他程序难以得到响应。

当然在某些需要cpu最⼤限度运动的程序⾥⾯就可以使⽤另外的⽅法,例如某些3d游戏或者及时战略游戏中,⼀般会使⽤PeekMessage()这个⽅法,它不会被windows阻塞,从⽽保证整个游戏的流畅和⽐较⾼的帧速。

(PeekMessage是⼀个Windows API函数。

该函数为⼀个消息检查线程消息队列,并将该消息(如果存在)放于指定的结构。

DispatchMessage功能是发送消息给窗⼝,窗⼝收到消息,执⾏事件)。

这个主线程维护着整个窗体以及上⾯的⼦控件。

当它得到⼀个消息,就会调⽤DispatchMessage()⽅法派遣消息,这会引起对窗体上的窗⼝过程的调⽤。

窗⼝过程⾥⾯当然是程序员提供的窗体数据更新代码和其它代码。

2. dotnet⾥⾯的消息循环public static void Main(string[] args){Form f = new Form();Application.Run(f);}Dotnet窗体程序封装了上述的while循环,这个循环就是通过Application.Run⽅法启动的。

3、线程外操作GUI控件的问题如果从另外⼀个线程操作windows窗体上的控件,就会和主线程产⽣竞争,造成不可预料的结果,甚⾄死锁。

因此windows GUI编程有⼀个规则,就是只能通过创建控件的线程来操作控件的数据,否则就可能产⽣不可预料的结果。

windows的运行机制

windows的运行机制
接使用
视图类:负责数据
的显示与打印 单文档应用程序WinGreet中使用到的类
MFC程序的启动
1、创建Application object对象 theApp
程序一开始生产一个(且只有一个)应用类对象 theApp,
也即一个CWinApp对象,这个全局对象一产生,便执行其 构造函数,导致其基类CWinApp类的构造函数被调用。该 函数定义于APPCORE.CPP第75行,因此,CWinApp之中的 成员变量将因为theApp这个全局对象的诞生而获得配置
}
MFC程序的运行
// process this message if (m_msgCur.message != WM_KICKIDLE &&
!PreTranslateMessage(&m_msgCur))
{ ::TranslateMessage(&m_msgCur); ::DispatchMessage(&m_msgCur); }
AfxWinInit之后的操作是pApp->InitApplication 而pApp指向CWinGreetApp对象,所以 相当于调用: CWinGreetApp::InitApplication(); 而CWinGreetApp继承自CWinApp, InitApplication
又是CWinApp的一个虚拟函数,我们并没有改写它(大
与初值
在SDK编程时,是通过一个应用程序的实例号来标示一个应用程序 的。在基于MFC应用程序中,是通过产生一个应用类的对象来唯一
标识我们的整个应用程序。
MFC程序的启动

2、WinMain登场 用SDK编程序时,程序的入口点是WinMain函数, 而在MFC程序里我们并没有看到WinMain函数, 原 来她是被隐藏在MFC代码里面了。当theApp配置完

windows的内存管理机制

windows的内存管理机制

windows的内存管理机制Windows的内存管理机制在计算机系统中,内存管理是一个非常重要的方面,它负责管理计算机系统中的内存资源,确保程序能够正常运行。

Windows作为一种常见的操作系统,也有自己独特的内存管理机制。

一、虚拟内存管理Windows采用了虚拟内存管理机制,将物理内存和虚拟地址空间进行映射,使得每个进程都拥有独立的地址空间。

这样可以提高内存利用率,同时也增加了系统的稳定性和安全性。

Windows的虚拟内存管理机制通过将虚拟地址空间划分为固定大小的页面,将页面映射到物理内存或磁盘上的页面文件。

当程序需要访问某个虚拟地址时,系统会根据页表的映射关系将对应的页面加载到物理内存中,如果物理内存不足,系统会将不常用的页面置换到磁盘上的页面文件中。

二、内存分页Windows将内存分为固定大小的页,一般为4KB。

这样的页大小既能够满足大部分程序的内存需求,又不会造成过多的内存浪费。

内存分页的好处是可以更灵活地管理内存资源。

系统可以按需分配和回收页面,提高内存利用率。

同时,内存分页也增加了内存的安全性,不同的进程之间无法直接访问对方的内存空间,避免了数据的混乱和安全风险。

三、内存保护Windows的内存管理机制还包括内存保护机制,可以确保不同进程之间的内存空间不会相互干扰。

每个进程都有自己的地址空间,内存保护机制可以防止一个进程访问其他进程的内存空间,增强了系统的稳定性和安全性。

四、内存回收Windows的内存管理机制还包括内存回收机制,当一个进程不再需要某个页面时,系统会将该页面回收,释放给其他进程使用。

内存回收可以提高内存的利用率,避免内存的浪费。

五、内存压缩Windows还引入了内存压缩的机制,当系统内存不足时,会将一部分内存压缩,从而释放出更多的内存空间。

内存压缩可以减少对磁盘页面文件的频繁访问,提高系统的响应速度。

六、内存分配Windows的内存管理机制还包括内存分配机制,用于分配和回收内存资源。

windows r3 与r0通信原理

windows r3 与r0通信原理

windows r3 与r0通信原理Windows R3与R0通信原理Windows操作系统是当今世界上最为流行的操作系统之一,它提供了许多强大的功能和便捷的用户界面。

在Windows操作系统中,R3和R0是两个重要的层次,它们分别代表用户态和内核态。

本文将深入探讨Windows R3与R0之间的通信原理。

我们要了解R3和R0的含义。

R3是指Ring 3,即用户态,它是操作系统的最高层次之一。

在R3中,运行着应用程序和用户进程,它们可以访问用户空间的资源,如内存、文件等。

R0是指Ring 0,即内核态,它是操作系统的最低层次。

在R0中,运行着操作系统的内核,它负责管理硬件资源和提供系统服务。

在Windows操作系统中,R3和R0之间的通信是通过系统调用来实现的。

系统调用是一种机制,允许用户态程序向内核态请求服务。

当一个应用程序需要访问受限资源时,它可以通过系统调用请求操作系统的帮助。

例如,当一个应用程序需要读取一个文件时,它可以通过系统调用请求操作系统打开并读取该文件。

具体来说,当一个应用程序发起系统调用请求时,操作系统会将该请求传递给R0中的内核。

内核会根据请求的类型和参数执行相应的操作,并将结果返回给应用程序。

这个过程涉及到用户态和内核态之间的切换。

当应用程序发起系统调用时,它会触发一个特殊的异常,将控制权转移到内核态。

内核会在完成请求后,将控制权再次转移到用户态,使应用程序可以继续执行。

在系统调用中,应用程序和内核之间的通信是通过参数传递的。

应用程序将请求的类型和参数传递给内核,内核根据这些参数执行相应的操作。

参数的传递可以通过寄存器、栈或共享内存等方式进行。

具体的参数传递方式取决于操作系统的实现和架构。

除了系统调用,Windows操作系统还提供了其他的通信机制,如进程间通信(IPC)。

IPC允许不同的应用程序之间进行数据交换和共享资源。

在Windows操作系统中,IPC可以通过命名管道、共享内存、消息队列等方式实现。

简析Windows系统的调度机制_2015011224

简析Windows系统的调度机制_2015011224

电子系 无51班 赵少靖 学号:**********
Windows系统的调度的粒度为线程,首先Windows为每一个线程分配调度优先级。调度根据优先级采用抢占式的调度策略,具有最高优先级的总是最先被执行。每一个线程都分配了一定的时间片,系统通过改变线程的状态来进行线程调度。
Windows系统使用32个优先级来表示线程要求执行的紧迫性,优先级用0~ 31的数字来表示。其中0优先级为内存页清零线程保留,1~ 15为可变优先级,16~ 31为实时优先级别。在应用创建线程时用户可以用形象的优先级描述来设置优先级,当创建进程时可以,可以赋予实时、高、高于一般、一般、低于一般和空闲的优先级别,当创建线程时可以在进程优先级的基础上进一步赋予尽量实时、最高、高于一般、一般、低于一般、最低和空闲的优先级别。处理器调度时参考两个优先级设置,一个是从当前线程所在进程的基准优先级,另一个是线程的优先级。一般来说,应用线程运行在可变优先级别1~ 15范围内,如果需要进入实时优先级别16~ 31范围内来运行,必须取得更高的调度优先级特权。Windows操作系统只有一个内存页清零线程具有最低的调度优先级级别0,以便系统利用空闲时间对内存页清零。
系统中同时有多个线程存在,而处理器一次只能运行一个线程。Windows通过调度数据库来为每一个优先级的线程维护一个就绪等待队列,当处理器需要调入一个线程运行的时候,系统会从调度数据库中找到一个具有最高优先级的就绪线程,并给它分配时间。如果等待队列中有线程比正在运行的线程优先级高,运行的线程就会保存它的上下文环境并进入就绪队列,高优先级的线程恢复它的上下文环境,并进入运行状态。当一个线程进入运行状态时,它就获得了一个可以运行的时间配额。时间配额用完后,调度器会查找调度数据库看是否有就绪的线程在等待,如果有就会将等待的线程运行,而将当前的线程转入等待或者就绪态,如果没有则再分配一个时间片给这个线程。

谈Windows程序的运行机制

谈Windows程序的运行机制
0 引 言 、
MS ms ; G g
要 理 解 MF MirsfFu dt nCas的 应 用 程 序 开 发 过 程 , 要 C( coo o nai l ) t o s 先 理 解 Wid w 程 序 的 运 行 机 制 。 我 们 要 明 白在 W idw 环 境 下 编 程 和 no s n os 在 Do 环 境 下 编 程 的 根 本 性 差 别 、 论 Wid w 的 T 作 机 制 , 需 要 整 s 讨 no s 将 整 一本 书 的 容 量 ( N WS核 心 编 程 ) 际 上 我 们 没 有 必 要 了解 所 有 WI DO 实 的技 术 细 节 , 是 对 于 Wid w 程 序 运 行 的一 些 根 本 性 的 概 念 , 一 个 但 no s 是 v sac +程 序 员 必 须 要 掌 握 的 知 识 。 iul + 1 Wid w 、 n o s程 序 的 开 发 流 程 Wid w 程 序 分 为 “ 序 代 码 ” “ 资 源 ” 大 部 分 , 部 分 最 后 no s 程 和 uI 两 两 以R C编译集成为一个完整 的 E E文件 。所 谓 u 资源是指功能 菜单 、 X I 对 话 框 外 貌 、 序 图标 、 标 形 状 等 东 西 。这 些 u 资 源 的 实 际 内 容 ( 程 光 I 二 进位码 ) 系借助各 种工具 产生 , 以各种 扩展名存 在 , i 、 m . r 并 如.o . p、 n c b c 等 。程序员必须在一个所谓的资源描述文档 ( e 中描述他们 。RC编译 .) r 器 ( CE E) 取 R R .X 读 C文档 的描述后 将所有 u 资 源文档集 中制作 出一 I 个.E R S文件 ,再与程序代码结合在 一起 ,这才是一个 完整的 Widws no 可执行程序。 2 基 于 事 件 驱 动 的 程序 设 计 模 式 、
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Windows程序运行机制 Windows程序运行机制
Winmain函数的程序代码功能: Winmain函数的程序代码功能: 函数的程序代码功能 1、产生并显示程序的主窗口。 窗口创建并 产生并显示程序的主窗口。 显示后, 显示后,用户便可以在窗口上进行各种操作 了,用户的操作及程序状态的变化都以消息 的形式放到了应用程序的消息队列中。 的形式放到了应用程序的消息队列中。 2、从消息队列循环取走消息, 并将消息派 从消息队列循环取走消息, 发到窗口过程函数中去处理。 发到窗口过程函数中去处理。当消息循环取 到 一 条 WM_QUIT 消 息 时 , 将 结 束 循 环 , WinMain函数返回 结束整个程序的运行。 WinMain 函数返回 , 结束整个程序的运行 。 函数返回,
Windows程序运行机制 Windows程序运行机制
消息响应: 消息响应: 应用程序得到消息后,就要对消息进行处理, 应用程序得到消息后,就要对消息进行处理, 这即我们通常说的消息响应。 这即我们通常说的消息响应。 消息响应是我们通过编码实现的,这也是 消息响应是我们通过编码实现的, Windows程序的主要代码区 在消息响应代码中, Windows程序的主要代码区。在消息响应代码中, 程序的主要代码区。 可以调用操作系统提供的API函数 函数, 可以调用操作系统提供的API函数,以便完成特定 的功能。 的功能。 例如收到窗口的WM_CLOSE消息, 例如收到窗口的WM_CLOSE消息,可以调用 消息 DestroyWindow这个 DestroyWindow这个API函数来关闭该窗口,或 这个API函数来关闭该窗口 函数来关闭该窗口, 是用MessageBox这个 这个API函数来提示用户是否真 是用MessageBox这个API函数来提示用户是否真 的要关闭窗口。 的要关闭窗口。
Windows程序运行机制 Windows程序运行机制
WPARAM wParam: wParam: LPARAM lParam: lParam: 用于对消息进行补充说明,如 用于对消息进行补充说明, message成员表示字符消息 message成员表示字符消息,但没有说明 成员表示字符消息, 输入的是哪个字符, 输入的是哪个字符,这就需要用其他变量对 其进行补充说明。wParam,lParam代表的 其进行补充说明。wParam,lParam代表的 意义,随消息的不同而异。 意义,随消息的不同而异。
Windows程序运行机制 Windows程序运行机制
4.WinMain函数 4.WinMain函数 WinMain是Windows程序的入口点函数 WinMain是Windows程序的入口点函数。 程序的入口点函数。 WinMain函数的原型如下 WinMain函数的原型如下: 函数的原型如下: int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // pointer to command line int nCmdShow // show state of window );
Windows程序运行机制 Windows程序运行机制
操作系统要管理和操作这些资源, 操作系统要管理和操作这些资源,都是 通过句柄来找到对应的资源的。 通过句柄来找到对应的资源的。按资源的类 又可将句柄细分成图标句柄(HICON), 型,又可将句柄细分成图标句柄(HICON), 光标句柄(HCURSOR),窗口句柄 光标句柄(HCURSOR),窗口句柄 ), HWND), ),应用程序实例句柄 (HWND),应用程序实例句柄 HINSTANCE),等等各种类型的句柄。 ),等等各种类型的句柄 (HINSTANCE),等等各种类型的句柄。 操作系统给每一个窗口指定的一个唯一的标 识号即窗口句柄。 识号即窗口句柄。
Windows程序运行机制 Windows程序运行机制
第三个参数lpCmdLine 是一个字符串 第三个参数 lpCmdLine是一个字符串 , 里 是一个字符串, 面包含有传递给应用程序的参数串, 面包含有传递给应用程序的参数串,如:双 盘下的1 txt 文件方式启动 文件方式启动notepad. 击 C 盘下的 1.txt文件方式启动 notepad.exe 程序,传递给notepad.exe程序的参数串即 程序,传递给notepad.exe程序的参数串即 “c:\1.txt”,不包含应用程序名本身。 “c: txt”,不包含应用程序名本身。 第四个参数nCmdShow指定的程序的窗口 第四个参数nCmdShow指定的程序的窗口 应该如何显示,如最大化,最小化,隐藏等。 应该如何显示,如最大化,最小化,隐藏等。
Windows程序运行机制 Windows程序运行机制
第二个参数hPrevInstance表示当前实例的 第二个参数hPrevInstance表示当前实例的 上一个正在运行的, 上一个正在运行的,由同一个应用程序所产 生的实例的句柄。如果该值为NULL,则表示 生的实例的句柄。如果该值为NULL,则表示 当前实例是该程序正在运行的第一份实例。 当前实例是该程序正在运行的第一份实例。 如果该值不为NULL,只能表示当前实例不是 如果该值不为NULL,只能表示当前实例不是 该程序正在运行的第一份实例。 该程序正在运行的第一份实例。
Windows程序运行机制 Windows程序运行机制
该函数接受四个参数,这些参数都是系统调 该函数接受四个参数, WinMain函数时 传递给应用程序的。 函数时, 用WinMain函数时,传递给应用程序的。 第一个参数hInstance表示该程序的当前运 第一个参数hInstance表示该程序的当前运 行的实例句柄。 行的实例句柄。同一应用程序在同一计算机 上可运行多份实例,每启动一个这样的实例, 上可运行多份实例,每启动一个这样的实例, 操作系统都要给该实例分配一个标识号, 操作系统都要给该实例分配一个标识号,即 实例句柄, 实例句柄,随后系统调用程序中的 WinMain函数 WinMain函数,并将该实例句柄传递给参 函数, hInstance。 数hInstance。
Windows程序运行机制 Windows程序运行机制
3.关于句柄(HANDLE) 3.关于句柄 关于句柄(HANDLE) 在Windows程序中产生的任何一个资源, Windows程序中产生的任何一个资源 程序中产生的任何一个资源, 如图标,光标,窗口,应用程序的实例( 如图标,光标,窗口,应用程序的实例(已 加载到内存运行中的程序)。操作系统都要 加载到内存运行中的程内存,并为这些内存指定 一个唯一的标识号, 一个唯一的标识号,这个标识号即该资源的 句柄。 句柄。
Windows程序运行机制 Windows程序运行机制
操作系统将每个事件都包装成一个称为消息的 结构体MSG来传递给应用程序的 参看MSDN, 来传递给应用程序的, 结构体MSG来传递给应用程序的,参看MSDN, MSG结构定义如下 MSG结构定义如下: 结构定义如下: typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; } MSG; // msg
Windows程序运行机制 Windows程序运行机制
2、关于消息 如用户在某个程序活动时按了一下键盘, 如用户在某个程序活动时按了一下键盘,操 作系统马上能够感知到这一事件, 作系统马上能够感知到这一事件,并且能够知道 用户按下的是哪一个键, 用户按下的是哪一个键,操作系统并不决定对这 一事件如何作出反应, 一事件如何作出反应,而是将这一事件转交给应 用程序, 用程序,由应用程序决定如何对这一事件作出反 应。 对事件作出反应的过程就是消息响应。 对事件作出反应的过程就是消息响应。
Windows程序运行机制 Windows程序运行机制
这个参数到底有什么作用呢?如果想让我们 这个参数到底有什么作用呢? 的程序只能有一份实例运行, 的程序只能有一份实例运行,不能同时有多份实 例运行,我们可以在WinMain函数的开始部分加 例运行,我们可以在WinMain函数的开始部分加 上如下代码实现。 上如下代码实现。 if(hPrevInstance) return 0; 等效写法: 等效写法:if(hPrevInstance==1) return 0; 表示只要hPrevInstance不为 表示只要hPrevInstance不为NULL,说明已经有 不为NULL, 同样程序的实例在运行,WinMain函数将返回 函数将返回, 同样程序的实例在运行,WinMain函数将返回, 这样就保证了只有程序的一个实例可以运行。 这样就保证了只有程序的一个实例可以运行。在 程序中对应的是return 0语句 语句。 程序中对应的是return 0语句。
Windows程序运行机制 Windows程序运行机制
HWND hwnd: hwnd: 代表消息所属的窗口,一个消息一般都 代表消息所属的窗口, 是与某个窗口相联系的。 是与某个窗口相联系的。 UINT message: message: 代表消息代号, 代表消息代号,在程序中一般以 WM_xxx宏的形式来使用消息 WM_xxx宏的形式来使用消息。如鼠标移动 宏的形式来使用消息。 消息为WM_MOUSEMOVE,键盘按下消息 消息为WM_MOUSEMOVE,键盘按下消息 WM_KEYDOWN,输入一个字符消息为 为WM_KEYDOWN,输入一个字符消息为 WM_CHAR等等 WM_CHAR等等。 等等。
Windows程序运行机制 Windows程序运行机制
DWORD time: time: POINT pt: pt: 分别代表发出消息的时间和鼠标的当前 位置。 位置。
Windows程序运行机制 Windows程序运行机制
相关文档
最新文档