与我的代码不一致,它似乎在随机场合工作
Posted
技术标签:
【中文标题】与我的代码不一致,它似乎在随机场合工作【英文标题】:Inconsistency with my code, it seems to work on random occasions 【发布时间】:2022-01-22 03:15:56 【问题描述】:我编写了这段代码,用于下载图片,然后将其设置为壁纸。我的问题是,有时它会连续尝试几次,有时根本不起作用。(我已经删除了设置为每次尝试后下载的图片。)如果有人有,我会很高兴这个问题的解决方案。无论如何,...这里是代码:
Invoke-WebRequest https://wallpapercave.com/wp/wp69067421.jpg -o E:\skiniw.jpg
Function Set-WallPaper($Value)
Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name wallpaper -value $value
rundll32.exe user32.dll, UpdatePerUserSystemParameters
Set-WallPaper -value "E:\skiniw.jpg"
【问题讨论】:
“不起作用”是什么意思? @CherryDT 它会下载图片,但不会将其设置为壁纸。 在您尝试设置壁纸之前,可能没有完全下载壁纸。在设置壁纸之前添加错误检查并确保它已完全下载且文件未“使用中”。 @Sceptalist 我对 powershell 的整个概念还是陌生的,所以你能给我一个例子来说明如何做到这一点,以便我可以在我的代码中实现它吗? 你确定它下载了吗?对我来说,urlhttps://wallpapercave.com/wp/wp69067421.jpg
给出 '404 Page not found'
【参考方案1】:
尝试等待文件下载并测试文件是否确实存在,然后再将其设置为壁纸:
Start-Job -Name DownloadWallpaper -ScriptBlock Invoke-WebRequest "https://wallpapercave.com/wp/wp69067421.jpg" -o "E:\skiniw.jpg"
Wait-Job -Name DownloadWallpaper
if (Test-Path "E:\skiniw.jpg")
Function Set-WallPaper($Value)
Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name wallpaper -value $value
rundll32.exe user32.dll, UpdatePerUserSystemParameters
Set-WallPaper -value "E:\skiniw.jpg"
【讨论】:
以上是关于与我的代码不一致,它似乎在随机场合工作的主要内容,如果未能解决你的问题,请参考以下文章
我不确定为什么我的onclick按钮与我输入文本框的内容没有关联?