删除项目后强制刷新桌面上的图标,或首先停止添加项目

2024-04-21

我创建了一个 powershell 脚本来侦听要在桌面上创建的文件。如果文件符合特定条件,则会立即删除该文件。我用了Remove-Item $path where $path是我要删除的文件的路径。问题是 Windows 仍然添加并继续在桌面上显示该项目。该文件肯定不存在,因为尝试操作它会导致“找不到此项目”或“文件不存在”错误。通过“右键单击=>刷新”手动刷新桌面将导致该项目被删除。

有没有办法在删除桌面上的项目后强制刷新桌面?否则,是否有其他方法可以删除该文件以防止首先添加该文件?


对于仍在寻找答案的人,我会将我的答案重新发布到这个问题 https://stackoverflow.com/questions/38107621/windows-shell-functions这里也是如此,因为 PowerShel.com 的链接似乎不再起作用:

我使用以下 C# 代码从 powershell 调用桌面刷新:

  $code = @'
  [System.Runtime.InteropServices.DllImport("Shell32.dll")] 
  private static extern int SHChangeNotify(int eventId, int flags, IntPtr item1, IntPtr item2);

  public static void Refresh()  {
      SHChangeNotify(0x8000000, 0x1000, IntPtr.Zero, IntPtr.Zero);    
  }
'@

Add-Type -MemberDefinition $code -Namespace WinAPI -Name Explorer 
[WinAPI.Explorer]::Refresh()

希望这对仍在寻找答案的人有所帮助。

附注这就是我的想法的来源IDERA - 刷新图标缓存 http://community.idera.com/powershell/powertips/b/tips/posts/refreshing-icon-cache

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除项目后强制刷新桌面上的图标,或首先停止添加项目 的相关文章

随机推荐