首页 > 编程语言 >在C#中如何监控其它应用全屏

在C#中如何监控其它应用全屏

时间:2024-08-02 11:39:35浏览次数:12  
标签:控件 C# OBJECT 发送 对象 事件 监控 EVENT 全屏

在C#中判断其它应用全屏可以有多种方案。我这里提供两种思路

 

1、使用定时器

在定时器中定时判断当前窗口的状态是否是最大化或者宽高是否等于桌面窗口的宽高。

这种方法我没有去尝试,凭个人经验,感觉定时器会消耗一定的系统资源。

但我还是列一下大概的思路

 

  1. 创建定时器
  2. 在定时器中调用GetDesktopWindow Api函数获取桌面窗口句柄
  3. 在定时器中调用GetForegroundWindow Api函数获取当前前台窗口句柄
  4. 在定时器调用GetWindowRect函数获取以前两个窗口的大小,然后进行比较

步骤4也可以使用GetWindowPlacement函数,然后判断窗口的状态是否是最大化。

 

2、使用事件钩子函数SetWinEventHook

SetWinEventHook函数可以对各种事件进行Hook,详细的事件可以参考下表

常量/值说明
EVENT_AIA_START/EVENT_AIA_END
0xA000-0xAFFF
辅助功能互操作性联盟 (AIA) 指定的 WinEvent 常量值的范围,供整个行业使用。 有关详细信息,请参阅 WinEvent ID 的分配
EVENT_MIN/EVENT_MAX
0x00000001-0x7FFFFFFF
可能的最低和最高事件值。
EVENT_OBJECT_ACCELERATORCHANGE
0x8012
对象的 KeyboardShortcut 属性 已更改。 服务器应用程序为它们的辅助性对象发送该事件。
EVENT_OBJECT_CLOAKED
0x8017
在隐藏窗口时发送。 隐藏的窗口仍然存在,但对用户不可见。
EVENT_OBJECT_CONTENTSCROLLED
0x8015
窗口对象的滚动已结束。 与 EVENT_SYSTEM_SCROLLEND不同,此事件与滚动窗口相关联。 无论滚动是水平滚动还是垂直滚动,只要滚动操作完成,都应发送此事件。
WinEventProc 回调函数的 hwnd 参数描述滚动窗口;idObject 参数OBJID_CLIENTidChild 参数CHILDID_SELF。
EVENT_OBJECT_CREATE
0x8000
已创建 对象。 系统为以下用户界面元素发送此事件:插入点、 标题控件、 列表视图控件、 选项卡控件、 工具栏控件、 树视图控件和 窗口 对象。 服务器应用程序为它们的辅助性对象发送该事件。
在为父对象发送事件之前,服务器必须为对象的所有子对象发送事件。 服务器必须确保在父对象发送此事件之前,已完全创建所有子对象并准备好接受来自客户端的 IAccessible 调用。
由于父对象在其子对象之后创建,因此客户端必须确保在调用 IAccessible::get_accParent之前已创建对象的父对象,尤其是在使用上下文中挂钩函数的情况下。
EVENT_OBJECT_DEFACTIONCHANGE
0x8011
对象的 DefaultAction 属性 已更改。 操作系统为对话框发送该事件。 服务器应用程序为它们的辅助性对象发送该事件。
EVENT_OBJECT_DESCRIPTIONCHANGE
0x800D
对象的 Description 属性 已更改。 服务器应用程序为它们的辅助性对象发送该事件。
EVENT_OBJECT_DESTROY
0x8001
对象已被销毁。 系统为以下用户界面元素发送此事件:插入点、标题控件、列表视图控件、选项卡控件、工具栏控件、树视图控件和窗口对象。 服务器应用程序为它们的辅助性对象发送该事件。
客户端假定当父对象发送此事件时,对象的所有子级都会被销毁。
收到此事件后,客户端不会调用对象的 IAccessible 属性或方法。 但是,只要由于 COM 规则) ,接口指针 (存在引用计数,接口指针必须保持有效,但 UI 元素可能不再存在。 对接口指针的进一步调用可能会返回失败错误;为了防止这种情况,服务器 会创建代理对象 并监视其生命周期。
EVENT_OBJECT_DRAGSTART
0x8021
用户开始拖动元素。 WinEventProc 回调函数的 hwndidObject 和 idChild 参数标识要拖动的对象。
EVENT_OBJECT_DRAGCANCEL
0x8022
用户已结束拖动操作,然后再将拖动的元素放在放置目标上。 WinEventProc 回调函数的 hwndidObject 和 idChild 参数标识要拖动的对象。
EVENT_OBJECT_DRAGCOMPLETE
0x8023
用户删除了放置目标上的元素。 WinEventProc 回调函数的 hwndidObject 和 idChild 参数标识要拖动的对象。
EVENT_OBJECT_DRAGENTER
0x8024
用户将元素拖动到放置目标的边界。 WinEventProc 回调函数的 hwndidObject 和 idChild 参数标识放置目标。
EVENT_OBJECT_DRAGLEAVE
0x8025
用户将元素拖出放置目标的边界。 WinEventProc 回调函数的 hwndidObject 和 idChild 参数标识放置目标。
EVENT_OBJECT_DRAGDROPPED
0x8026
用户删除了放置目标上的元素。 WinEventProc 回调函数的 hwndidObject 和 idChild 参数标识放置目标。
EVENT_OBJECT_END
0x80FF
最高的对象事件值。
EVENT_OBJECT_FOCUS
0x8005
对象已接收键盘焦点。 系统为以下用户界面元素发送此事件:列表视图控件、菜单栏、弹出菜单、切换窗口、选项卡控件、树视图控件和窗口对象。 服务器应用程序为它们的辅助性对象发送该事件。
WinEventProc 回调函数的 hwnd 参数标识接收键盘焦点的窗口。
EVENT_OBJECT_HELPCHANGE
0x8010
对象的 帮助属性 已更改。 服务器应用程序为它们的辅助性对象发送该事件。
EVENT_OBJECT_HIDE
0x8003
对象已隐藏。 系统为以下用户界面元素发送此事件:插入点和光标。 服务器应用程序为它们的辅助性对象发送该事件。
为父对象生成此事件时,所有子对象都已隐藏。 服务器应用程序不会为子对象发送此事件。
隐藏的对象包括 STATE_SYSTEM_INVISIBLE 标志;shown 对象不包括此标志。 EVENT_OBJECT_HIDE 事件还指示已设置STATE_SYSTEM_INVISIBLE标志。 因此,在这种情况下,服务器不会发送 EVENT_OBJECT_STATECHANGE 事件。
EVENT_OBJECT_HOSTEDOBJECTSINVALIDATED
0x8020
承载其他可访问对象的窗口已更改托管对象。 客户端可能需要查询主机窗口以发现新的托管对象,尤其是在客户端一直在监视窗口中的事件时。 托管对象是与主机不同的辅助功能框架 (MSAA 或 UI 自动化) 的对象。 托管对象中与主机相同的框架中的更改应随结构更改事件一起处理,例如 MSAA 的EVENT_OBJECT_CREATE 。 有关详细信息,请参阅 winuser.h 中的注释。
EVENT_OBJECT_IME_HIDE
0x8028
IME 窗口已隐藏。
EVENT_OBJECT_IME_SHOW
0x8027
IME 窗口已变为可见。
EVENT_OBJECT_IME_CHANGE
0x8029
输入法窗口的大小或位置已更改。
EVENT_OBJECT_INVOKED
0x8013
已调用 对象;例如,用户单击了一个按钮。 此事件受常见控件支持,由 UI 自动化使用。
对于此事件,WinEventProc 回调函数的 hwndID 和 idChild 参数标识所调用的项。
EVENT_OBJECT_LIVEREGIONCHANGED
0x8019
属于活动区域的对象已更改。 实时区域是应用程序频繁更改和/或异步更改的区域。
EVENT_OBJECT_LOCATIONCHANGE
0x800B
对象已更改位置、形状和大小。 系统为以下用户界面元素发送此事件:插入点和窗口对象。 服务器应用程序为它们的辅助性对象发送该事件。
生成此事件以响应对象层次结构中顶级对象的更改;它不是为对象可能具有的任何子项生成的。 例如,如果用户调整窗口大小,系统会为窗口发送此通知,但不会针对菜单栏、标题栏、滚动条或其他也已更改的对象发送此通知。
当父窗口移动时,系统不会为所有非浮动子窗口发送该事件。 但是,如果应用程序由于调整父窗口的大小而显式调整子窗口的大小,系统将为重设大小的子窗口发送多个事件。
如果对象的 State 属性 设置为 STATE_SYSTEM_FLOATING,则每当对象更改位置时,服务器就会发送 EVENT_OBJECT_LOCATIONCHANGE 。 如果对象不具有此状态,则服务器仅在对象相对于其父级移动时才触发此事件。 对于此事件通知,WinEventProc 回调函数的 idChild 参数标识已更改的子对象。
EVENT_OBJECT_NAMECHANGE
0x800C
对象的 Name 属性 已更改。 系统为以下用户界面元素发送此事件:检查框、光标、列表视图控件、推送按钮、单选按钮、状态栏控件、树视图控件和窗口对象。 服务器应用程序为它们的辅助性对象发送该事件。
EVENT_OBJECT_PARENTCHANGE
0x800F
对象具有新的父对象。 服务器应用程序为它们的辅助性对象发送该事件。
EVENT_OBJECT_REORDER
0x8004
容器对象已添加、移除其子对象或对其子对象重新排序。 系统为以下用户界面元素发送此事件:标头控件、列表视图控件、工具栏控件和窗口对象。 服务器应用程序在适当的时候为它们的辅助性对象发送该事件。
例如,当子元素的数量或元素的顺序发生更改时,列表视图对象会生成此事件。 当子窗口的 Z 顺序更改时,父窗口也会发送此事件。
EVENT_OBJECT_SELECTION
0x8006
容器对象中的选定内容已更改。 系统为以下用户界面元素发送此事件:列表视图控件、选项卡控件、树视图控件和窗口对象。 服务器应用程序为它们的辅助性对象发送该事件。
此事件指示单个选择:在以前不包含任何选定子项的容器中选择了子级,或者所选内容已从一个子级更改为另一个子级。
WinEventProc 回调函数的 hwnd 和 idObject 参数描述容器;idChild 参数标识所选的对象。 如果所选子级是同时包含 对象的窗口,则 idChild 参数 OBJID_WINDOW
EVENT_OBJECT_SELECTIONADD
0x8007
容器对象中的子项已添加到现有选定内容中。 系统为以下用户界面元素发送此事件:列表框、列表视图控件和树视图控件。 服务器应用程序为它们的辅助性对象发送该事件。
WinEventProc 回调函数的 hwnd 和 idObject 参数描述容器。 idChild 参数是添加到所选内容的子级。
EVENT_OBJECT_SELECTIONREMOVE
0x8008
容器对象中的项已从所选内容中删除。 系统为以下用户界面元素发送此事件:列表框、列表视图控件和树视图控件。 服务器应用程序为它们的辅助性对象发送该事件。
此事件指示子项已从现有选定内容中删除。
WinEventProc 回调函数的 hwnd 和 idObject 参数描述容器;idChild 参数标识已从所选内容中删除的子级。
EVENT_OBJECT_SELECTIONWITHIN
0x8009
容器对象中发生了许多选择更改。 系统为列表框发送此事件;服务器应用程序为其可访问的对象发送它。
当控件中的选定项发生重大更改时,将发送此事件。 该事件通知客户端发生了许多选择更改,并且发送该事件而不是多个 EVENT_OBJECT_SELECTIONADD 或 EVENT_OBJECT_SELECTIONREMOVE 事件。 客户端通过调用容器对象的 IAccessible::get_accSelection 方法并枚举所选项来查询所选项。
对于此事件通知,WinEventProc 回调函数的 hwnd 和 idObject 参数描述发生更改的容器。
EVENT_OBJECT_SHOW
0x8002
显示隐藏的对象。 系统为下列用户界面元素发送此事件:插入符号、光标和窗口对象。 服务器应用程序为它们的辅助性对象发送该事件。
客户端假定当父对象发送此事件时,已显示所有子对象。 因此,服务器应用程序不会为子对象发送此事件。
隐藏的对象包括 STATE_SYSTEM_INVISIBLE 标志;shown 对象不包括此标志。 EVENT_OBJECT_SHOW 事件还指示已清除STATE_SYSTEM_INVISIBLE标志。 因此,在这种情况下,服务器不会发送 EVENT_OBJECT_STATECHANGE 事件。
EVENT_OBJECT_STATECHANGE
0x800A
对象的状态已更改。 系统为以下用户界面元素发送此事件:检查框、组合框、标题控件、推送按钮、单选按钮、滚动条、工具栏控件、树视图控件、向上-向下控件和窗口对象。 服务器应用程序为它们的辅助性对象发送该事件。
例如,单击或释放按钮对象时,或者启用或禁用某个对象时,会发生状态更改。
对于此事件通知,WinEventProc 回调函数的 idChild 参数标识其状态已更改的子对象。
EVENT_OBJECT_TEXTEDIT_CONVERSIONTARGETCHANGED
0x8030
IME 组合中的转换目标已更改。 转换目标是 IME 组合的子集,主动选择作为用户发起的转换的目标。
EVENT_OBJECT_TEXTSELECTIONCHANGED
0x8014
对象的文本选择已更改。 此事件受常见控件支持,由 UI 自动化使用。
WinEventProc 回调函数的 hwndID 和 idChild 参数描述更新的文本选择中包含的项。
EVENT_OBJECT_UNCLOAKED
0x8018
在取消隐藏窗口时发送。 隐藏的窗口仍然存在,但对用户不可见。
EVENT_OBJECT_VALUECHANGE
0x800E
对象的 Value 属性 已更改。 系统为包括滚动条和以下控件的用户界面元素发送此事件:编辑、标头、热键、进度栏、滑块和向上。 服务器应用程序为它们的辅助性对象发送该事件。
EVENT_OEM_DEFINED_START/EVENT_OEM_DEFINED_END
0x0101-0x01FF
为 OEM 保留的事件常量值的范围。 有关详细信息,请参阅 WinEvent ID 的分配
EVENT_SYSTEM_ALERT
0x0002
已生成警报。 服务器应用程序不应发送此事件。
EVENT_SYSTEM_ARRANGMENTPREVIEW
0x8016
正在显示预览矩形。
EVENT_SYSTEM_CAPTUREEND
0x0009
窗口已丢失鼠标捕获。 此事件由系统发送,从不由服务器发送。
EVENT_SYSTEM_CAPTURESTART
0x0008
窗口已收到鼠标捕获。 此事件由系统发送,从不由服务器发送。
EVENT_SYSTEM_CONTEXTHELPEND
0x000D
窗口已退出上下文相关帮助模式。 系统不一致地发送此事件。
EVENT_SYSTEM_CONTEXTHELPSTART
0x000C
窗口已进入上下文相关帮助模式。 系统不一致地发送此事件。
EVENT_SYSTEM_DESKTOPSWITCH
0x0020
已切换活动桌面。
EVENT_SYSTEM_DIALOGEND
0x0011
对话框已关闭。 系统为标准对话框发送此事件;服务器将其发送到自定义对话框。 系统不一致地发送此事件。
EVENT_SYSTEM_DIALOGSTART
0x0010
已显示一个对话框。 系统为使用资源模板或 Win32 对话框函数创建的标准对话框发送此事件。 服务器为自定义对话框发送此事件,这些对话框是充当对话框但不是以标准方式创建的窗口。
系统不一致地发送此事件。
EVENT_SYSTEM_DRAGDROPEND
0x000F
应用程序将退出拖放模式。 支持拖放操作的应用程序必须发送此事件;系统不发送此事件。
EVENT_SYSTEM_DRAGDROPSTART
0x000E
应用程序将进入拖放模式。 支持拖放操作的应用程序必须发送此事件,因为系统不会发送它。
EVENT_SYSTEM_END
0x00FF
最高的系统事件值。
EVENT_SYSTEM_FOREGROUND
0x0003
前景窗口已更改。 即使前台窗口已更改为同一线程中的另一个窗口,系统也会发送此事件。 服务器应用程序从不发送该事件。
对于此事件, WinEventProc 回调函数的 hwnd 参数是前台窗口的句柄, idObject 参数 OBJID_WINDOW, idChild 参数 CHILDID_SELF。
EVENT_SYSTEM_MENUPOPUPEND
0x0007
弹出菜单已关闭。 系统为标准菜单发送此事件;服务器将其发送到自定义菜单。
当弹出菜单关闭时,客户端将收到此消息,然后 接收EVENT_SYSTEM_MENUEND 事件。
系统不一致地发送此事件。
EVENT_SYSTEM_MENUPOPUPSTART
0x0006
已显示弹出菜单。 系统为标准菜单发送此事件,这些菜单由 HMENU 标识,并使用菜单模板资源或 Win32 菜单函数创建。 服务器为自定义菜单发送此事件,这些菜单是充当菜单但不以标准方式创建的用户界面元素。 系统不一致地发送此事件。
EVENT_SYSTEM_MENUEND
0x0005
菜单栏中的菜单已关闭。 系统为标准菜单发送此事件;服务器将其发送到自定义菜单。
对于此事件, WinEventProc 回调函数的 hwnd、 idObject 和 idChild 参数引用包含菜单栏的控件或激活上下文菜单的控件。 hwnd 参数是与事件相关的窗口的句柄。 idObject参数OBJID_MENU或OBJID_SYSMENU菜单,或弹出菜单的OBJID_WINDOW。 idChild参数CHILDID_SELF。
EVENT_SYSTEM_MENUSTART
0x0004
已选择菜单栏上的菜单项。 系统为标准菜单发送此事件,这些菜单由 HMENU 标识,使用菜单模板资源或 Win32 菜单 API 元素创建。 服务器为自定义菜单发送此事件,自定义菜单是充当菜单但不以标准方式创建的用户界面元素。
对于此事件, WinEventProc 回调函数的 hwnd、 idObject 和 idChild 参数引用包含菜单栏的控件或激活上下文菜单的控件。 hwnd 参数是与事件相关的窗口的句柄。 idObject 参数是菜单的OBJID_MENUOBJID_SYSMENU,或弹出菜单的OBJID_WINDOW。 idChild参数CHILDID_SELF。
系统触发多个 EVENT_SYSTEM_MENUSTART 事件,这些事件并不总是与 EVENT_SYSTEM_MENUEND 事件相对应。
EVENT_SYSTEM_MINIMIZEEND
0x0017
即将还原窗口对象。 此事件由系统发送,从不由服务器发送。
EVENT_SYSTEM_MINIMIZESTART
0x0016
窗口对象即将最小化。 此事件由系统发送,从不由服务器发送。
EVENT_SYSTEM_MOVESIZEEND
0x000B
窗口的移动或调整大小已完成。 此事件由系统发送,从不由服务器发送。
EVENT_SYSTEM_MOVESIZESTART
0x000A
正在移动窗口或调整窗口的大小。 此事件由系统发送,从不由服务器发送。
EVENT_SYSTEM_SCROLLINGEND
0x0013
滚动条上的滚动已经结束。 此事件由系统为标准滚动条控件和附加到窗口的滚动条发送。 服务器为自定义滚动条发送此事件,这些滚动条是充当滚动条但不是以标准方式创建的用户界面元素。
发送到 WinEventProc 回调函数的 idObject参数OBJID_HSCROLL水平滚动条,垂直滚动条OBJID_VSCROLL
EVENT_SYSTEM_SCROLLINGSTART
0x0012
滚动条上的滚动已经开始。 系统为标准滚动条控件和附加到窗口的滚动条发送此事件。 服务器为自定义滚动条发送此事件,这些滚动条是充当滚动条但不是以标准方式创建的用户界面元素。
发送到 WinEventProc 回调函数的 idObject 参数对于水平滚动条OBJID_HSCROLL,垂直滚动条OBJID_VSCROLL
EVENT_SYSTEM_SOUND
0x0001
已播放声音。 当系统声音(例如菜单声音)被播放时,系统发送此事件,即使没有声音 (,例如,由于缺少声音文件或声音卡) 。 每当自定义 UI 元素生成声音时,服务器都会发送此事件。
对于此事件, WinEventProc 回调函数接收 OBJID_SOUND 值作为 idObject 参数。
EVENT_SYSTEM_SWITCHEND
0x0015
用户已释放 Alt+TAB。 此事件由系统发送,从不由服务器发送。 WinEventProc 回调函数的 hwnd 参数标识用户已切换到的窗口。
如果用户按下 Alt+TAB 时只有一个应用程序正在运行,则系统会发送此事件,而不发送相应的 EVENT_SYSTEM_SWITCHSTART 事件。
EVENT_SYSTEM_SWITCHSTART
0x0014
用户已按 Alt+TAB,这会激活切换窗口。 此事件由系统发送,从不由服务器发送。 WinEventProc 回调函数的 hwnd 参数标识用户要切换到的窗口。
如果用户按 Alt+TAB 时只有一个应用程序正在运行,则系统会发送 EVENT_SYSTEM_SWITCHEND 事件,而不发送相应的 EVENT_SYSTEM_SWITCHSTART 事件。
EVENT_UIA_EVENTID_START /EVENT_UIA_EVENTID_END
0x4E00-0x4EFF
为 UI 自动化事件标识符保留的事件常量值的范围。 有关详细信息,请参阅 WinEvent ID 的分配
EVENT_UIA_PROPID_START/EVENT_UIA_PROPID_END
0x7500-0x75FF
为 UI 自动化属性更改事件标识符保留的事件常量值的范围。 有关详细信息,请参阅 WinEvent ID 的分配

 

这里我们Hook EVENT_OBJECT_LOCATIONCHANGE事件就可以,它可以在对象已更改位置、形状和大小时通知。

 

简单介绍一下SetWinEventHook函数,它的声明如下:

1 HWINEVENTHOOK SetWinEventHook(
2   [in] DWORD        eventMin,
3   [in] DWORD        eventMax,
4   [in] HMODULE      hmodWinEventProc,
5   [in] WINEVENTPROC pfnWinEventProc,
6   [in] DWORD        idProcess,
7   [in] DWORD        idThread,
8   [in] DWORD        dwFlags
9 );

 

各参数说明如下:

eventMin:事件常量的最小值,取值来源可以看前面的表。可以使用EVENT_MIN 常量来代表可用的最小值,因为我们我们这里只需要Hook一种事件,所以直接传EVENT_OBJECT_LOCATIONCHANGE就可以
eventMax:事件常量的最大值
hmodWinEventProc:包含钩子函数的模块,如果是来自DLL,需要指定,如果是来自当前模块,指定为NULL
pfnWinEventProc:事件钩子函数
idProcess:进程ID,指定0时代表所有进程
idThread:线程ID,指定0时代表所有线程
dwFlags:标记值,取值如下
含义
WINEVENT_INCONTEXT
包含回调函数的 DLL 映射到生成事件的进程的地址空间中。 使用此标志,系统会在事件通知发生时向回调函数发送事件通知。 指定此标志时,挂钩函数必须位于 DLL 中。 当调用进程和生成进程都不是 32 位或 64 位进程,或者生成进程是控制台应用程序时,此标志不起作用。 有关详细信息,请参阅 上下文中挂钩函数
WINEVENT_OUTOFCONTEXT
回调函数不会映射到生成事件的进程的地址空间中。 由于挂钩函数是跨进程边界调用的,因此系统必须对事件进行排队。 虽然此方法是异步的,但事件保证按顺序排列。 有关详细信息,请参阅 上下文外挂钩函数
WINEVENT_SKIPOWNPROCESS
防止挂钩的此实例接收此进程中线程生成的事件。 此标志不会阻止线程生成事件。
WINEVENT_SKIPOWNTHREAD
防止此挂钩实例接收注册此挂钩的线程生成的事件。
 


 
 
 

参考资料:

https://stackoverflow.com/questions/17436795/setwineventhook-window-maximized-event/34549801#34549801

https://learn.microsoft.com/en-us/windows/win32/winauto/event-constants

https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-unhookwinevent

https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwineventhook

https://stackoverflow.com/questions/7009080/detecting-full-screen-mode-in-windows

标签:控件,C#,OBJECT,发送,对象,事件,监控,EVENT,全屏
From: https://www.cnblogs.com/zhaotianff/p/18338275

相关文章

  • Qt 和 VS 使用 crypto++
    官网:https://www.cryptopp.comGitHub:https://github.com/weidai11/cryptopp修改后的820版本https://github.com/dragonfly1208/cryptopp/tree/cryptopp820在线文档:https://www.cryptopp.com/docs/ref/index.html1生成动态库静态库文件1.1VS编译生成dll和lib库,版本:cryptop......
  • day16 Java基础——JavaDoc生成文档
    day16Java基础——JavaDoc生成文档目录day16Java基础——JavaDoc生成文档1.什么是JavaDoc2.生成JavaDoc2.1通过命令行生成JavaDoc2.2使用IDEA生成JavaDoc1.什么是JavaDocJavaDoc是一种标准的、用于生成Java代码API文档的工具。它通过在Java源代码中特定的......
  • 西门子smart能搜到cpu但连接当前IP地址失败
    如果显示这一步,那么你的物理连接是没有问题的,应当是plc和电脑并不在同一网段导致的问题首先打开smart左侧菜单栏的通信将通信接口改为TCPIP.AUTO.1结尾再次尝试,如果还是报错,那么win+r打开运行,打开cmd输入ipconfig查看本机网段与plc是否为同一网段此电脑就不在同一网段所......
  • Oracle归档日志异常增长问题的排查过程 转载 : https://blog.csdn.net/3moods/article
    Oracle归档日志是Oracle数据库的重要功能,用于将数据库的重做日志文件(RedoLog)保存到归档日志文件(ArchiveLog)中。归档日志的作用是提供数据库的备份和恢复功能,以及支持数据库的持续性和数据完整性。当数据库处于归档模式时,数据库引擎会将已经写满的重做日志文件保存到归档日志文件......
  • 基于STC8H4K64TL单片机的串口1打印RTC(即实时时钟)功能调试
    基于STC8H4K64TL单片机的串口1打印RTC(即实时时钟)功能调试STC8H4K64TL单片机介绍STC8H4K64TL单片机管脚图(48个引脚)STC8H4K64TL单片机串口仿真与串口通信STC8H4K64TL单片机管脚图(32个引脚)STC8H4K64TL单片机管脚图(20个引脚)STC8H系列单片机管脚说明STC8H系列单片机I/O......
  • 基于STC8H系列单片机的串口1打印片内EEPROM擦除数据、读取数据、写入数据功能调试
    基于STC8H系列单片机的串口1打印片内EEPROM擦除数据、读取数据、写入数据功能调试STC8H4K64TL单片机介绍STC8H4K64TL单片机管脚图(48个引脚)STC8H4K64TL单片机串口仿真与串口通信STC8H4K64TL单片机管脚图(32个引脚)STC8H4K64TL单片机管脚图(20个引脚)STC8H系列单片机管脚......
  • PHP8中match表达式的强劲功能
    hp8中match表达式的强劲功能,让你写代码更加灵活PHP8是PHP语言的最新版本,带来了很多新功能和优化,其中一个最令人振奋的功能是新的match表达式。这个表达式与switch语句类似,但比switch语句更加强大和灵活,使开发人员写代码更加方便,而且代码清晰易读。在本文中,我们将深入研究match表......
  • docker mirrors (适合中国宝宝的镜像源
    dockermirrors(适合中国宝宝的镜像源)原创 酱酱酱酱酱酱酱酱酱酱酱酱酱酱夕 混日子码农  2024年06月26日09:02 浙江 6人听过DockerMirror从去年开始. hub.docker.com[1] 在国内的访问速度极慢.当时大家主要还是依赖国内的一些镜像源:如中科院或alipapaet......
  • phpstudy配置SSL CA证书
    本地Windows环境,phpstudy集成php7后,出现错误提示:URLerror60:SSLcertificateproblem:unabletogetlocalissuercertificate查询问题:SSLCA证书配置缺失导致。1、从CURL官网下载CA证书(cacert.pem)可选择下载:https://curl.haxx.se/docs/caextract.html或直接下......
  • 下一代云电脑技术来临,为什么PC Farm才是未来,以ToDesk为例
    近年来飞速发展的云电脑技术,正在挤压传统电脑的生存空间。由于用户对电脑计算能力的要求日益增高,而传统电脑往往会受限于硬件性能无法更新,更换花费较高等因素,难以满足用户对高性能电脑的期待。与此同时,下一代的云电脑技术中PCFarm模式,以其卓越的性能、灵活性和成本效益进入用户......