Powershell: Taustapildile info kuvamine

From ICO wiki
Revision as of 02:26, 1 June 2012 by Mlepla (talk | contribs) (Created page with ' #Pildi asukoht ja kuvamise stiil Param( [string] $Path, [string] $Style = "NoChange") # Funktsioon mis muudab taustapilti function Muudabpilti { BE…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search






  1. Pildi asukoht ja kuvamise stiil

Param(

       [string] $Path,
       [string] $Style = "NoChange")

  1. Funktsioon mis muudab taustapilti

function Muudabpilti {

BEGIN { try {

  $WP = [Wallpaper.Setter]

} catch {

  Add-Type 
   #$WP = [Wallpaper.Setter]

} } PROCESS { $WP::SetWallpaper( $Path, $Style) echo $Path

  1. echo $Style

}

}

[Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null

  1. Koht kuhu salvestame taustapildi

$imgurl = "$ENV:tmp\wallpaper.jpg"

  1. 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"} }

  1. Arvuti nimi

$PC=Get-Content Env:\COMPUTERNAME

  1. Kasutajanimi

$USER=Get-Content Env:\USERNAME

  1. IP Aadress

$IP=@(Get-IPAddresses)

  1. Tekst, mida kirjutatakse pildile (mitu rida)

$PC_text ="Masin: $PC" $USER_text = "Kasutaja: $USER"

  1. Väärtustame text array

$text = ($PC_text,$USER_text) + $IP

  1. 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

  1. 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
       }

}


  1. Valime kirjastiili, millega teks kirjutatakse

$font = new-object System.Drawing.Font Consolas,15


  1. Määrame taustapintsli värvi; kasutame kui olemasolevat pilti pole määratud

$brushBg = [System.Drawing.Brushes]::Blue

  1. Määrame kirjutamis pintsli värvi

$brushFg = [System.Drawing.Brushes]::Red


  1. 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      
   }

}

  1. Kui faili asukoht on antud siis kasutame seda

if($Path) {

   $olemas = $Path

}

  1. 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() 
   }

  1. 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)
   }

  1. Arvutame koha, kust tekst algab

$korgus = $bmp.Height - 210 - $text.count * 20 $kaugus = $bmp.Width - 20 - $koigePikem * 14

  1. Kirjutame teksti pildile

foreach ($number in $text) { $korgus = $korgus + 20 $graphics.DrawString($number,$font,$brushFg,$kaugus,$korgus)

 	$count++  

}

  1. Salvestame uue pildi

$bmp.save($imgurl,[System.Drawing.Imaging.ImageFormat]::Jpeg) $Path = $imgurl

$bmp.Dispose() $graphics.Dispose()

  1. Kutsume välja funktsiooni Muudataust

Muudabpilti