我有一个非常简单的PS脚本。如果我双击它或通过ISE执行它,它立即运行,但是在Windows启动(任务计划程序),它需要将近半分钟
该脚本将更改Windows背景
Add-Type @"
using System;
using System.Runtime.InteropServices;
using Microsoft.Win32;
namespace Wallpaper
{
public enum Style : int
{
Tile, Center, Stretch, NoChange
}
public class Setter {
public const int SetDesktopWallpaper = 20;
public const 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 ( string path, Wallpaper.Style style ) {
SystemParametersInfo( SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange );
RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);
switch( style )
{
case Style.Stretch :
key.SetValue(@"WallpaperStyle", "2") ;
key.SetValue(@"TileWallpaper", "0") ;
break;
case Style.Center :
key.SetValue(@"WallpaperStyle", "1") ;
key.SetValue(@"TileWallpaper", "0") ;
break;
case Style.Tile :
key.SetValue(@"WallpaperStyle", "1") ;
key.SetValue(@"TileWallpaper", "1") ;
break;
case Style.NoChange :
break;
}
key.Close();
}
}
}
"@
[Wallpaper.Setter]::SetWallpaper( 'T:\WalllpBackground\harbinger2k914ktv.jpg', 2 )
我还将任务计划程序导出为xml,将优先级更改为0和3都没有运气(看起来像7之前那么慢)
该脚本确实在启动时立即运行,但需要时间才能完成(几乎半分钟)
参数:-executionpolicy bypass -windowstyle hidden T:\wallpchange.ps1
程序/脚本:powershell.exe
如果不能立即更改背景,那有什么不妥,那么是否可以替代或修复我的问题以加快速度?
只需要通过任务计划程序更改背景,然后我可以定义壁纸将被更改的特定日期,而不是登录任何用户以查看它是否正常工作
隐藏的窗口样式似乎也不会隐藏我的Powershell窗口
我正在使用Windows 10和PowerShell 5.0
如果重要的话,它也在SSD上。