Windows API 解释器

4
有没有一个解释器可以输出Windows API调用的结果,例如GetVersionEx?
3个回答

6

不确定这是否是您想要/需要的,但我会建议使用带有pywin32模块的Python。


或者使用ctypes来调用那些难以到达的函数! - David Heffernan

2
Ruby也可能是一种选择。以下是一个示例,显示了对GetVersionEx的调用结果。
require "Win32API"

gvex = Win32API.new( 'kernel32', 'GetVersionEx', ['P'], 'I' )
s = [20+128, 0, 0, 0, 0, '' ].pack('LLLLLa128')
gvex.call( s );
a = s.unpack( 'LLLLLa128' )
puts "gvex: ", a

这个例子只传递了148个字节(OSVERSION结构的大小),而不是整个OSVERSIONEX结构。


2

使用WMI也可以获取操作系统的版本和其他数据信息。

以下是VBScript示例,无需编译任何内容:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") 
For Each objOS in colOSes 
  Wscript.Echo "Computer Name: " & objOS.CSName 
  Wscript.Echo "Caption: " & objOS.Caption 'Name 
  Wscript.Echo "Version: " & objOS.Version 'Version & build 
  Wscript.Echo "Build Number: " & objOS.BuildNumber 'Build 
  Wscript.Echo "Build Type: " & objOS.BuildType 
  Wscript.Echo "OS Type: " & objOS.OSType 
  Wscript.Echo "Other Type Description: " & objOS.OtherTypeDescription 
  WScript.Echo "Service Pack: " & objOS.ServicePackMajorVersion & "." & _ 
   objOS.ServicePackMinorVersion 
Next 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接