Может ли Perl отслеживать всплывающие окна и автоматически выбирать "Да"?

У меня есть код ниже, встроенный в скрипт, где я могу вставлять записи в базу данных через слой бизнес-логики. Когда я запустил скрипт, выскочило диалоговое окно Win32 и задало мне вопрос, на который я ответил да. Это диалоговое окно представляется пользователю, только если определенные значения введены в базу данных. Так что это проблема только в процентах случаев. Есть ли команда для встраивания в мой скрипт, которая игнорирует всплывающие окна с ответом Да по умолчанию? Или есть способ, чтобы скрипт ответил и продолжил обработку? Я не вижу много на эту тему при поиске и поиске на этом сайте. Возможно, есть и я ищу не ту фразу. Если это невозможно, я могу попросить программистов бизнес-логики сделать исключение для роли, под которой будет работать мой скрипт.

#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 ответ

У вас есть код в ваших хуках ClearQuest для всплывающего диалогового окна? Они не исходят из сценария, который вы вставили, поэтому они должны исходить из хуков.

Что вы можете сделать, это установить переменную сеанса в вашем скрипте, например

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

Тогда в вашем коде хука есть это:

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

Затем в любом месте вы можете сделать всплывающее окно, проверьте, если $suppressPopup, и примите "да" вместо попытки открыть диалоговое окно.

Другие вопросы по тегам