如何从 PHP 进行 Win32 API 调用?

Posted

技术标签:

【中文标题】如何从 PHP 进行 Win32 API 调用?【英文标题】:How do I make Win32 API calls from PHP? 【发布时间】:2009-09-11 15:34:01 【问题描述】:

我知道我可以使用 COM 组件,但是有没有办法直接从 php 调用 Win32 API(user32.dll、advapi32.dll 等),或者我是否需要包装在 PHP 扩展或 COM 对象中?

【问题讨论】:

【参考方案1】:

见第一条评论here:

我能够使用 PHP5 调用 Win32 API 函数的唯一方法是通过 COM 和 DynamicWrapper。

以下是使用计算机扬声器播放哔声的示例:

<?php
$com = new COM("DynamicWrapper");
$com->Register("KERNEL32.DLL", "Beep", "i=ll", "f=s", "r=l");
$com->Beep(5000, 100);
?>

您可以获得更新的 DynamicWrapper here。您必须使用 regsvr32 进行注册。

【讨论】:

【参考方案2】:

对 php 的 win32api 支持非常不稳定。看看这个

http://php.net/manual/en/book.w32api.php

【讨论】:

我认为 win32api 被拉了。 Phalanger 会很好,但遗憾的是不是一个选择。 嗯...我觉得 COM 包装器正在开发中。

以上是关于如何从 PHP 进行 Win32 API 调用?的主要内容,如果未能解决你的问题,请参考以下文章

按下回车按钮时如何使用 C++ Win32 API 调用按钮?

如何从.Net调用win32 CreateMutex

如何使用 C# 拦截 Win32 API 调用?

C#调用Win32 api学习总结

python可以直接调用win32的api吗

MSIL 教程:数组分支循环使用不安全代码和如何调用Win32 API(转)