Я попытался выполнить сильфон PERL скрипта и запер сеанс пользователя ...Как выполнить Perl Win32 :: функцию GuiTest, когда сеанс пользователя заблокирован
$n=15;
while($n>0)
{
print "$n,";
$n--;
sleep(1);
}
Он работал, как обычно, без какого-либо дополнительного кода. .., Не было выхода, когда я заблокировал сеанс, так как я заблокировал сеанс до следующей секунды. Выход видел, когда я открыл сессию:
C:\Pradeep>perl test.pl
15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,
C:\Pradeep>
Когда я запустить сценарий ниже, который я использую для подключения к серверу с помощью Win32 :: функции GuiTest как SetForegroundWindow ($ _); SendKeys («Пароль01»); и т. Д. он подключен без каких-либо проблем, и логин сервера был успешным. Но, когда я блокировал сеанс в середине моего выполнения и разблокировал сеанс, выполнение скрипта было завершено, но логин сервера не был выполнен.
use Win32::GuiTest qw(FindWindowLike GetWindowText SetForegroundWindow SendKeys);
system('"start %windir%\system32\mstsc.exe"');
$Win32::GuiTest::debug = 0;
$max_Sleep_time=3;
$Cur_Sleep_time=0;
do
{
sleep(1);
@windows = FindWindowLike(0, "Remote Desktop Connection");
$number_of_windows_opend = scalar(@windows);
$Cur_Sleep_time++;
}while ($number_of_windows_opend==0&&$Cur_Sleep_time!=$max_Sleep_time);
for (@windows) {
SetForegroundWindow($_);
SendKeys("server_name");
SendKeys("{ENTER}");
sleep(10);
@windows_seq = FindWindowLike(0, "Windows Security");
for (@windows_seq) {
SetForegroundWindow($_);
SendKeys("Password01");
SendKeys("{ENTER}");
}
@windows={};
exit;
}
Согласно мне, я использовал активные окна для выполнения своих функций. Так что это не работает. есть ли какой-либо другой способ, я могу успешно выполнить вышеуказанную функциональность, если пользовательский сеанс заблокирован в середине процесса выполнения. или я должен внести изменения в свой код?