coderstephen/windows-registry

此包已被弃用且不再维护。未建议替代包。

一个用于访问和操作Windows注册表的库

v0.9.1 2015-05-16 03:34 UTC

README

Build Version Code Quality License

这是一个用于访问和操作Microsoft Windows系统上注册表的库。在您需要在PHP应用程序中访问Windows注册表的那一刻。

此库可以(并且已经被)在生产代码中使用,但在使用之前请阅读以下免责声明。

特性

  • 读取和写入对注册表中的任何hive、键或值(您有权限访问)的访问权限
  • 自动在所有注册表值数据类型和PHP标量类型之间进行转换
  • 延迟加载的值列表迭代器和递归键和子键迭代器
  • 能够通过远程WMI(Windows管理规范)连接连接到远程计算机上的注册表(有关详细信息,请参阅Microsoft关于如何远程连接到WMI的文档)

要求

  • Microsoft Windows(Vista或更新版)或Windows Server(Windows Server 2003或更新版)
  • PHP com_dotnet 扩展

安装

使用 Composer

> composer require coderstephen/windows-registry:~0.9

文档

完整的API文档可以在网上这里找到。

示例

以下是一个创建包含一些值的新注册表键然后删除它们的示例。

use Windows\Registry;

$hklm = Registry\Registry::connect()->getLocalMachine();
$keyPath = 'Software\\MyKey\\MySubKey';

// create a new key
try
{
    $mySubKey = $hklm->createSubKey($keyPath);
}
catch (Registry\Exception $e)
{
    print "Key '{$keyPath}' not created" . PHP_EOL;
}

// create a new value
$mySubKey->setValue('Example DWORD Value', 250, Registry\RegistryKey::TYPE_DWORD);

// delete the new value
$mySubKey->deleteValue('Example DWORD Value');

// delete the new key
try
{
    $hklm->deleteSubKey($keyPath);
}
catch (Registry\Exception $e)
{
    print "Key '{$keyPath}' not deleted" . PHP_EOL;
}

您还可以使用内置迭代器遍历子键和值

foreach ($key->getSubKeyIterator() as $name => $subKey)
{
    print $subKey->getQualifiedName() . PHP_EOL;
}

foreach ($key->getValueIterator() as $name => $value)
{
    printf("%s: %s\r\n", $name, $value);
}

免责声明

玩弄Windows注册表可能很危险;Microsoft有很多关于它如何能破坏您的安装的警告。不仅应该小心访问注册表,此库不保证 100%安全使用且无错误。请谨慎使用,并在可能的情况下在虚拟机上测试您的代码。我对由此库造成的任何损害不负责任。有关详细信息,请参阅许可证