أحصل على نفس النتيجة ، هل يمكنك أن تعطينا وصفًا أكثر تفصيلاً لكيفية إصلاحه ، بالنسبة لنا المبتدئين. PowerShell في مجال البرنامج / البرنامج النصي؟ أين هذا بالضبط؟ وأين يقع مجلد البرامج النصية PS وما إلى ذلك. شكر
رائع ، من الجيد معرفة ذلك. شكرا جزيلا ، دان. :)
مرحبًا ، سأحصل على خلفية سوداء. اي حل؟
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")
$ year = $ الآن. ToString ("yyyy")
$ month = $ الآن. ToString ("MM")
$ day = $ الآن. ToString ("dd")
# إنشاء المجلد My Pictures \ Himawari \ إذا لم يكن موجودًا
$ outpath = [البيئة]:: GetFolderPath ("MyPictures") + "\ Himawari \"
إذا (! (Test-Path -Path $ outpath))
{
[void] (New-Item -ItemType directory -Path $ outpath)
}
# اسم الملف الذي سيتم حفظه:
#Uncomment هذا لجعل الملفات تتراكم في الدليل:
# $ outfile = "$ year $ month $ day" + "_" + $ time + ".jpg"
# استخدم هذا لجعل البرنامج النصي يقوم بتخزين أحدث ملف فقط:
$ outfile = "latest.jpg"
عنوان url = " http://himawari8-dl.nict.go.jp/himawari8/img/D531106/$level/$width/$year/$month/$day/$time"
[void] [reflection.assembly]:: LoadWithPartialName ("System. شبابيك. نماذج")
[void] [reflection.assembly]:: LoadWithPartialName ("System. رسم")
$ image = نظام كائن جديد. رسم. الصورة النقطية (($ width * $ numblocks) ، ($ width * $ numblocks))
رسومات $ = [النظام. رسم. الرسومات]:: FromImage ($ image)
رسومات $. مسح ([System. رسم. لون أسود)
عن ($ y = 0 ؛ numblocks $ y -lt $ ؛ $ y ++)
{
مقابل ($ x = 0 ؛ numblocks $ x -lt دولار ؛ $ x ++)
{
$ thisurl = $ url + "_" + [سلسلة] $ x + "_" + [سلسلة] $ y + ".png"
كتابة الإخراج "تنزيل: $ thisurl"
محاولة
{
طلب $ = [النظام. شبكة. WebRequest]:: إنشاء ($ thisurl)
استجابة $ = $ request.getResponse ()
$ HTTP_Status = [int] $ استجابة. رمز الحالة
إذا ($ HTTP_Status -eq 200)
{
$ imgblock = [النظام. رسم. صورة]:: fromStream ($ response.getResponseStream ())
رسومات $. DrawImage ($ imgblock، ($ x * $ width)، ($ y * $ width)، $ width، $ width)
$ 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" -namenameStyle -value 6
Set-ItemProperty -path "HKCU: Control Panel \ Desktop" -name TileWallpaper -value 0
Set-ItemProperty 'HKCU: \ Control Panel \ Colors' -name Background -Value "0 0 0"
# rundll32.exe user32.dll ، UpdatePerUserSystemParameters
$ setwallpapersource = @ "
باستخدام النظام. مدة العرض. InteropServices ؛
خلفية الطبقة العامة
{
الجملة العامة int SetDesktopWallpaper = 20 ؛
التوثيق العام int UpdateIniFile = 0x01 ؛
ثابت العامة int SendWinIniChange = 0x02 ؛
[DllImport ("user32.dll" ، SetLastError = true ، CharSet = CharSet. تلقاءي)]
خاص ثابت خارجي خاص SystemParametersInfo (int uAction ، int uParam ، سلسلة lpvParam ، int fuWinIni) ؛
الفراغ الثابت العام SetWallpaper (مسار السلسلة)
{
SystemParametersInfo (SetDesktopWallpaper، 0، path، UpdateIniFile | SendWinIniChange) ؛
}
}
"@
إضافة نوع -TypeDefinition $ setwallpapersource
[خلفية]:: SetWallpaper (($ outpath + $ outfile))
إخراج الكتابة "تم"