Я использую отличный скрипт Chrome-Kiosk из https://github.com/alex-tomin/Tomin.Tools.KioskMode, и он отлично работает.Я изменил его для наших табло на работе, и мы используем его безупречно с 11 экранами.
Я хотел изменить его, чтобы сделать одно средство запуска экрана, чтобы я мог открыть небольшое окно графического интерфейса, введите URL-адрес длядисплей, а затем номер экрана, на котором он должен отображаться.Я создал небольшой скрипт, и он отлично работает на моей локальной машине.То, что я хочу сделать, это открыть графический интерфейс на моем экране, а затем отправить две переменные по сети на дисплейный компьютер в сети.Я надеялся, что смогу сделать это с помощью удаленного выполнения, как показано здесь: https://www.howtogeek.com/117192/how-to-run-powershell-commands-on-remote-computers/,, но не повезло.
Вот код GUI:
function button ($title,$mailbx, $WF, $TF) {
[void][System.Reflection.Assembly]::LoadWithPartialName( "System.Windows.Forms")
[void][System.Reflection.Assembly]::LoadWithPartialName( "Microsoft.VisualBasic")
$form = New-Object "System.Windows.Forms.Form";
$form.Width = 500;
$form.Height = 150;
$form.Text = $title;
$form.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen;
$textLabel1 = New-Object "System.Windows.Forms.Label";
$textLabel1.Left = 25;
$textLabel1.Top = 15;
$textLabel1.Text = $mailbx;
$textLabel2 = New-Object "System.Windows.Forms.Label";
$textLabel2.Left = 25;
$textLabel2.Top = 50;
$textLabel2.Text = $WF;
$textBox1 = New-Object "System.Windows.Forms.TextBox";
$textBox1.Left = 150;
$textBox1.Top = 10;
$textBox1.width = 200;
$textBox2 = New-Object "System.Windows.Forms.TextBox";
$textBox2.Left = 150;
$textBox2.Top = 50;
$textBox2.width = 200;
$defaultValue = ""
$textBox1.Text = $defaultValue;
$textBox2.Text = $defaultValue;
$button = New-Object "System.Windows.Forms.Button";
$button.Left = 360;
$button.Top = 85;
$button.Width = 100;
$button.Text = "Ok";
$eventHandler = [System.EventHandler]{
$textBox1.Text;
$textBox2.Text;
$form.Close();
};
$button.Add_Click($eventHandler) ;
# Add controls to all the above objects defined
$form.Controls.Add($button);
$form.Controls.Add($textLabel1);
$form.Controls.Add($textLabel2);
$form.Controls.Add($textLabel3);
$form.Controls.Add($textBox1);
$form.Controls.Add($textBox2);
$form.Controls.Add($textBox3);
$ret = $form.ShowDialog();
return $textBox1.Text, $textBox2.Text#, $textBox3.Text
}
$return= button "Monitoring Screen Selector" "Enter URL" "Enter Screen # from 1 to 11" #"Target Folder"
$return[0]
$return[1]
Первая часть скрипта - это GUI, он передает $return[0]
и $return[1]
во вторую часть скрипта, которая ниже:
$chromePath = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
$chromeArguments = '--new-window'
# if Window not moved (especially on machine start) - try increasing the delay.
$ChromeStartDelay = 3
Set-Location $PSScriptRoot
. .\HelperFunctions.ps1
# Kill all running instances
# &taskkill /im chrome* /F
Chrome-Kiosk $return[0] -MonitorNum $return[1]
Таким образом, GUI должен открыться на локальном ПК, а затем отправить$return[0]
и $return[1]
к компьютеру со всеми подключенными к нему дисплеями, чтобы вторая часть сценария могла получить эти два ввода из графического интерфейса, а затем активировать экран и URL-адрес.
Идея заключается в том, что во время инцидента или события, которое не покрывается нашими обычными экранами, мы можем перебросить туда веб-страницу до тех пор, пока она не будет решена, а затем закрыть ее вручную (если кто-то не знает, как ее перехватить).PID конкретного экземпляра Chrome, в котором я очень сильно сомневаюсь, чтобы его можно было как-то прекратить)
Есть какие-нибудь подсказки, как мне это сделать?