与我的代码不一致,它似乎在随机场合工作

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 的整个概念还是陌生的,所以你能给我一个例子来说明如何做到这一点,以便我可以在我的代码中实现它吗? 你确定它下载了吗?对我来说,url https://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按钮与我输入文本框的内容没有关联?

启用 CORS 的服务器不拒绝请求

CGRectIntersectsRect 工作不一致

Dart / Flutter - 验证URL的字符串

我的联系表单验证的小错误。电子邮件验证与我的其余代码纠缠不清

JS绝对位置与我的div冲突