使用VBS代码获取硬件信息,支持多硬盘、显卡、内存、声卡、网卡、CPU超频识别

0 下载量 150 浏览量 更新于2024-09-01 收藏 57KB PDF 举报
Hardware_Info.vbs 获取硬件信息的VBS代码 Hardware_Info.vbs是一款使用VBS语言编写的脚本,用于获取计算机的硬件信息。该脚本支持多个硬盘、显卡、内存、声卡、网卡、CPU超频识别,并且支持cmd调用。 **硬件信息** 硬件信息是指计算机的物理组件,包括中央处理器(CPU)、内存(RAM)、硬盘、显卡、声卡、网卡等。这些组件的信息对于计算机的性能和稳定性起着至关重要的作用。 **Winmgmts和WMI** Winmgmts是Windows Management Instrumentation(WMI)的缩写,WMI是一个基于COM的API,用于管理和监控Windows操作系统。WMI提供了一种统一的方式来访问和管理Windows操作系统的各种组件,包括硬件、软件和系统设置。 在Hardware_Info.vbs脚本中,使用GetObject函数来获取WMI对象,进而访问和管理计算机的硬件信息。 **Win32_OperatingSystem** Win32_OperatingSystem是WMI的一个类,用于描述操作系统的信息,包括操作系统的名称、版本、安装日期、最后启动时间等信息。在Hardware_Info.vbs脚本中,使用Win32_OperatingSystem类来获取操作系统的信息。 **Win32_BaseBoard和Win32_Bios** Win32_BaseBoard和Win32_Bios是WMI的两个类,用于描述主板和BIOS的信息。Win32_BaseBoard类描述了主板的信息,包括主板的名称、版本、制造厂商等信息。Win32_Bios类描述了BIOS的信息,包括BIOS的制造厂商、日期、版本等信息。 在Hardware_Info.vbs脚本中,使用Win32_BaseBoard和Win32_Bios类来获取主板和BIOS的信息。 **Win32_Processor和Win32_CacheMemory** Win32_Processor和Win32_CacheMemory是WMI的两个类,用于描述处理器和缓存内存的信息。Win32_Processor类描述了处理器的信息,包括处理器的名称、版本、频率等信息。Win32_CacheMemory类描述了缓存内存的信息,包括缓存大小、缓存类型等信息。 在Hardware_Info.vbs脚本中,使用Win32_Processor和Win32_CacheMemory类来获取处理器和缓存内存的信息。 **脚本的执行流程** Hardware_Info.vbs脚本的执行流程可以分为以下几个步骤: 1. 获取WMI对象 2. 获取操作系统信息 3. 获取主板和BIOS信息 4. 获取处理器和缓存内存信息 5. 显示硬件信息 **优点和缺点** Hardware_Info.vbs脚本的优点是: * 支持多个硬盘、显卡、内存、声卡、网卡、CPU超频识别 * 支持cmd调用 * 可以获取计算机的详细硬件信息 但是,Hardware_Info.vbs脚本也存在一些缺点: * 代码结构较为复杂 * 需要具备一定的VBS语言基础 * 不支持所有的硬件组件 Hardware_Info.vbs脚本是一款功能强大且实用的工具,可以帮助用户快速获取计算机的硬件信息。但是,需要具备一定的VBS语言基础和计算机硬件知识。

帮我优化一下这段代码配置2M波特率的CANFD :#include "can.h" #include "gd32c10x.h" #include "gd32c10x_eval.h" void can_gpio_config(void) { rcu_periph_clock_enable(RCU_CAN0); rcu_periph_clock_enable(RCU_CAN1); rcu_periph_clock_enable(RCU_GPIOB); rcu_periph_clock_enable(RCU_AF); gpio_init(GPIOB,GPIO_MODE_IPU,GPIO_OSPEED_50MHZ,GPIO_PIN_8); gpio_init(GPIOB,GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_9); gpio_init(GPIOB, GPIO_MODE_IPU, GPIO_OSPEED_50MHZ, GPIO_PIN_5); gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6); gpio_pin_remap_config(GPIO_CAN0_PARTIAL_REMAP , ENABLE); gpio_pin_remap_config(GPIO_CAN1_REMAP, ENABLE); } void can_config(void) { can_parameter_struct can_parameter; can_fdframe_struct can_fd_parameter; can_fd_tdc_struct can_fd_tdc_parameter; can_struct_para_init(CAN_INIT_STRUCT, &can_parameter); can_deinit(CAN0); can_deinit(CAN1); can_parameter.time_triggered = DISABLE; can_parameter.auto_bus_off_recovery = DISABLE; can_parameter.auto_wake_up = DISABLE; can_parameter.auto_retrans = ENABLE; can_parameter.rec_fifo_overwrite = DISABLE; can_parameter.trans_fifo_order = DISABLE; can_parameter.working_mode = CAN_NORMAL_MODE; can_init(CAN0, &can_parameter); can_init(CAN1, &can_parameter); can_frequency_set(CAN0, CAN_BAUD_RATE); can_frequency_set(CAN1, CAN_BAUD_RATE); can_struct_para_init(CAN_FD_FRAME_STRUCT, &can_fd_parameter); can_fd_parameter.fd_frame = ENABLE; can_fd_parameter.excp_event_detect = ENABLE; can_fd_parameter.delay_compensation = ENABLE; can_fd_tdc_parameter.tdc_filter = 0x04; can_fd_tdc_parameter.tdc_mode = CAN_TDCMOD_CALC_AND_OFFSET; can_fd_tdc_parameter.tdc_offset = 0x04; can_fd_parameter.p_delay_compensation = &can_fd_tdc_parameter; can_fd_parameter.iso_bosch = CAN_FDMOD_ISO; can_fd_parameter.esi_mode = CAN_ESIMOD_HARDWARE; can_fd_init(CAN0, &can_fd_parameter); can_fd_init(CAN1, &can_fd_parameter); can_fd_frequency_set(CAN0, CANFD_BAUD_RATE); can_fd_frequency_set(CAN1, CANFD_BAUD_RATE); can1_filter_start_bank(14); can_filter_mask_mode_init(DEV_CAN0_ID, DEV_CAN0_MASK, CAN_EXTENDED_FIFO0, 0); can_filter_mask_mode_init(DEV_CAN1_ID, DEV_CAN1_MASK, CAN_EXTENDED_FIFO0, 15); nvic_irq_enable(CAN0_RX0_IRQn, 7, 0); nvic_irq_enable(CAN1_RX0_IRQn, 7, 0); can_interrupt_enable(CAN0, CAN_INTEN_RFNEIE0); can_interrupt_enable(CAN1, CAN_INTEN_RFNEIE0); }

2023-05-31 上传