Powershell: Taustapildile info kuvamine: Difference between revisions
Created page with ' #Pildi asukoht ja kuvamise stiil Param( [string] $Path, [string] $Style = "NoChange") # Funktsioon mis muudab taustapilti function Muudabpilti { BE…' |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<Source lang="powershell"> | |||
#Kuvab taustapildile arvutinime, kasutajanime ja ip aadressid. | |||
#Taustapildi saab ette anda. | |||
#Kui taustapilti pole varem skriptist läbi lastud, siis kirjutatakse andmed olemasolevale pildile. | |||
#Kui skript on juba taustapildile andmed kirjutanud,ning kui skript käivitatakse uuesti ilma uue pildi asukohata, siis kuvatakse sinine taust andmetega. | |||
Autor: Marek Lepla | |||
Versioon: 1.0 | |||
Muutmis kuupäev 01.06.2012 | |||
Latest revision as of 01:39, 1 June 2012
<Source lang="powershell">
- Kuvab taustapildile arvutinime, kasutajanime ja ip aadressid.
- Taustapildi saab ette anda.
- Kui taustapilti pole varem skriptist läbi lastud, siis kirjutatakse andmed olemasolevale pildile.
- Kui skript on juba taustapildile andmed kirjutanud,ning kui skript käivitatakse uuesti ilma uue pildi asukohata, siis kuvatakse sinine taust andmetega.
Autor: Marek Lepla Versioon: 1.0 Muutmis kuupäev 01.06.2012
- Pildi asukoht ja kuvamise stiil
Param(
[string] $Path, [string] $Style = "NoChange")
- Funktsioon mis muudab taustapilti
function Muudabpilti {
BEGIN { try {
$WP = [Wallpaper.Setter]
} catch {
Add-Type #$WP = [Wallpaper.Setter]
} } PROCESS { $WP::SetWallpaper( $Path, $Style) echo $Path
- echo $Style
}
}
[Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null
- Koht kuhu salvestame taustapildi
$imgurl = "$ENV:tmp\wallpaper.jpg"
- Funktsioon, mis väljastab kõik arvuti ip aadressid
Function Get-IPAddresses { $Computer = "." $IPConfigSet = Get-WmiObject Win32_NetworkAdapterConfiguration
$count = 0 foreach ($IPConfig in $IPConfigSet) {
if ($Ipconfig.IPAddress) { foreach ($addr in $Ipconfig.IPAddress) { "IP Aadress: {0}" -f $addr; $count++ } }
} if ($count -eq 0) {"No IP addresses found"} }
- Arvuti nimi
$PC=Get-Content Env:\COMPUTERNAME
- Kasutajanimi
$USER=Get-Content Env:\USERNAME
- IP Aadress
$IP=@(Get-IPAddresses)
- Tekst, mida kirjutatakse pildile (mitu rida)
$PC_text ="Masin: $PC" $USER_text = "Kasutaja: $USER"
- Väärtustame text array
$text = ($PC_text,$USER_text) + $IP
- Leiame kõige pikema tekstirea kuvatavas tekstis
$koigePikem = 0 foreach ($number in $text) { if($koigepikem -lt $number.Length)
{ $koigepikem = $number.Length }
}
Add-Type -AssemblyName System.Drawing
- Leiame vähimad Desktopi mõõdud
$desktops = Get-WmiObject -Class Win32_DesktopMonitor $pikkus = 9000 $laius = 9000 foreach($x in $desktops) {
if(($pikkus -gt $x.ScreenHeight) -and ($x.ScreenHeight -gt 100)) { $pikkus = $x.ScreenHeight } else { $pikkus = 920 } if(($laius -gt $x.ScreenWidth) -and ($x.ScreenWidth -gt 100)) { $laius = $x.ScreenWidth } else { $laius = 1280 }
}
- Valime kirjastiili, millega teks kirjutatakse
$font = new-object System.Drawing.Font Consolas,15
- Määrame taustapintsli värvi; kasutame kui olemasolevat pilti pole määratud
$brushBg = [System.Drawing.Brushes]::Blue
- Määrame kirjutamis pintsli värvi
$brushFg = [System.Drawing.Brushes]::Red
- Vaatame kas mõni taustapilt on kasutusel
$d = Get-WmiObject -Class Win32_Desktop $olemas = $null foreach($w in $d) {
if($w.Wallpaper) { $olemas = $w.Wallpaper }
}
- Kui faili asukoht on antud siis kasutame seda
if($Path) {
$olemas = $Path
}
- Kasutame olemasolevat või antud desktopi taustapilti
if($olemas -and ($olemas -ne $imgurl))
{ $img = [System.Drawing.Image]::FromFile("$olemas") $bmp = new-object System.Drawing.Bitmap([int]($img.width)),([int]($img.height)) $graphics = [System.Drawing.Graphics]::FromImage($bmp) $rect = New-Object Drawing.Rectangle 0,0,$img.Width,$img.Height # Joonistab olemasoleva pildi, etteantud failist $graphics.DrawImage($img,$rect,0,0,$img.Width,$img.Height,$gUnit) $img.Dispose() }
- Kui taustapilti pole, loome uue bitmapi
else
{ $bmp = new-object System.Drawing.Bitmap([int]$laius,[int]$pikkus) $graphics = [System.Drawing.Graphics]::FromImage($bmp) $graphics.FillRectangle($brushBg,0,0,$bmp.Width,$bmp.Height) }
- Arvutame koha, kust tekst algab
$korgus = $bmp.Height - 210 - $text.count * 20 $kaugus = $bmp.Width - 20 - $koigePikem * 14
- Kirjutame teksti pildile
foreach ($number in $text) { $korgus = $korgus + 20 $graphics.DrawString($number,$font,$brushFg,$kaugus,$korgus)
$count++
}
- Salvestame uue pildi
$bmp.save($imgurl,[System.Drawing.Imaging.ImageFormat]::Jpeg) $Path = $imgurl
$bmp.Dispose() $graphics.Dispose()
- Kutsume välja funktsiooni Muudataust
Muudabpilti