coderstephen / windows-registry
此包已被弃用且不再维护。未建议替代包。
一个用于访问和操作Windows注册表的库
v0.9.1
2015-05-16 03:34 UTC
Requires
- php: >=5.3
- ext-com_dotnet: *
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2020-06-05 15:59:56 UTC
README
这是一个用于访问和操作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%安全使用且无错误。请谨慎使用,并在可能的情况下在虚拟机上测试您的代码。我对由此库造成的任何损害不负责任。有关详细信息,请参阅许可证。