Может ли 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, и примите "да" вместо попытки открыть диалоговое окно.