gpt4 book ai didi

windows - 从 PowerShell 调用 Windows 运行时类 - window 8 Lockscreen Switcher

转载 作者:可可西里 更新时间:2023-11-01 10:45:35 26 4
gpt4 key购买 nike

我正在尝试制作一个我认为是一个简单的脚本,用于从给定目录中选择一个随机文件并将其设置为 Windows 8 上的锁屏图像。不幸的是,它看起来不像 Windows 公开任何内容直接到powershell触摸锁屏。我从 Stack overflow 开始提出这个问题,call-windows-runtime-classes-from-powershell看起来他一开始的最终目标和我一样,但线程没有涉及如何实际设置图像。

通过更多搜索,我找到了这个链接 How to change Lockscreen using JS in win8 app这让我走上了正确的道路 我还在 msdn 上找到了 Javascript、C#、C++ 和 VB 的示例关于如何更改锁屏,但我不太明白如何在 Powershell 中实现。

随机选择一张图片很简单:

$wallpaper = Get-ChildItem $Path2wallpaper
$NewWPimage = $wallpaper[(Get-Random -Maximum ($wallpaper.count))].FullName

我坚持的是如何实际设置图像。查看我能找到的所有内容,如果我知道如何将 $NewWPimage 转换为 .Net 流,我认为下面的代码应该可以工作?

[Windows.System.UserProfile,Windows.System.UserProfile,ContentType=WindowsRuntime]
[Windows.System.UserProfile.LockScreen]::SetImageStreamAsync($img1)

如果有人能更好地向我解释如何使用这些 .Net 对象,或者至少是从拥有文件路径(即 c:\users\UserName\Wallpapers\newImage.jpg)到设置它所需的代码文件作为锁屏那太棒了。抱歉,我的编程术语很周到,所以如果我使用了错误的术语,请原谅我。

最佳答案

从缺少响应来看,使用 WinRT 类似乎很困难。但是我确实找到了一种不同的方法来使用 powershell 以编程方式更改 Windows 8 中的锁定屏幕。

感谢 Will over powershell.org我发现在 windows 8/8.1 中有一个用户级锁屏和一个系统级锁屏。可以在注册表项中设置系统级锁屏图像,并且可以使用注册表项禁用用户级锁屏,这使系统锁屏成为全局锁屏。查看eightforums.com了解更多详情。

下面是我为设置随机锁屏而编写的代码。

$wallpaper = Get-ChildItem $Path2wallpaper
$NewWPimage = $wallpaper[(Get-Random -Maximum ($wallpaper.count))].FullName
$RegPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization"
if (Test-Path -Path $RegPath)
{
Set-ItemProperty -Path $RegPath -Name LockScreenImage -Value $NewWPimage
}
else
{
New-Item -Path $RegPath -Type Directory
New-ItemProperty -Path $RegPath -Name NoChangingLockScreen -PropertyType DWORD -Value 1
New-ItemProperty -Path $RegPath -Name LockScreenImage -PropertyType String -Value $NewWPimage
}

关于windows - 从 PowerShell 调用 Windows 运行时类 - window 8 Lockscreen Switcher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27572217/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com