Παίρνω το ίδιο αποτέλεσμα, μπορείτε να μας δώσετε μια πιο λεπτομερή περιγραφή του πώς το φτιάξατε, για εμάς αρχάριους. PowerShell στο πεδίο Πρόγραμμα / σενάριο; πού είναι ακριβώς αυτό; και πού βρίσκεται ο φάκελος PS scripts κ.λπ. ευχαριστώ
Φοβερό, είναι καλό να το γνωρίζετε. Ευχαριστώ πολύ, Dan. :)
Γεια σου φίλε παίρνω μαύρη ταπετσαρία. οποιαδήποτε λύση;
ts = New-TimeSpan -Hours -2 -Minutes -30 # Αριθμός ωρών και λεπτών για προσθήκη / αφαίρεση στην ημερομηνία. Προσαρμόστε το για να αντισταθμίσετε την ημερομηνία του συστήματός σας σε περίπου GMT (νομίζω;)
$ τώρα = ((Get-Date -Second 00) + $ ts)
$ τώρα = $ τώρα. AddMinutes (- ($ now.minute% 10))
πλάτος $ = 550
$ level = "4d" # Το επίπεδο μπορεί να είναι 4d, 8d, 16d, 20d
$ numblocks = 4 # προφανώς αντιστοιχεί άμεσα στο επίπεδο, διατηρήστε το ίδιο ακριβώς με το επίπεδο χωρίς το 'd'
$ time = $ τώρα. ToString ("HHmmss")
$ έτος = $ τώρα. ToString ("εεεε")
$ μήνα = $ τώρα. ToString ("MM")
$ ημέρα = $ τώρα. ToString ("dd")
# Δημιουργήστε το φάκελο Οι φωτογραφίες μου \ Himawari \ εάν δεν υπάρχει
$ outpath = [Περιβάλλον]:: GetFolderPath ("MyPictures") + "\ Himawari \"
αν (! (Test-Path-Path $ outpath))
{
[void] (Κατάλογος New-Item -ItemType -Path $ outpath)
}
# Το όνομα αρχείου που θα αποθηκευτεί:
# Αποπληρώστε αυτό για να συσσωρευτούν τα αρχεία στον κατάλογο:
# $ outfile = "$ έτος $ μήνα $ ημέρα" + "_" + $ time + ".jpg"
# Χρησιμοποιήστε αυτό για να αποθηκεύσετε το σενάριο μόνο το πιο πρόσφατο αρχείο μόνο:
$ outfile = "latest.jpg"
$ url = " http://himawari8-dl.nict.go.jp/himawari8/img/D531106/$level/$width/$year/$month/$day/$time"
[void] [reflect.assembly]:: LoadWithPartialName ("Σύστημα. Παράθυρα. Έντυπα ")
[void] [reflect.assembly]:: LoadWithPartialName ("Σύστημα. Σχέδιο")
$ image = Νέο σύστημα αντικειμένων. Σχέδιο. Bitmap (($ width * $ numblocks), ($ width * $ numblocks))
$ γραφικά = [Σύστημα. Σχέδιο. Γραφικά]:: FromImage ($ image)
$ γραφικά. Διαγραφή ([Σύστημα. Σχέδιο. Χρωμα μαυρο)
για ($ y = 0; $ y -lt $ numblocks; $ y ++)
{
για ($ x = 0; $ x -lt $ numblocks; $ x ++)
{
$ thisurl = $ url + "_" + [String] $ x + "_" + [String] $ y + ".png"
Έγγραφο-Έξοδος "Λήψη: $ thisurl"
προσπαθήστε
{
$ request = [Σύστημα. Καθαρά. WebRequest]:: δημιουργία ($ thisurl)
$ απόκριση = $ request.getResponse ()
$ HTTP_Status = [int] $ απάντηση. StatusCode
Εάν ($ HTTP_Status -eq 200)
{
$ imgblock = [Σύστημα. Σχέδιο. Εικόνα]:: fromStream ($ response.getResponseStream ())
$ γραφικά. DrawImage ($ imgblock, ($ x * $ πλάτος), ($ y * $ πλάτος), $ πλάτος, $ πλάτος)
$ imgblock.dispose ()
$ απάντηση. Κλείσε()
}
}
Σύλληψη
{
$ ErrorMessage = $ _. Εξαίρεση. Μήνυμα
$ FailedItem = $ _. Εξαίρεση. Ονομα προϊόντος
Έξοδος εγγραφής "Αποτυχία! $ ErrorMessage με $ FailedItem "
}
}
}
$ qualityEncoder = [Σύστημα. Σχέδιο. Εικόνα. Κωδικοποιητής]:: Ποιότητα
$ encoderParams = Σύστημα νέου αντικειμένου. Σχέδιο. Εικόνα. Παράμετροι κωδικοποιητή (1)
# Ορίστε το επίπεδο ποιότητας JPEG εδώ: 0 - 100 (όρια χωρίς αποκλεισμούς)
$ encoderParams. Param [0] = Σύστημα νέου αντικειμένου. Σχέδιο. Εικόνα. EncoderParameter ($ qualityEncoder, 90)
$ jpegCodecInfo = [Σύστημα. Σχέδιο. Εικόνα. ImageCodecInfo]:: GetImageEncoders () | όπου {$ _. MimeType -eq 'image / jpeg'}
$ image.save (($ outpath + $ outfile), $ jpegCodecInfo, $ encoderParams)
$ εικόνα. Διαθέτω()
Εγγραφή-έξοδος "Ρύθμιση ταπετσαρίας ..."
Set-ItemProperty-path "HKCU: Control Panel \ Desktop" -name Wallpaper -value ($ outpath + $ outfile)
Set-ItemProperty-path "HKCU: Control Panel \ Desktop" -name WallpaperStyle - τιμή 6
Set-ItemProperty-path "HKCU: Control Panel \ Desktop" -name TileWallpaper-τιμή 0
Set-ItemProperty 'HKCU: \ Control Panel \ Colors' -name Background -Value "0 0 0"
# rundll32.exe user32.dll, UpdatePerUserSystemParameters
$ setwallpapersource = @ "
χρησιμοποιώντας το Σύστημα. Χρόνος εκτέλεσης. InteropServices;
ταπετσαρία δημόσιας τάξης
{
δημόσιο const int SetDesktopWallpaper = 20;
δημόσιο const int UpdateIniFile = 0x01;
δημόσια const int SendWinIniChange = 0x02;
[DllImport ("user32.dll", SetLastError = true, CharSet = CharSet. Αυτο)]
ιδιωτικό στατικό εξωτερικό σύστημα SystemParametersInfo (int uAction, int uParam, string lpvParam, int fuWinIni);
δημόσιο στατικό κενό SetWallpaper (διαδρομή συμβολοσειράς)
{
SystemParametersInfo (SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange);
}
}
"@
Add-Type -TypeDefinition $ setwallpapersource
[ταπετσαρία]:: SetWallpaper (($ outpath + $ outfile))
Έγγραφο-Έξοδος "Τέλος"