【发布时间】:2015-02-28 04:11:55
【问题描述】:
我想使用我的 exe 验证 xmlfile。所以我想在注册表中设置参数并调用 exe 路径。
下面的代码找不到我执行时死掉的注册表路径。
我无法从注册用户选择中获得 progid。
use strict;
use warnings;
use Win32;
use File::Basename;
use Win32::TieRegistry(Delimiter=>"/");
my $reg,$tmval;
$reg = $Registry->Open("HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts/.xml/UserChoice") or die;
($tmval) = $reg->GetValue('Progid');
if(defined($tmval) and $tmval ne "") {
# Parse .xml
$reg=$Registry->Open("HKEY_CLASSES_ROOT/$tmval/shell") or die;
$reg=$reg->CreateKey( "XMLValidate" );
$reg=$reg->CreateKey( "command");
# $reg=$reg->SetValue( "","\"C:\\itools\\ePUB-Conversion\\ePUB_PopupSupport.exe\" \"\%1\" \"P\"","REG_SZ");
$reg=$reg->SetValue( "","\"calling exe\" \"\%1\"","REG_SZ");
}
else {
if(!defined($tmval)){$tmval = "xmlfile";}
$reg=$Registry->Open("HKEY_CLASSES_ROOT") or die;
$reg=$reg->CreateKey( "$tmval" );
$reg=$reg->CreateKey( "shell");
$reg=$reg->CreateKey( "XMLValidate" );
$reg=$reg->CreateKey( "command");
# $reg=$reg->SetValue( "","\"C:\\itools\\ePUB-Conversion\\ePUB_PopupSupport.exe\" \"\%1\" \"P\"","REG_SZ");
$reg=$reg->SetValue( "","\"calling exe" \"\%1\"","REG_SZ");
}
请帮忙,谢谢。
【问题讨论】:
-
it dies。没有错误消息和任何指示出了什么问题?尝试调试以更接近问题的根源。 -
现在工作访问权限是问题,谢谢。
标签: regex perl registry registrykey