Estou obtendo o mesmo resultado, você pode nos dar uma descrição mais detalhada de como o corrigiu, para nós, novatos. PowerShell no campo Programa / script? Onde é isso exatamente? e onde está localizada a pasta de scripts PS etc. obrigado
Incrível, é bom saber. Muito obrigado, Dan. :)
Ei, cara, estou recebendo papel de parede preto. qualquer solução?
ts = New-TimeSpan -Hours -2 -Minutes -30 # Número de horas e minutos para adicionar / subtrair a data. Ajuste isso para compensar a data do sistema em torno de GMT (eu acho?)
$ now = ((Get-Date -Segundo 00) + $ ts)
$ agora = $ agora. AddMinutes (- ($ now.minute% 10))
$ width = 550
$ level = "4d" #Level pode ser 4d, 8d, 16d, 20d
$ numblocks = 4 # isso aparentemente corresponde diretamente ao nível, mantenha-o exatamente igual ao nível sem o 'd'
$ time = $ agora. ToString ("HHmmss")
$ ano = $ agora. ToString ("aaaa")
$ mês = $ agora. ToString ("MM")
$ dia = $ agora. ToString ("dd")
#Crie a pasta Minhas Imagens \ Himawari \, se não existir
$ outpath = [Environment]:: GetFolderPath ("MyPictures") + "\ Himawari \"
if (! (Caminho do Teste - Caminho $ outpath))
{
[void] (Diretório New-Item -ItemType -Path $ outpath)
}
#O nome do arquivo que será salvo:
# Remova o comentário para que os arquivos se acumulem no diretório:
# $ outfile = "$ ano $ mês $ dia" + "_" + $ hora + ".jpg"
#Use isso para que o script armazene apenas o arquivo mais recente:
$ outfile = "latest.jpg"
$ url = " http://himawari8-dl.nict.go.jp/himawari8/img/D531106/$level/$width/$year/$month/$day/$time"
[void] [reflection.assembly]:: LoadWithPartialName ("System. Janelas. Formulários ")
[void] [reflection.assembly]:: LoadWithPartialName ("System. Desenhando")
$ image = Sistema de novo objeto. Desenhando. Bitmap (($ width * $ numblocks), ($ width * $ numblocks))
$ graphics = [Sistema. Desenhando. Gráficos]:: FromImage ($ image)
$ gráficos. Desmarque ([Sistema. Desenhando. Cor preta)
para ($ y = 0; $ y -lt $ numblocks; $ y ++)
{
para ($ x = 0; $ x -lt $ numblocks; $ x ++)
{
$ thisurl = $ url + "_" + [String] $ x + "_" + [String] $ y + ".png"
Gravação-Saída "Fazendo o download: $ thisurl"
tentar
{
$ request = [Sistema. Internet. WebRequest]:: create ($ thisurl)
$ response = $ request.getResponse ()
$ HTTP_Status = [int] $ resposta. StatusCode
If ($ HTTP_Status -eq 200)
{
$ imgblock = [Sistema. Desenhando. Imagem]:: fromStream ($ response.getResponseStream ())
$ gráficos. DrawImage ($ imgblock, ($ x * $ width), ($ y * $ width), $ width, $ width)
$ imgblock.dispose ()
$ resposta. Fechar()
}
}
Pegar
{
$ ErrorMessage = $ _. Exceção. mensagem
$ FailedItem = $ _. Exceção. Nome do item
Saída de gravação "falhou! $ ErrorMessage com $ FailedItem "
}
}
}
$ qualityEncoder = [Sistema. Desenhando. Imaging. Codificador]:: Qualidade
$ encoderParams = Sistema de novos objetos. Desenhando. Imaging. Parâmetros de codificador (1)
# Defina o nível de qualidade JPEG aqui: 0 - 100 (limites inclusivos)
$ encoderParams. Parâmetro [0] = Sistema de Novo Objeto. Desenhando. Imaging. EncoderParameter ($ qualityEncoder, 90)
$ jpegCodecInfo = [Sistema. Desenhando. Imaging. ImageCodecInfo]:: GetImageEncoders () | onde {$ _. MimeType -eq 'image / jpeg'}
$ image.save (($ outpath + $ outfile), $ jpegCodecInfo, $ encoderParams)
$ imagem. Dispose ()
Saída de gravação "Definindo papel de parede ..."
Set-ItemProperty -path "HKCU: Painel de Controle \ Área de Trabalho" -name Wallpaper -value ($ outpath + $ outfile)
Set-ItemProperty -caminho "HKCU: Painel de Controle \ Área de Trabalho" - nome WallpaperStyle - valor 6
Set-ItemProperty -caminho "HKCU: Control Panel \ Desktop" - nome TileWallpaper - valor 0
Set-ItemProperty 'HKCU: \ Painel de Controle \ Cores' -name Background -Value "0 0 0"
# rundll32.exe user32.dll, UpdatePerUserSystemParameters
$ setwallpapersource = @ "
usando o sistema. Tempo de execução. InteropServices;
papel de parede de classe pública
{
public const int SetDesktopWallpaper = 20;
const público int UpdateIniFile = 0x01;
public const int SendWinIniChange = 0x02;
[DllImport ("user32.dll", SetLastError = true, CharSet = CharSet. Auto)]
private static extern int SystemParametersInfo (int uAction, int uParam, string lpvParam, int fuWinIni);
public static void SetWallpaper (caminho da string)
{
SystemParametersInfo (SetDesktopWallpaper, 0, caminho, UpdateIniFile | SendWinIniChange);
}
}
"@
Add-Type -TypeDefinition $ setwallpapersource
[wallpaper]:: SetWallpaper (($ outpath + $ outfile))
Saída de gravação "Concluída"