Skip to main content
added 582 characters in body
Source Link

I think I have the answer again to my own question... AS much as I looked there is no way to gain a quick access to open URL's in Chrome or other web browsers... as could be seen as a security risk.

My work around was to loop through every Open Window (thank fully, just Chrome but this could be ruled out too in code) and loop through the tabs to get them one at a time. The command wmctrl -l helped me achieve this.

I still suspect there might be a better way but this is the way we are going for now.

The code is still a working progress and looks like the following:

##SCRIPT TO RERESH AND MANAGE PI BOXES FOR DISPLAYS## $getr=$null; ##SET VARIABLES TO GET DATES AND FOR SPECIFIC TIMES IN REGARDS TO UPDATES $Calendar = Get-Date $updatestart = Get-Date -Hour 11 -Minute 55 $updatecutoff = Get-Date -Hour 12 -Minute 01 ##SET VARIABLES FOR PI INSTRUCTIONS $exitchrome = "killall -9 chromium-browser &>/dev/null; exit;" ##QUITS BROWSER AND EXITS SCRIPT - HAS TO BE DONE AS CANNOT BE RUN WITH FOLLWOING COMMANDS Get-Content -Path "C:\temp\ip.txt" | Foreach-Object { ##LOOP THROUGH CONTENTS OF TEXT FILE - IP.TXT $textfile = $_; $pos = $textfile.IndexOf("|") ## LOOK FOR PIPE CHARECTER IN TEXT FILE $link_string = $textfile.Substring($pos+1) ##CONTENTS AFTER PIPE CHARECTER $ip = $textfile.Substring(0, $pos) ##CONTENTS BEFORE PIPE CHARECTER echo $ip $chrome = "DISPLAY=:0 chromium-browser " + $link_string + " --kiosk --disable-session-crashed-bubble --disable-infobars &> /dev/null &" ##STARTS BROWSER IN KIOSK MODE ON DESKTOP WITH THE DEFINED URLS - ALL ON SCREEN MESSAGES DISABLED ##PLAY CODE## $i = 0 $c = 0 $w = 1 $wb_chk = "cat -e ~/.config/chromium/Default/Sessions/Tabs_* | sed -e 's/\^@/\n/g' -e '/_\/chrome/d' | grep -Po '(http|https)://\K.*' | sort -u" ##CHECK BROWSER FOR OPEN TABS ASSIGNED TO VARIABLE $wb_chk_res = ssh orangepi@"$ip" -X "$wb_chk" | Out-String foreach($url_array in -split $link_string) { $url_array_pos = $url_array.IndexOf("/") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $url_array = $url_array.Substring($url_array_pos+2) ##REMOVE CONTENTS AFTER CHARECTER RETRUN $i++ foreach($wbl_chk in -split $wb_chk_res) { $w++ if ($wbl_chk -eq $url_array) { $c++ } } } echo "$w websites were checked" echo "There are $c live on the display" echo "$c websites match the $i URLS in the config file" ##PLAY CODE## If ($Calendar.Day -eq '28' -AND $Calendar.TimeOfDay -gt $updatestart.TimeOfDay -AND $Calendar.TimeOfDay -lt $updatecutoff.TimeOfDay) { ##IF END OF THE MONTH, RUN UPDATES ssh -p 222 pi@"$ip" -X "sudo apt-get update; sudo apt-get upgrade -y; sudo reboot;" Start-Sleep -s 60 } ##CEHCK DISPLAY RES - CANNOT TO GET TO WORK AS A FUCNTION... $getr = ssh orangepi@"$ip" -X "xrandr -display :0.0;" | Out-String $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring($res_pos+2) ##REMOVE CONTENTS AFTER COMMA CHARECTER $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring(0, $res_pos) ##REMOVE CONTENTS BEFORE COMMA CHARECTER $res_pos = $getr.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $getr = $getr.Substring($res_pos+1) ##REMOVE CONTENTS AFTER CHARECTER RETRUN $uptime = ssh orangepi@"$ip" -X "awk '{print $1}' /proc/uptime" | Out-String $up_pos = $uptime.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $uptime = $uptime.Substring(0,$up_pos) ##CONTENTS AFTER CHARECTER RETRUN echo $uptime echo $getr if ($uptime -lt "1800.00" -Or $getr -ne "1920 x 1080") { echo "Forcing Display Resolution"; ssh orangepi@"$ip" -X "sudo service lightdm restart;" Start-Sleep -s 10; ssh orangepi@"$ip" -X "$chrome"; Start-Sleep -s 10; ssh orangepi@"$ip" -X "$exitchrome"; Start-Sleep -s 10; $getr=$null; } $MATICS = select-string -pattern "harboro"xxx.my.leadermes.com" -InputObject $link_string ##LOOK FOR MATICS URL FOR SYNTHEIC MOUSE CLICKS if ($MATICS -ne $null) { $getr = ssh orangepi@"$ip" -X "xrandr -display :0.0;" | Out-String $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring($res_pos+2) ##CONTENTS AFTER COMMA CHARECTER $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring(0, $res_pos) ##CONTENTS BEFORE COMMA CHARECTER $res_pos = $getr.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $getr = $getr.Substring($res_pos+1) ##CONTENTS AFTER CHARECTER RETRUN echo "MATICS ON DISPLAY"; ssh orangepi@"$ip" -X "$exitchrome"; ssh orangepi@"$ip" -X "$chrome"; if ($getr -eq "1920 x 1080") { echo "$getr live"; Start-Sleep -s 15 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool key Return; exit;" Start-Sleep -s 20 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool key Tab Tab space mousemove 220 60 click 1; exit;" Start-Sleep -s 20 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool mousemove 1860 180 click 1 mousemove 1920 1080; exit;" $getr=$null; } } else { echo "MATICS IS NOT ON THIS DISPLAY"; ssh orangepi@"$ip" -X "$exitchrome"; ssh orangepi@"$ip" -X "$chrome"; } } 
##SCRIPT TO RERESH AND MANAGE PI BOXES FOR DISPLAYS## $getr=$null; ##SET VARIABLES TO GET DATES AND FOR SPECIFIC TIMES IN REGARDS TO UPDATES $Calendar = Get-Date $updatestart = Get-Date -Hour 11 -Minute 55 $updatecutoff = Get-Date -Hour 12 -Minute 01 ##SET VARIABLES FOR PI INSTRUCTIONS $exitchrome = "killall -9 chromium-browser &>/dev/null; exit;" ##QUITS BROWSER AND EXITS SCRIPT - HAS TO BE DONE AS CANNOT BE RUN WITH FOLLWOING COMMANDS Get-Content -Path "C:\temp\ip.txt" | Foreach-Object { ##LOOP THROUGH CONTENTS OF TEXT FILE - IP.TXT $textfile = $_; $pos = $textfile.IndexOf("|") ## LOOK FOR PIPE CHARECTER IN TEXT FILE $link_string = $textfile.Substring($pos+1) ##CONTENTS AFTER PIPE CHARECTER $ip = $textfile.Substring(0, $pos) ##CONTENTS BEFORE PIPE CHARECTER echo $ip $chrome = "DISPLAY=:0 chromium-browser " + $link_string + " --kiosk --disable-session-crashed-bubble --disable-infobars &> /dev/null &" ##STARTS BROWSER IN KIOSK MODE ON DESKTOP WITH THE DEFINED URLS - ALL ON SCREEN MESSAGES DISABLED ##PLAY CODE## $i = 0 $c = 0 $w = 1 $wb_chk = "cat -e ~/.config/chromium/Default/Sessions/Tabs_* | sed -e 's/\^@/\n/g' -e '/_\/chrome/d' | grep -Po '(http|https)://\K.*' | sort -u" ##CHECK BROWSER FOR OPEN TABS ASSIGNED TO VARIABLE $wb_chk_res = ssh orangepi@"$ip" -X "$wb_chk" | Out-String foreach($url_array in -split $link_string) { $url_array_pos = $url_array.IndexOf("/") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $url_array = $url_array.Substring($url_array_pos+2) ##REMOVE CONTENTS AFTER CHARECTER RETRUN $i++ foreach($wbl_chk in -split $wb_chk_res) { $w++ if ($wbl_chk -eq $url_array) { $c++ } } } echo "$w websites were checked" echo "There are $c live on the display" echo "$c websites match the $i URLS in the config file" ##PLAY CODE## If ($Calendar.Day -eq '28' -AND $Calendar.TimeOfDay -gt $updatestart.TimeOfDay -AND $Calendar.TimeOfDay -lt $updatecutoff.TimeOfDay) { ##IF END OF THE MONTH, RUN UPDATES ssh -p 222 pi@"$ip" -X "sudo apt-get update; sudo apt-get upgrade -y; sudo reboot;" Start-Sleep -s 60 } ##CEHCK DISPLAY RES - CANNOT TO GET TO WORK AS A FUCNTION... $getr = ssh orangepi@"$ip" -X "xrandr -display :0.0;" | Out-String $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring($res_pos+2) ##REMOVE CONTENTS AFTER COMMA CHARECTER $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring(0, $res_pos) ##REMOVE CONTENTS BEFORE COMMA CHARECTER $res_pos = $getr.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $getr = $getr.Substring($res_pos+1) ##REMOVE CONTENTS AFTER CHARECTER RETRUN $uptime = ssh orangepi@"$ip" -X "awk '{print $1}' /proc/uptime" | Out-String $up_pos = $uptime.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $uptime = $uptime.Substring(0,$up_pos) ##CONTENTS AFTER CHARECTER RETRUN echo $uptime echo $getr if ($uptime -lt "1800.00" -Or $getr -ne "1920 x 1080") { echo "Forcing Display Resolution"; ssh orangepi@"$ip" -X "sudo service lightdm restart;" Start-Sleep -s 10; ssh orangepi@"$ip" -X "$chrome"; Start-Sleep -s 10; ssh orangepi@"$ip" -X "$exitchrome"; Start-Sleep -s 10; $getr=$null; } $MATICS = select-string -pattern "harboro.my.leadermes.com" -InputObject $link_string ##LOOK FOR MATICS URL FOR SYNTHEIC MOUSE CLICKS if ($MATICS -ne $null) { $getr = ssh orangepi@"$ip" -X "xrandr -display :0.0;" | Out-String $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring($res_pos+2) ##CONTENTS AFTER COMMA CHARECTER $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring(0, $res_pos) ##CONTENTS BEFORE COMMA CHARECTER $res_pos = $getr.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $getr = $getr.Substring($res_pos+1) ##CONTENTS AFTER CHARECTER RETRUN echo "MATICS ON DISPLAY"; ssh orangepi@"$ip" -X "$exitchrome"; ssh orangepi@"$ip" -X "$chrome"; if ($getr -eq "1920 x 1080") { echo "$getr live"; Start-Sleep -s 15 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool key Return; exit;" Start-Sleep -s 20 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool key Tab Tab space mousemove 220 60 click 1; exit;" Start-Sleep -s 20 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool mousemove 1860 180 click 1 mousemove 1920 1080; exit;" $getr=$null; } } else { echo "MATICS IS NOT ON THIS DISPLAY"; ssh orangepi@"$ip" -X "$exitchrome"; ssh orangepi@"$ip" -X "$chrome"; } } 

I think I have the answer again to my own question... AS much as I looked there is no way to gain a quick access to open URL's in Chrome or other web browsers... as could be seen as a security risk.

My work around was to loop through every Open Window (thank fully, just Chrome but this could be ruled out too in code) and loop through the tabs to get them one at a time. The command wmctrl -l helped me achieve this.

I still suspect there might be a better way but this is the way we are going for now.

The code is still a working progress and looks like the following:

##SCRIPT TO RERESH AND MANAGE PI BOXES FOR DISPLAYS## $getr=$null; ##SET VARIABLES TO GET DATES AND FOR SPECIFIC TIMES IN REGARDS TO UPDATES $Calendar = Get-Date $updatestart = Get-Date -Hour 11 -Minute 55 $updatecutoff = Get-Date -Hour 12 -Minute 01 ##SET VARIABLES FOR PI INSTRUCTIONS $exitchrome = "killall -9 chromium-browser &>/dev/null; exit;" ##QUITS BROWSER AND EXITS SCRIPT - HAS TO BE DONE AS CANNOT BE RUN WITH FOLLWOING COMMANDS Get-Content -Path "C:\temp\ip.txt" | Foreach-Object { ##LOOP THROUGH CONTENTS OF TEXT FILE - IP.TXT $textfile = $_; $pos = $textfile.IndexOf("|") ## LOOK FOR PIPE CHARECTER IN TEXT FILE $link_string = $textfile.Substring($pos+1) ##CONTENTS AFTER PIPE CHARECTER $ip = $textfile.Substring(0, $pos) ##CONTENTS BEFORE PIPE CHARECTER echo $ip $chrome = "DISPLAY=:0 chromium-browser " + $link_string + " --kiosk --disable-session-crashed-bubble --disable-infobars &> /dev/null &" ##STARTS BROWSER IN KIOSK MODE ON DESKTOP WITH THE DEFINED URLS - ALL ON SCREEN MESSAGES DISABLED ##PLAY CODE## $i = 0 $c = 0 $w = 1 $wb_chk = "cat -e ~/.config/chromium/Default/Sessions/Tabs_* | sed -e 's/\^@/\n/g' -e '/_\/chrome/d' | grep -Po '(http|https)://\K.*' | sort -u" ##CHECK BROWSER FOR OPEN TABS ASSIGNED TO VARIABLE $wb_chk_res = ssh orangepi@"$ip" -X "$wb_chk" | Out-String foreach($url_array in -split $link_string) { $url_array_pos = $url_array.IndexOf("/") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $url_array = $url_array.Substring($url_array_pos+2) ##REMOVE CONTENTS AFTER CHARECTER RETRUN $i++ foreach($wbl_chk in -split $wb_chk_res) { $w++ if ($wbl_chk -eq $url_array) { $c++ } } } echo "$w websites were checked" echo "There are $c live on the display" echo "$c websites match the $i URLS in the config file" ##PLAY CODE## If ($Calendar.Day -eq '28' -AND $Calendar.TimeOfDay -gt $updatestart.TimeOfDay -AND $Calendar.TimeOfDay -lt $updatecutoff.TimeOfDay) { ##IF END OF THE MONTH, RUN UPDATES ssh -p 222 pi@"$ip" -X "sudo apt-get update; sudo apt-get upgrade -y; sudo reboot;" Start-Sleep -s 60 } ##CEHCK DISPLAY RES - CANNOT TO GET TO WORK AS A FUCNTION... $getr = ssh orangepi@"$ip" -X "xrandr -display :0.0;" | Out-String $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring($res_pos+2) ##REMOVE CONTENTS AFTER COMMA CHARECTER $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring(0, $res_pos) ##REMOVE CONTENTS BEFORE COMMA CHARECTER $res_pos = $getr.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $getr = $getr.Substring($res_pos+1) ##REMOVE CONTENTS AFTER CHARECTER RETRUN $uptime = ssh orangepi@"$ip" -X "awk '{print $1}' /proc/uptime" | Out-String $up_pos = $uptime.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $uptime = $uptime.Substring(0,$up_pos) ##CONTENTS AFTER CHARECTER RETRUN echo $uptime echo $getr if ($uptime -lt "1800.00" -Or $getr -ne "1920 x 1080") { echo "Forcing Display Resolution"; ssh orangepi@"$ip" -X "sudo service lightdm restart;" Start-Sleep -s 10; ssh orangepi@"$ip" -X "$chrome"; Start-Sleep -s 10; ssh orangepi@"$ip" -X "$exitchrome"; Start-Sleep -s 10; $getr=$null; } $MATICS = select-string -pattern "xxx.my.leadermes.com" -InputObject $link_string ##LOOK FOR MATICS URL FOR SYNTHEIC MOUSE CLICKS if ($MATICS -ne $null) { $getr = ssh orangepi@"$ip" -X "xrandr -display :0.0;" | Out-String $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring($res_pos+2) ##CONTENTS AFTER COMMA CHARECTER $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring(0, $res_pos) ##CONTENTS BEFORE COMMA CHARECTER $res_pos = $getr.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $getr = $getr.Substring($res_pos+1) ##CONTENTS AFTER CHARECTER RETRUN echo "MATICS ON DISPLAY"; ssh orangepi@"$ip" -X "$exitchrome"; ssh orangepi@"$ip" -X "$chrome"; if ($getr -eq "1920 x 1080") { echo "$getr live"; Start-Sleep -s 15 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool key Return; exit;" Start-Sleep -s 20 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool key Tab Tab space mousemove 220 60 click 1; exit;" Start-Sleep -s 20 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool mousemove 1860 180 click 1 mousemove 1920 1080; exit;" $getr=$null; } } else { echo "MATICS IS NOT ON THIS DISPLAY"; ssh orangepi@"$ip" -X "$exitchrome"; ssh orangepi@"$ip" -X "$chrome"; } } 
edited tags
Link
Source Link

Ubuntu/Orange Pi5 retrieve open tabs on Chromium (kiosk mode) via terminal - Powershell

I have a problem as of late where I am developing some PowerShell script to manage and update some digital displays. Please see below for my work in progress (By no means done).

I am struggling to be able to output via the terminal or any means (automated text file or via command) active or currently open tabs in Chromium. The idea I am trying to achieve is that if the current tabs correspond to what is required to be opened, to skip a forcing refresh (close and open of Chromium).

I have tried BroTab but unable to get that to work at all, appears to be a problem with Ubuntu and Chromium. Is anyone aware of anything that will work to this affect?

I have been able to get working the history of active tabs opened but this only updates on when the browser is manually opened rather than opened via terminal.

The script needs work and error logging/email notifications when there is a failure so the screen can be investigated physically. The first step is to just get this working... which it does just ugly when it refreshes every 30mins - I would rather this just act as a keep alive. I know it requires work and as such open to recommendations on all the code. I will also make use of functions but have also struggled to get these to work as I would like...

I look forward to your suggestions.

##SCRIPT TO RERESH AND MANAGE PI BOXES FOR DISPLAYS## $getr=$null; ##SET VARIABLES TO GET DATES AND FOR SPECIFIC TIMES IN REGARDS TO UPDATES $Calendar = Get-Date $updatestart = Get-Date -Hour 11 -Minute 55 $updatecutoff = Get-Date -Hour 12 -Minute 01 ##SET VARIABLES FOR PI INSTRUCTIONS $exitchrome = "killall -9 chromium-browser &>/dev/null; exit;" ##QUITS BROWSER AND EXITS SCRIPT - HAS TO BE DONE AS CANNOT BE RUN WITH FOLLWOING COMMANDS Get-Content -Path "C:\temp\ip.txt" | Foreach-Object { ##LOOP THROUGH CONTENTS OF TEXT FILE - IP.TXT $textfile = $_; $pos = $textfile.IndexOf("|") ## LOOK FOR PIPE CHARECTER IN TEXT FILE $link_string = $textfile.Substring($pos+1) ##CONTENTS AFTER PIPE CHARECTER $ip = $textfile.Substring(0, $pos) ##CONTENTS BEFORE PIPE CHARECTER echo $ip $chrome = "DISPLAY=:0 chromium-browser " + $link_string + " --kiosk --disable-session-crashed-bubble --disable-infobars &> /dev/null &" ##STARTS BROWSER IN KIOSK MODE ON DESKTOP WITH THE DEFINED URLS - ALL ON SCREEN MESSAGES DISABLED ##PLAY CODE## $i = 0 $c = 0 $w = 1 $wb_chk = "cat -e ~/.config/chromium/Default/Sessions/Tabs_* | sed -e 's/\^@/\n/g' -e '/_\/chrome/d' | grep -Po '(http|https)://\K.*' | sort -u" ##CHECK BROWSER FOR OPEN TABS ASSIGNED TO VARIABLE $wb_chk_res = ssh orangepi@"$ip" -X "$wb_chk" | Out-String foreach($url_array in -split $link_string) { $url_array_pos = $url_array.IndexOf("/") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $url_array = $url_array.Substring($url_array_pos+2) ##REMOVE CONTENTS AFTER CHARECTER RETRUN $i++ foreach($wbl_chk in -split $wb_chk_res) { $w++ if ($wbl_chk -eq $url_array) { $c++ } } } echo "$w websites were checked" echo "There are $c live on the display" echo "$c websites match the $i URLS in the config file" ##PLAY CODE## If ($Calendar.Day -eq '28' -AND $Calendar.TimeOfDay -gt $updatestart.TimeOfDay -AND $Calendar.TimeOfDay -lt $updatecutoff.TimeOfDay) { ##IF END OF THE MONTH, RUN UPDATES ssh -p 222 pi@"$ip" -X "sudo apt-get update; sudo apt-get upgrade -y; sudo reboot;" Start-Sleep -s 60 } ##CEHCK DISPLAY RES - CANNOT TO GET TO WORK AS A FUCNTION... $getr = ssh orangepi@"$ip" -X "xrandr -display :0.0;" | Out-String $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring($res_pos+2) ##REMOVE CONTENTS AFTER COMMA CHARECTER $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring(0, $res_pos) ##REMOVE CONTENTS BEFORE COMMA CHARECTER $res_pos = $getr.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $getr = $getr.Substring($res_pos+1) ##REMOVE CONTENTS AFTER CHARECTER RETRUN $uptime = ssh orangepi@"$ip" -X "awk '{print $1}' /proc/uptime" | Out-String $up_pos = $uptime.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $uptime = $uptime.Substring(0,$up_pos) ##CONTENTS AFTER CHARECTER RETRUN echo $uptime echo $getr if ($uptime -lt "1800.00" -Or $getr -ne "1920 x 1080") { echo "Forcing Display Resolution"; ssh orangepi@"$ip" -X "sudo service lightdm restart;" Start-Sleep -s 10; ssh orangepi@"$ip" -X "$chrome"; Start-Sleep -s 10; ssh orangepi@"$ip" -X "$exitchrome"; Start-Sleep -s 10; $getr=$null; } $MATICS = select-string -pattern "harboro.my.leadermes.com" -InputObject $link_string ##LOOK FOR MATICS URL FOR SYNTHEIC MOUSE CLICKS if ($MATICS -ne $null) { $getr = ssh orangepi@"$ip" -X "xrandr -display :0.0;" | Out-String $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring($res_pos+2) ##CONTENTS AFTER COMMA CHARECTER $res_pos = $getr.IndexOf(",") ## LOOK FOR COMMA CHARECTER IN VARIABLE $getr = $getr.Substring(0, $res_pos) ##CONTENTS BEFORE COMMA CHARECTER $res_pos = $getr.IndexOf(" ") ## LOOK FOR CHARECTER RETRUN IN VARIABLE $getr = $getr.Substring($res_pos+1) ##CONTENTS AFTER CHARECTER RETRUN echo "MATICS ON DISPLAY"; ssh orangepi@"$ip" -X "$exitchrome"; ssh orangepi@"$ip" -X "$chrome"; if ($getr -eq "1920 x 1080") { echo "$getr live"; Start-Sleep -s 15 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool key Return; exit;" Start-Sleep -s 20 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool key Tab Tab space mousemove 220 60 click 1; exit;" Start-Sleep -s 20 ssh orangepi@"$ip" -X "DISPLAY=:0 xdotool mousemove 1860 180 click 1 mousemove 1920 1080; exit;" $getr=$null; } } else { echo "MATICS IS NOT ON THIS DISPLAY"; ssh orangepi@"$ip" -X "$exitchrome"; ssh orangepi@"$ip" -X "$chrome"; } }