otrzymuję ten sam wynik, czy możesz nam bardziej szczegółowo opisać, jak to naprawiłeś, dla nas nowicjuszy. PowerShell w polu Program / skrypt? gdzie to dokładnie jest? i gdzie znajduje się folder skryptów PS itp. dzięki
Wspaniale, dobrze wiedzieć. Wielkie dzięki, Dan. :)
Hej kolego, dostaję czarną tapetę. jakieś rozwiązanie?
ts = New-TimeSpan -Godziny -2 -Minutes -30 #Liczba godzin i minut, aby dodać / odjąć datę. Dostosuj to, aby przesunąć datę systemową o około GMT (myślę?)
$ teraz = ((Get-Date-Second 00) + $ ts)
$ teraz = $ teraz. AddMinutes (- ($ now.minute% 10))
$ szerokość = 550
$ level = "4d" # Poziom może wynosić 4d, 8d, 16d, 20d
$ numblocks = 4 # to najwyraźniej odpowiada bezpośrednio poziomowi, zachowaj to dokładnie tak samo jak poziom bez „d”
$ time = $ teraz. ToString („HHmmss”)
$ rok = $ teraz. ToString („rrrr”)
$ miesiąc = $ teraz. ToString („MM”)
$ dzień = $ teraz. ToString („dd”)
# Utwórz folder Moje obrazy \ Himawari \, jeśli nie istnieje
$ outpath = [Środowisko]:: GetFolderPath („MyPictures”) + „\ Himawari \”
if (! (Test-Path -Path $ outpath))
{
[void] (New-Item -ItemType directory -Path $ outpath)
}
# Nazwa pliku, który zostanie zapisany:
# Odkomentuj to, aby pliki gromadziły się w katalogu:
# $ outfile = "$ rok $ miesiąc $ dzień" + "_" + $ czas + ".jpg"
# Użyj tego, aby skrypt zapisał tylko najnowszy plik:
$ outfile = "latest.jpg"
$ url = " http://himawari8-dl.nict.go.jp/himawari8/img/D531106/$level/$width/$year/$month/$day/$time"
[void] [reflection.assembly]:: LoadWithPartialName ("System. Windows Formularze ”)
[void] [reflection.assembly]:: LoadWithPartialName ("System. Rysunek")
$ image = System nowych obiektów. Rysunek. Mapa bitowa (($ szerokość * $ numblocks), ($ szerokość * $ numblocks))
$ graphics = [System. Rysunek. Grafika]:: FromImage ($ image)
grafika $. Wyczyść ([System. Rysunek. Kolor czarny)
dla ($ y = 0; $ y -lt $ numblocks; $ y ++)
{
dla ($ x = 0; $ x -lt $ numblocks; x ++)
{
$ thisurl = $ url + "_" + [String] $ x + "_" + [String] $ y + ".png"
Zapis-wyjście „Pobieranie: $ thisurl”
próbować
{
$ request = [System. Netto. WebRequest]:: create ($ thisurl)
$ response = $ request.getResponse ()
$ HTTP_Status = [int] $ response. Kod statusu
Jeśli ($ HTTP_Status -eq 200)
{
$ imgblock = [System. Rysunek. Image]:: fromStream ($ response.getResponseStream ())
grafika $. DrawImage ($ imgblock, ($ x * $ szerokość), ($ y * $ szerokość), $ szerokość, $ szerokość)
$ imgblock.dispose ()
$ odpowiedź. Blisko()
}
}
Łapać
{
$ ErrorMessage = $ _. Wyjątek. Wiadomość
$ FailedItem = $ _. Wyjątek. ItemName
Zapis-wyjście „nie powiodło się! $ ErrorMessage with $ FailedItem ”
}
}
}
$ qualityEncoder = [System. Rysunek. Obrazowanie. Enkoder]:: Jakość
$ encoderParams = System nowych obiektów. Rysunek. Obrazowanie. EncoderParameters (1)
# Tutaj ustaw poziom jakości JPEG: 0 - 100 (łącznie z granicami)
$ encoderParams. Param [0] = System nowych obiektów. Rysunek. Obrazowanie. EncoderParameter ($ qualityEncoder, 90)
$ jpegCodecInfo = [System. Rysunek. Obrazowanie. ImageCodecInfo]:: GetImageEncoders () | gdzie {$ _. MimeType -eq 'image / jpeg'}
$ image.save (($ outpath + $ outfile), $ jpegCodecInfo, $ encoderParams)
$ image. Dysponować()
Wyjście zapisu „Ustawianie tapety ...”
Set-ItemProperty -path "HKCU: Panel sterowania \ Desktop" -nazwa Tapeta -wartość ($ outpath + $ outfile)
Set-ItemProperty-ścieżka "HKCU: Panel sterowania \ Pulpit" -nazwa WallpaperStyle -value 6
Set-ItemProperty -path "HKCU: Control Panel \ Desktop" -name TileWallpaper -value 0
Set-ItemProperty „HKCU: \ Panel sterowania \ Kolory” -nazwa Tło -Wartość „0 0 0”
# rundll32.exe user32.dll, UpdatePerUserSystemParameters
$ setwallpapersource = @ "
using System. Środowisko wykonawcze InteropServices;
tapeta klasy publicznej
{
public const int SetDesktopWallpaper = 20;
public const int UpdateIniFile = 0x01;
public const int SendWinIniChange = 0x02;
[DllImport („user32.dll”, SetLastError = true, CharSet = CharSet. Automatyczny)]
private static extern int int SystemParametersInfo (int uAction, int uParam, ciąg lpvParam, int fuWinIni);
public static void SetWallpaper (ścieżka łańcucha)
{
SystemParametersInfo (SetDesktopWallpaper, 0, ścieżka, UpdateIniFile | SendWinIniChange);
}
}
"@
Add-Type -TypeDefinition $ setwallpapersource
[tapeta]:: SetWallpaper (($ outpath + $ outfile))
Zapis-wyjście „Gotowe”