Perl可以监控弹出窗口并自动选择是吗?

时间:2015-11-20 02:13:28

标签: perl database-connection clearquest

我在脚本中嵌入了以下代码,我可以通过业务逻辑层将记录插入数据库。当我运行脚本时,弹出一个Win32对话框并问我一个问题,我回答是。只有在将某些值输入数据库时​​,才会向用户显示此对话框。所以这只是一个问题,只有一部分时间。是否有一个命令嵌入我的脚本中,忽略具有默认Yes响应的弹出窗口?或者有没有办法让脚本响应并继续处理?在谷歌搜索和搜索这个网站时,我没有看到很多关于这个主题的内容。也许有,我正在寻找错误的短语。如果这是不可能的,我可以让业务逻辑程序员为我的脚本将运行的角色设置一个例外。

#Process each action required to update the State field
            foreach $action (@performAction) {
                $entity->EditEntity($action);
                #Evaluate for validation errors
                $trappedErrorValidate = $entity->Validate();
                    if ($trappedErrorValidate ne "") {
                    print ERRFILE "The State field has not been updated from $startState to $finishState for record number @fieldValues[0] due to the error code below.\n";
                    print ERRFILE "Error Code:$trappedErrorValidate\n";
                    print ERRFILE "*********************************************************************************\n";
                        $entity->Revert();
                                  } else {
                                                #Commit and evaluate for errors
                                    $trappedErrorCommit =$entity->Commit();
                                    if ($trappedErrorCommit ne "") {
                                        print ERRFILE "The State field has not been updated from $startState to $finishState for record number @fieldValues[0] due to the error code below.\n";
                                        print ERRFILE "Error Code:$trappedErrorCommit\n";
                                        print ERRFILE "*********************************************************************************\n";
                                                                                           }else {
                                                          $stateChanges++; 
                                                                                                             } 
                                     }
                             }

1 个答案:

答案 0 :(得分:0)

您的ClearQuest挂钩中是否有代码弹出对话框?这些不是来自您粘贴的脚本,所以它们必须来自钩子。

您可以做的是在脚本中设置会话变量,例如

$session->SetNameValue("RUNNING_IN_SCRIPT", "true");

然后在你的钩子代码中有这个:

my $runningInHook = $session->GetNameValue("RUNNING_IN_SCRIPT");
my $suppressPopup = $runningInHook eq "true";

然后你可以在任何地方进行弹出,检查是否$ suppressPopup,并假设“是”而不是尝试弹出对话框。