经过不断的改进,现在的 aardio 嵌入 .Net 组件很多时候比 .Net 自身可能要方便,不但调用 .Net 的代码很简洁,也可以兼容主流 .Net 不同版本的运行时(支持所有主流桌面操作系统,不需要额外再去安装 .Net ),并且可以内存嵌入 .Net 编程语言生成的 DLL程序集,并生成独立EXE文件。 先看看在 aardio 中调用这个扩展库的代码: import win.ui; /*DSG{{*/ var mainForm = win.form(text='aardio 利用开源库OpenHardwareMonitor获取CPU或显卡温度';right=791;bottom=699) mainForm.add( edit={cls='edit';left=8;top=4;right=787;bottom=696;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=1} ) /*}}*/
import sys.openHardwareMonitor; var computer = sys.openHardwareMonitor.computer();
computer.enumHardware(function(hardwareItem,path,index){ hardwareItem.Update() mainForm.edit.print( path + hardwareItem.Name,hardwareItem.HardwareTypeString ); for i,sensor in hardwareItem.eachSensors(){ mainForm.edit.print(path+'\t',sensor.Name,sensor.ValueString,sensor.MaxString,sensor.SensorTypeString ) } return path + '\t'; },'')
mainForm.show() win.loopMessage();
非常简单,这里要注意一下上面DLL程序集文件路径前面有一个 $ 符号: $'~\lib\sys\openHardwareMonitor\.res\OpenHardwareMonitorLib.dll' $ 这个符号的作用是指示 aardio 将这个 DLL 编译到代码中 —— 在运行时直接通过内存加载这个 DLL,也就是说发布程序以后就不再需要这个 DLL 文件了,很多 .Net 程序集体积非常小,嵌入这些程序集很不错。 |
|