批处理刷新图标

原文地址: https://www.cnblogs.com/daysme/
标签: 批处理 cmd bat 刷新桌面 刷新图标 立即生效
昨天写的一文件关联的小工具里有一个关联图标的功能,遇到一个问题,就是关联的图标不能马上生效。
网上大多数的刷新方法都是 taskkill /f /im explorer.exe >nul 2>nul&start explorer.exe ,这种方法可以更新图标。但是用户打开的资源管理器窗口会被关闭,开得比较少还好,多的话就尴尬了,重新打开都要半天,体验非常不好。
为了解决这个问题,第二天我还是在想有没有其他的解决方法。因为我觉得有时候刷新图标并没有都把资源管理器关闭呀,那么人家用的是什么方法呢?一定还有其他方法。
对了,为什么自己的代码里关联扩展名的时候图标是立即生效的?是修改这个特殊的地方的注册表导致的吗?那关联图标也修改了类似的注册表了。
还有一个可疑的地方是 assoc ,一个用于修改文件类型关联的命令。试了一下,就是他!使用他时系统会自动刷新缓存。那么问题来了,我们必须使用一个文件类型去关联吗?为了刷新图标而去添加一个关联,好像是产生了些副作用。
然后继续寻找其他的方法,但是都没有找到没有副作用的,以下对这些刷新方法进行整理和比较。

  REM taskkill 用户窗口被关闭
  taskkill /f /im explorer.exe >nul 2>nul&start explorer.exe
  assoc 有多余添加
  assoc exe=exefile
  REM regsvr32.exe 图标有白块
  regsvr32.exe /s /n /i:/UserInstall %SystemRoot%\system32\themeui.dll
  REM inf 代码太多
  >%tmp%\tmp.inf (
      echo;[Version]
      echo;Signature=$Chicago$
      echo;[DefaultInstall]
  )
  rundll32 SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 %tmp%\tmp.inf
  REM inf 需要%1是有效inf,win7报错:您选中INF文件不支持此安装方法
  %SystemRoot%\System32\InfDefaultInstall.exe "%1"

网上有一些类似 txt=textfileexe=exefile 的方法, exe 这个比较容易让人接受一点,因为 exe 类型是几乎不会被修改成其他类型了。谈到几乎不会被修改的话,我倒可以改成这样 .=. 应该也比较保险,试了一下方便有效。

?

原文地址:https://www.cnblogs.com/daysme/p/8371025.html

时间: 2024-10-04 13:17:21

批处理刷新图标的相关文章

C#实现与文件关联后使刷新图标立即生效的方法

C#实现与文件关联后使刷新图标立即生效的方法,分享给大家. 首先要说明,这可不是重启explorer.exe资源管理器. 一段代码搞定: SHChangeNotify(0x8000000, 0, IntPtr.Zero, IntPtr.Zero); [DllImport("shell32.dll")] public static extern void SHChangeNotify(uint wEventId, uint uFlags, IntPtr dwItem1, IntPtr d

PullToRefreshScrollView 修改下拉刷新图标

我的修改比较简单暴力.网上查了一番,貌似大家都没有改,无奈,查了一下源码.发现如下资源目录: 在看看我们的布局文件,此三个图片就是下拉刷新的三种图标 好吧,flip就是我目前的下拉刷新图片,对应的也就是default_ptr_flip.png 现在要改成default_ptr_rotate.png. 废话不说了.直接改代码,试试就知道 <com.handmark.pulltorefresh.library.PullToRefreshScrollView xmlns:ptr="http://

慕课网app下拉刷新图标填充效果的实现

之前看到一种下拉刷新的效果,与以往的下拉效果都不一样,大多数下拉刷新都是一个圆形进度条在旋转,而这个下拉刷新则是一个不断填充的效果.本以为这是个自定义View,后来反编译慕课网的app后提取资源的时候看到好多的图片,那大概慕课网app内部的实现应该是帧动画达到这种效果.而当我看到这种效果的时候,由于前段时间在学自定义控件,所以本能的反应则是自定义的.首先我们看下慕课网的效果.如下图 而我的也实现了一个这个图标填充的简单版.如下图 整个实现使用图形的混合模式+贝塞尔曲线,贝塞尔曲线的绘制参考自爱哥

刷新图标缓存

1 #include <windows.h> 2 #include <shlobj.h> 3 4 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) 5 { 6 SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_FLUSH, NULL, NULL); 7 return FALSE; 8 }

win7刷新图标缓存

建立bat文件 rem 关闭explorer.exetaskkill /f /im explorer.exeattrib -h -i %userprofile%\AppData\Local\IconCache.dbdel %userprofile%\AppData\Local\IconCache.db /arem 打开start explorer

Mac os刷新图标缓存

sudo rm -rf /Library/Caches/com.apple.iconservices.store sudo find /private/var/folders/ -name com.apple.dock.iconcache|xargs rm -rf sudo find /private/var/folders/ -name com.apple.iconservices|xargs rm -rf then run command [sync] and [reboot] to reb

ListView上拉加载下拉刷新

主要用到了这个几个文件,MainActivity是界面的Activity,MyAdapter是ListView的自定义适配,MyListView是自定义带头部LIistView,如果只需要上拉加载就不需要:activity_main.xml是住界面,item.xml是ListView的子布局里面只有一个TextView,listview_footer.xml是listview的加载更多的底部布局,listview_header.xml是listview的头部布局. MainActivity.ja

android 安卓自定义listview实现下拉刷新

[1].重写listView public class MyListView extends ListView implements OnScrollListener {          private final static int RELEASE_To_REFRESH = 0;// 下拉过程的状态值       private final static int PULL_To_REFRESH = 1; // 从下拉返回到不刷新的状态值       private final static

下拉刷新控件——SwipeRefreshLayout

1.SwipeRefreshLayout控件在v4包下 布局: <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/id_swipe_ly"> //这里是给需要添加下拉刷新的布局 比如ListView <ListView></> </> 2.自定义 下拉图标的颜色 id_swipe_ly.setColorSchemeResources( android.R.colo