如何使用PHP COM调用kernel32.GetTickCount



我试图通过PHP COM扩展从KERNEL32.DLL执行GetTickCount,但没有成功。我应该使用什么ProgID或类ID来执行GetTickCount?

$com = new COM("?WhatProgID.ID?");
$time = $com->GetTickCount();

在C++中,它看起来像这样:

#include <windows.h>
#include <iostream>
int main(void)
{
    std::cout << GetTickCount() << std::endl;
}

使用DynamicWrapper:

  1. 下载dynwrap.dllhttp://techsupt.winbatch.com/techsupt/dynawrapNt.zip(或此处的其他版本DynaWrap-DynaCall Wrapper):
  2. 解压缩并注册:regsvr32 dynwrap.dll /c(如果您愿意,也可以重新编译它)

现在下面的代码应该可以工作了(它对我有效):

$com = new COM("DynamicWrapper");
$com->Register("KERNEL32.DLL", "GetTickCount", "i=l", "f=s", "r=l");
echo $com->GetTickCount(0);

输入参数的说明见Readme.txt

最新更新