怎样得到桌面上任意一个像素点的颜色

zrz2008 2006-07-05 06:02:49
我在开发一个图像提取的软件,用于传送到单片机,不知道怎么提取这个像素点的颜色,可能是我太差了,在网上没有找到,各位大哥多指教!
...全文
312 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zrz8801814 2007-04-09
  • 打赏
  • 举报
回复
Color:=GetPixel(GetDC(GetDesktopWindow),X,Y);
zrz2008 2006-07-10
  • 打赏
  • 举报
回复
谢谢两位指导,谢谢两位的帮助!我现在在通信方面又遇到一个问题,希望两位不吝剔教!

我是用spcomm控件开发的,先前也写过一个程序,就是前几天,不过传送的数据比较少,多的时候只有两个,一般情况下都是一个数据,通信也是正常的!

但是现在我取出的数据需要一次性传送完32个数据,或者64个数据,这次数据通信出现乱码,为什么!

多谢!
YFLK 2006-07-08
  • 打赏
  • 举报
回复
授人以鱼,不如授人以池。
liangqingzhi(老之)是给你“池”的人
risingsoft 2006-07-07
  • 打赏
  • 举报
回复
liangqingzhi(老之)
高人,实在不行你就用笨办法把桌面考屏啊,每个像素你都可以得到了
zrz2008 2006-07-06
  • 打赏
  • 举报
回复
liangqingzhi(老之),能不能写详细一点,比如说他的返回类型是什么,怎么将它的返回变成数字,
xzhifei 2006-07-06
  • 打赏
  • 举报
回复
老之已经说得很清楚了:
Color:=GetPixel(GetDC(GetDesktopWindow),X,Y);
etomahawk 2006-07-06
  • 打赏
  • 举报
回复
看SDK开发中的帮助:
COLORREF GetPixel(
HDC hdc, // handle of device context
int XPos, // x-coordinate of pixel
int nYPos // y-coordinate of pixel
);

Parameters

hdc

Identifies the device context.

nXPos

Specifies the logical x-coordinate of the pixel to be examined.

nYPos

Specifies the logical y-coordinate of the pixel to be examined.

Return Values

If the function succeeds, the return value is an RGB value. If the pixel is outside of the current clipping region, the return value is CLR_INVALID.

记得在你的程序uses 中加入ShellAPI.
再看COLORREF的说明:
The COLORREF value is a 32-bit value used to specify an RGB color.
也就是说返回的就是一个32位的颜色RGB值.
老之 2006-07-05
  • 打赏
  • 举报
回复
看看是不是这样:
GetPixel(GetDC(GetDesktopWindow),X,Y)
一、打开Flash8.0软件 双击桌面图标,点→【创建新项目】→打开Flash文档,进入Flash编辑界面。默认设置Flash大小为550x400像素 ,【帧频】:12fps/s,即每秒播放12帧 二:设定舞台边线的方法和步骤 Flash软件打开后,就可以看到一个白色方框,这个就是“工作面”习惯上称作“舞台” 在制作MTV之前首先设置一下【工作区】,也就是平时所说的舞台。 点右上角的设定把舞台设定由100%变为50% 在舞台上点右键→点【标尺】,就可以看到两条【标尺】(上面和左面各一条)拖动上面的【标尺】,放到舞台的上边缘,再拖动【标尺】放到舞台的下边缘。同样,拖动左面的【标尺】放到舞台的左边缘,再拖一次放到舞台的右边缘,这样在舞台上就形成了一个由四条线组成的框,在舞台上点右键,在下拉条中点【辅助线】→点【锁定辅助线】。 添加辅助线的作用:是为了防止导入到舞台的图片盖住舞台,看不到舞台大小。 三:导入图片和声音的方法和步骤: (1)选择图片的要求: 选择图片时,一定要选择小图放大后的图片保存,这样的图片才能使用。每个Flash歌曲需要筛选15-20张图片,图片画面要和歌曲意境比较贴近,所选图片不要太小,一般像素在1000以上较好,像素小,播放效果就差,图片最小不要小于舞台的一半,每个图片只允许转换成元件一次,最多转换成15-20个元件,转换太多,文件就会很大,上传作品不容易成功 。 (2)导入图片和声音: 打开【文件】→点【导入】→点【导入到库】。 依次浏览所选择图片和声音文件的保存路径,选定图片和声音,点【打开】,将图片和声音文件【导入到库】。 有时为什么看不到导入的图片和声音? 打开库的快捷键为【ctrl+L】 打开菜单栏的【窗口】→点【库】就可以看到导入的图片了 点导入的声音文件在库中就能看到声音波纹线 至此前期的准备工作基本结束,接下来就是制作了 四:插入图层的方法和步骤 点舞台右上角的第一个按钮+添加图层, 依次点击五下,插入六个图层,双击图层重新命名,图层的名称分别为⑴【背景层】⑵【图片层】⑶【歌名层】⑷【音乐层】⑸【音乐标记层】(6)【歌词层】。图层按照顺序排列,可以按从下到上的顺序,也可以把上面的图层依次拖下来,按从上到下的顺序排列,点小锁锁定全部图层,编辑哪一层打开哪一层,同时把该层拖到最上面,以便编辑,编辑完成后,再锁定,以防编辑其他图层时误操作。如果看不到全部图层,可以把鼠标放在舞台的左上方,等鼠标变成双箭头往下拉动舞台,图层就能看清楚了。 我这里所说的建立六个图层并不是绝对的,你可以根据自己的爱好和习惯设置,有的朋友喜欢用遮罩,也可以建立遮罩层,至于怎样排列,根据自己的情况而定,有些人习惯把每句歌词或者每张图片都建一个单独的层,这也未尝不可,建议建一个层文件夹,把新建的歌词或者图片层都打包放到层文件夹,这样看起来就清爽多了。 五:制作声音层的方法和步骤 点〖音乐层〗的小锁,打开〖音乐层〗进行编辑。注意:〖音乐层〗操作时都是〖插入帧〗 计算和查看音乐长度的方法:要计算音乐的长度(所占帧数),首先应该知道音乐的播放时间,选择【音乐】图层第1帧,打开【属性】面板就可以看到相应的信息, 也可以利用MP3播放器查看歌曲播放时间根据计算得出歌曲长度(歌曲播放时间秒X12=桢数) 228X12=2736 点〖音乐层〗第一帧下面的小圆圈,插入帧,再把声音文件从库中拖到舞台,然后就能看见第一帧黑圈上有一条小黑线,在35-45帧处按右键插入帧,拉滚动条至550-560处,点击右键【插入帧】,然后依次在1120,1680,2240……处【插入帧】,这样在图层上就可以看到声音波纹线,一直依次插入帧,到没有声波线为止,拉动滚动条在声音的结尾处可以看到一条很笔直小横线,在结尾处也【插入帧】,后面不要插入空白关键帧。一首歌一般都在2000帧以上,插入帧时,每隔560桢插入一帧。 还有一种导入音乐的方法:选中【音乐】图层的第一帧,在【属性】面板中打开【声音】下拉菜单,选择刚导入的“挂念mp3” 音乐文件在【属性】面板选择了“挂念(1)mp3”音乐后以后,音乐就被导入到场景,【音乐】图层的第一帧出现一条表示声波的小横线。音乐导入后〖插入桢〗的方法同上面介绍的一样,一直到歌曲结尾出现平直的横线。 怎样删除‘音乐层’多余的帧? 在声音结尾的地方也就是声音最后一个帧处,按住鼠标右键往后拖动,把多余的帧拖黑,在黑的部分点〖右键〗点〖删除帧〗。 拉动滚动条回到第一帧处,点声音把【属性】中【事件】设置为【数据流】点声音层小锁敲【Enter】键就可以听到声音了,如果要让声音停下来,再按一次【Enter】键。 六“背景层”的制作方法和步骤 打开〖背景层〗小锁,把库中背景图片拖到舞台上,在背景图片上按鼠标右键点【转化为元件】,会出现【转换为元件】对话框,在【名称栏】输入元件名称,元件类型分⑴【影片剪辑】⑵【按钮】⑶【图形】三种,点〖图形〗前的小原点选中(选定转化为图形)→点【确定】)     第一次使用软件,类型设置默认为【影片剪辑】。 按鼠标右键点【任意变形】,在背景图片上会出现八个小方框,拉动上面的小方框,可以任意调整改变图片大小,图片最好比舞台大点。 在〖背景层〗50帧处,按右键插入【关键帧】在前面任意地方【创建补间动画】,在125帧处插入【关键帧】在前面任意位置【创建补间动画】,如果想让背景层一直显示到歌曲结束,拉动滚动条到和声音结尾对齐的地方插入【关键帧】,在前面任意部位【创建补间动画】,拉动滚动条回到50帧处放大图片(可以随意放大)图片由小变大。背景制作完毕,锁定【背景层】。 七、歌名层的制作方法和步骤 (插入桢的快捷键为F5 关键桢的快捷键F6,空白关键桢为F7 ) 点歌名层的小锁,打开歌名层进行编辑,在第一帧处插入【关键帧】,点工具栏上的大写【A】在舞台上拖出一矩形方框,调整输入法,输入歌名,如果字体太小,在右下角12处有个下拉小箭头,可以重新设置文字大小(80左右),在【属性】里设置字体颜色,点工具栏上的黑色小箭头,把文字移动到合适位置,在25帧处按鼠标右键插入【关键帧】【创建补间动画】,在75帧处插入【关键帧】【创建补间动画】,在100帧处插入【关键帧】【创建补间动画】,在101帧处插入【空白关键帧】(一句话或者一张图片结尾就要插入空白关键祯,在图层上关键桢黑色实心小圆点,空白关键帧显示为白色空心圆点) 怎样让歌名文字动起来? 在25桢处点第一帧,点歌名,拖动文字到舞台的右面,再把歌名拖到左面,在100桢处插入第四【关键帧】【创建补间动画】,观看效果就会看到歌名从舞台的右面移动到舞台左面,歌名制作完毕,锁定歌名层。 点“A”后在图片上拖出的的矩形方框是竖排怎么办? 点下面【属性】,在字体的最后一行有一标记改变文本方向【ABCD】的按钮,点开,把【垂直】设置,改成【水平】设置就可以了。 八、歌词标记层: 这一步是以后添加歌词和图片的关键,因此正确标记每一句歌词的开始至关重要(歌词和图片的〖关键帧〗插入位置是一样的) 拖动红色播放桢头返回到第一桢, 按键盘上的【Enter】键,开始播放音乐,当听到开始唱第一句歌词时,敲【Enter】键停止播放,在红色播放桢停止的地方选中〖歌词标记层〗的该桢,按【F6】插入一个关键桢,同时打开【属性】面板,在【帧标签】中输入“第一句”三个字或者NO.1,打开【标签类型】下拉菜单,选择【注释】。 添加注释以后,在〖声音标记层〗就可以看到【关键桢】上有两条绿色的斜线和注释文字,敲【Enter】键继续播放,用同样的方法在每句歌词的开始处都添加桢【注释】,所有歌词添加完毕,从头到尾再仔细听一遍,标记不够准确的地方把桢【注释】标签拖到合适位置,直至准确无误。 九、歌词层的制作方法和步骤 (1)字幕制作 打开歌词层小锁,在歌词层建议写上〖演唱者〗和〖制作者〗的名字,当然也可以把演唱者和制作者单独新建一个图层. 歌词层不在第一帧处插入【关键帧】,而在25帧处插入【关键帧】,输入〖演唱者〗的姓名如〖演唱者〗:陈洁丽,敲回车换行,再输入〖制作者〗:如雁南飞,按右键选中全部文字,在【属性】中设置【字体】、【字体大小】、【颜色】等,点工具栏的〖移动工具〗把文字移动到合适位置。在50帧处插入第二【关键帧】,在前面任意位置【创建补间动画】,在100帧处插入第三【关键帧】【创建补间动画】,在125帧处插入第四【关键帧】,【创建补间动画】,在后面插入一个【空白关键帧】。点第一【关键帧】,把文字移动到左面,点第四【关键帧】把文字移动到右面。(和歌名文字移动的方向刚好相反)文字移动方式:左边进右边出 每首歌在演唱之前一般都有过门,为了不让作品看起来单调,可以利用这段时间,对作品进行美化,在出现歌词之前加一段自己的话或者是自己对歌曲的理解,做成滚动字幕,这样看起来效果更好。 滚动字幕的制作: 在127帧处插入【关键帧】,点工具栏的【A】拉出一个矩形方框,输入一段话(也可以选择一段话,按右键复制、粘贴)选中文字调整字体宽度、大小、颜色等,点【移动工具】,移动文字到舞台下面【创建补间动画】,在240帧处插入第二帧,移动文字到上面,【创建补间动画】。插入【空白关键帧】,回到127帧处看文字效果。这样就看到文字从下面缓缓上升,锁定歌词层。(这里是两个〖关键帧〗,一个〖空白关键帧〗) (2)歌词制作: 歌词的制作,可以借助第三方软件如 : 这两款文字特效软件,内置了几百种效果,做出的歌词效果,很多是用Flash无法完成的,至于怎样使用这两款软件这里就不做详细介绍了,点击查看这两款软件都是所见即所得,也就是说你添加的效果很快就能在软件中预览到,对你所添加的效果 不满意还可以继续修改,这两款软件稍加研究就会操作了,但想做出精美的效果,还得下点功夫。 利用任意一种软件,把所有的歌词编辑好,并按歌词顺序作好标记,歌词制作好以后以swf格式保存在电脑硬盘中,需要的时候直接导入到Flash中。 歌词的导入:打开歌词层小锁,点菜单栏上【插入】-【新建元件】命令,新建【名称】为〖歌词1〗的【影片剪辑】元件 点【文件】--【导入】-【导入到舞台】在电脑中找到你用辅助软件制作好的第一句〖歌词1.swf〗文件,打开就直接导入到新建〖歌词1〗电影剪辑中了 如果想让你导入的〖歌词1〗影片剪辑只播放一次,那就要加一个停止命令了,打开【动作】面板,打开【时间轴控制】,双击【Stop】命令,就会在〖歌词1〗影片剪辑图层中看到最后一帧上面多了个字母a,表示播放一次停止。 点场景1返回场景,在【歌词层】240帧处,也就是和【音乐标记层】第一句歌词开始对齐的地方按【F6】插入【关键帧】,然后打开库面板(快捷键ctrl+L)把〖歌词1〗【电影剪辑】元件拖到舞台上,打开对齐面板调整歌词位置,按下【相对于舞台】按钮 ,再分别单击【水平中齐】 和【垂直中齐】 按钮,使歌词显示在舞台中央处,当然也可以直接拖动歌词放到你认为合适的地方,这样第一句歌词就加好了,继续拖动红色帧播放头到【标记层】第二句歌词开始的地方,选中【歌词层】上与其对应的帧,按【F6】插入【关键帧】,这时【舞台】上看到的仍然是第一句歌词的内容。单击舞台上〖歌词1〗实例,打开【属性】面板,单击【属性】面板中间的【交换】按钮,打开【交换元件】对话框,就可以看见你导入到库的所有歌词元件都在这个对话框中,选中〖歌词2〗,单击【确定】,利用这种交换添加歌词,每句歌词的位置都一样不用再调整歌词的位置了,用这种方法把剩余的歌词都添加进去,打开【控制】点【测试影片】,呵呵,怎么样对你自己很佩服吧! 小技巧 附件一【库面板中歌词元件的整理】:用辅助软件做出的歌词,每句歌词都会有好几个元件,一首歌歌词添加完,元件有很多,这样库显得很凌乱,如果再加上图片转换的元件就更多了,为了能让库中的元件一目了然,可以建立几个文件夹,分门别类的把不同元件放到同一类型的文件夹中,首先在库中点【新建文件夹】按钮,建立几个文件夹,如〖歌词文件夹〗,〖图片文件夹〗等。这里以歌词文件夹为例:当第一句歌词导入到库后,按住【ctrl】键选择歌词剪辑元件,以及产生的子元件,全部选中后,点右键,点〖移至新文件夹〗,把弹出的新建文件命名〖歌词1.0〗,这样第一句歌词的元件全部在这里了,然后把〖歌词1.0〗文件夹拖到〖歌词文件夹〗中,每导入一句歌词,整理一次,分别命名〖歌词1.0〗〖歌词2.0〗〖歌词3.0〗.....这样看起来够爽吧 附件二【图层面板的整理】图层面板的整理和库面整理是一个道理 有些人喜欢每张图片或每个道具都单独建立一个层,更有人喜欢把每句歌词建一个层,这样一首歌也有几十甚至上百个层,层数太多了,有时就不能完全显示,编辑的时候也容易出错,利用层文件夹把同一类型的层放在一起,无论编辑还是查看层都很方便. 十:用Flash8.0制作歌词的方法和步骤 上一节介绍了利用第三方软件制作歌词以及导入歌词的方法,它的优点是制作快捷,歌词特效变换丰富,缺点是文件体积比较大,有时为了上传更容易成功,利用Flash8.0软件制作歌词添加特效,也不失为一种好办法,在这一节着重介绍利用软件自身制作歌词 以及添加部分特效的的方法。 (1):歌词的编辑制作 打开歌词层小锁,点菜单上的【插入】【新建元件】或者按Ctrl+F8新建一个【名称】为【歌词1】的图形元件.在工具箱选择【文本工具】 ,按Ctrl+F3打开【属性】面板,设置文本类型为【静态文本】字体为【华文行楷】字体大小为【34】字体颜色为【黑色】按按钮 加粗文字,在舞台上单击鼠标,在文本框中输入文字,或者复制以前保存的歌词:那段放不下的情叫挂念 单击【选择工具】 选中舞台上的歌词文本,按快捷键Ctrl+K,打开【对齐】面板,按下【相对于舞台】按钮 ,再分别选择【水平中齐】 和【垂直中齐】 按钮,这样歌词就显示在舞台中央了.以此类推新建歌词2、歌词3......图形元件,作好整首歌的全部歌词,歌词有重复的可以只建一个元件。歌词作好了,是不是感觉有点单调,接下来我们进一步对歌词进行处理,使其显示色彩渐变效果。 按【Ctrl+k】打开库面板,双击【歌词1】的图形元件,进入元件编辑状态。选中【歌词1】文本,按两次【Ctrl+B】将歌词文本打散 点【歌词1】元件编辑场景,在第一帧处右键单击,在弹出的菜单中选择【复制帧】,点新建图层按钮,新建【图层2】,鼠标右键单击【图层2】的第一 帧,在弹出的菜单中选择【粘贴帧】,锁定【图层1】. 按【shift+F9】键打开【混色器】面板,选择【线性】渐变填充,你喜欢什么颜色,调节中间的色块,也可以多加几个色块,直到你满意为止. 颜色调整好后,选择【颜料桶工具】 ,单击歌词文本,进行填充,再选择【填充变形工具】 ,旋转渐变颜色的填充方向为90度。选中【图层2】的第一帧,用键盘上的方向键,向下向左各移动一个像素的距离,这样看起来更有立体感。 按照同样的方法把所有的歌词都加工一遍,这样歌词看起来是不是好看多了 。 现在8.0版本增加了滤镜效果,滤镜可以用于文本、按纽和影片剪辑,利用滤镜可以设置很多效果,而且制作起来非常方便快捷,打开每个效果都有具体选项设置,滤镜效果可以累加,不想要的按 取消,这里就不一一示范了,有兴趣不妨试试。 十一、图片层的制作方法和步骤 滚动字条在240帧处结束,图片层就从240帧处开始。其实图片和歌词的添加位置是一样的,也是根据歌词标记层的位置确定的。 (做图片层分三大步骤) (一)插入图片的方法和步骤(分5个步骤) 1、在插入图片的地方,使用右键插入【关键帧】。 2、把库里的图片拖到舞台上 3、在图片上按右键转化为【元件】。点〖确定〗。一定要选择图形 4、在图片上按右键点〖任意变形〗,调整图片 5、拖动图片和舞台一样大小 先把舞台设定为25%再放大为50%。图片如果没有转化为元件,舞台中的图片边缘是锯齿状的虚线,图片转化成了元件,图片的四周就成了实线。 (二)插入关键帧的步骤(4个关键帧和一个空白关键帧) 在歌开始的地方插入第一【关键帧】,仔细听歌,在每一句歌词结尾的地方包括虚声部分,敲回车停下来。注意(在下一句歌词开始的第一个字的地方),按右键插入第四个【关键帧】在前面任意部位【创建补间动画】,在第四帧后面插入【空白关键帧】。 第二关键帧的位置在:第一关键帧后10-15帧处。 第三关键帧的位置在:第四关键帧前10-15帧处。 (三)图片淡入淡出的步骤 做图片淡入淡出效果,只需调整第一和第四关键帧 第一:插入【关键帧】 第二:点舞台上的图片 第三:在【属性】里把颜色【无】设置为英文字母【Alpha】 第四:把右边的色调由100%调整到20%左右 敲回车,回到第一关键帧,预览图片效果,看到的是图片慢慢放大。(在第三关键帧处把图片放大) 下一张图片的制作重复前面的步骤。 在上一空白关键帧后面插入关件帧→把库里图片拖到舞台→点右键转化为【元件】。 图片的其他效果: 上下移动:点第一帧把图片移动到上面,点第四帧,把图片移动到下面 左右移动:点第一帧把图片移动到左面,点第四帧,把图片移动到右面 图片的变大变小:点第一帧把图片缩小,第四帧把图片缩小,第三帧放大图片 图片旋转:点第二【关键帧】,设置下面为顺时针旋转 在歌曲的过门处随便插入两三张图片(也是4+1)。首先,插入第一关键帧,第二关键帧的位置在第一关键帧后15帧处,第三关键帧的位置在第二关键帧后30-50帧处。第四关键帧的位置在第三关键帧后15帧处。 如需要重复使用上面的图片,可以把库中的图片元件直接拖进来使用。 这里所说的关键桢的位置,是相对的,并不是一成不变的,根据歌词桢的多少添加图片的效果, 有了标记层图片添加速度很快,图片复杂效果也可以用特效软件制作,这里就不详细介绍了。 十二、Flash文件的保存和发布 (1):文件的保存:整个操作完成后,点【文件】→【另存为】→选择保存路径(可以保存在桌面或你电脑的其他硬盘上,输入【swf】文件名称(可以加网名) →【保存】。 现在保存的文件还可以打开修改或继续编辑。 (2):文件的发布:点〖文件〗→〖导出影片〗→〖输入文件名称〗→〖保存〗→把加载顺序改为〖自上而下〗,点住下面的〖覆盖声音〗,如果不勾住声音文件会很大→点〖确定〗,这样一首完整的MTV就制作好了,然后找一个上传网站,把你的作品上传上去就有了我们所需要的地址了。 歌词导入的方法和前面【影片剪辑】元件导入的方法是一样的 ,在歌词层和标记层【第一句】对应的帧插入【关键帧】,打开【库】面板,把【歌词1】元件拖到场景中,放到合适位置,在【第二句】歌词开始的前5帧处,插入【关键帧】按【Ctrl+F3】打开【属性】面板打开【颜色】下拉菜单,选择【Alpha】(透明度),设置【Alpha】值为“50%”。在前面任意帧处点右键【创建补间动画】,这样歌词的淡出效果就做好了,淡入效果则是先在第一【关键帧】上设置【透明度】为“50%,第二句歌词开始前5帧处插入【关键桢】,前面任意帧,点右键【创建补间动画】。 第二句歌词利用【属性】面板的【交换】命令替换掉,其他歌词也一样,这样一首歌的歌词就算添加完毕了。下一节介绍图片的添加方法。
功能: 执行BAT批处理脚本A,去掉桌面快捷方式图标上的箭头。 执行BAT批处理脚本B, 还原成操作系统桌面图标默认带箭头的状态。 去箭头 或者 还原箭头 两个脚本都能顺带解决其他方法导致的后遗症问题。 其他方法导致的后遗症问题是指下面这两种后遗症。 任务栏被锁定, 快捷方式图标的箭头变黑块 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 特点: 1.无后遗症。 2.实现桌面图标在视觉上毫无污染的境界。可以通过放大镜程序任意等级放大检测,不会发现任何污染。 3.使用了一个自己定制的特殊图标文件作为箭头图标,除此之外不给系统添加其他任何文件。 4.明文批处理,无毒无木马,避免了EXE类程序骑马携毒的嫌疑。 5.一次运行,一次解决,立即生效,无需重启动。根治病患,后顾无忧。不使用自启动,无额外资源消耗。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 版本: 脚本和操作系统是32位或者64位毫无关系。 如果谁在这个问题上还特意故弄玄虚扯上64位系统 那就纯属扯淡。 不过因为图标缓存文件涉及具体路径,所以不同系统会有差别, 最早脚本是基于Win7制作,后来添加WinXP版本。 使用其他系统如果发现路径有差别的话,可以自行修改制作成针对其他系统的脚本。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 缺点: 我设置了障碍,需要虚拟分 3分。 其实脚本并不复杂,如果仔细阅读肯定能自己照样子做出来。 我也不缺分,分对我也不重要。我是支持有能力的用户自己去完成的。 设置3分,只是稍微提高了一点获取门槛,不想被别人随意照搬,然后到处乱发。 脚本和所需资源是早在2014年3月就已完成制作。 上传CSDN时是 2017年2月2日。 之所以上传这东西,因为我发现都到了2017年, 结果去网络上搜索,还是没有彻底解决这个问题的案例。 到处都是照搬照抄那些有后遗症或者不彻底的方案。 如果你能看懂 甚至能按照描述做出来 但还是来下载, 这我当做是对我过去付出的认可 以及 尊重吧。 ------------------------------------------------------------------------------------------------------------------------ 脚本过程 1.强制修改注册表,这样可以修复其他方法导致的锁任务栏这个后遗症。 其实这个强制修改注册表也只是返回到操作系统最原始的样子,可以算作还原吧。 2.复制自制的 视觉透明 数据非透明的图标文件,复制到系统目录下。 3.修改注册表,把快捷方式的箭头图标文件指向自制的特殊图标文件。 4.结束explorer进程。 5.清除图标缓存文件(需要先改属性)。 6.重新启动explorer进程。 ------------------------------------------------------------------------------------------------------------------------ 已经不记得从什么时候开始使用没有箭头的快捷方式图标了。 自己第一次遇到快捷方式图标问题(箭头图标变黑块)是在2013年10月份, 当时并没太在意,只是通过搜索网络找了个普通办法解决了。 但站在现在的位置看当初,那应该是一个临时的处理办法,并不是根治问题的方法。 真正重视并打算弄明白并解决这个问题 是在2014年3月17日到21日的那一段时间。 当时的过程当然是先搜索网络,查看测试当时能找到很多已知的方案, 这是捷径,即站在前人的肩膀上快速了解问题, 掌握大家所利用分的方法,因为里面很可能就包含最终正确方案的一部分。 测试了见过的很多方法,都是先惊喜 最后失望,因为都有问题,不能圆满解决。 还有就是 这卫士 那管家 之类的提供的方法, 应该说这些工具的方案也经历过不同版本,网上见到过评价其导致其他问题。 卫士管家这类工具 那时候我已经很反感了, 早已看透这类东西,所以那时候就已经不用这类东西了。 了解发现 卫士管家这类 他们当然不会直白的使用明文脚本, 而是编译后的程序,有的还不是一次彻底解决问题,需要每次启动后调用一次。 除了卫士管家这类东西之外,那时候网络上已经出现了单独的工具,不少都是挂马的。 虽然能搜到很多,但没有发现能彻底解决的方法。但大体思路已经很清晰, 大家的办法也很相近,只有自己来做才能按照自己的需求彻底解决问题。 其实问题并不算复杂,早期大家的办法不成熟 有后遗症。 后期大家总算摸到门了,但陷在了无尽的尝试和寻找可用的自带图标之中。 然而自带的图标要么是绝对的透明,要么就是有像素的图标, 自带图标不管其像素多少多大,那都是污染。 系统对快捷方式图标的处理方法很特殊,还涉及到图标缓存, 桌面快捷方式的图标是箭头图标和原始快捷方式图标合成的新图标。 有污染的图标自然不是理想的代替箭头的图标。 而系统自带的透明图标会带来黑方块遮挡这个后遗症。 猜测用透明图标的话,在某一特定时刻系统会检测到异常, 然后就用了全黑图标代替透明图标。总之透明图标不能用。 另外检测黑块问题其实不用重新启动系统去检测,注销后再登陆就可以验证是否有问题。 操作系统是机器,跑的是程序,它对透明图标的判断标准当然是绝对的数据标准,不是我们的视觉标准。 所以操作系统检测出透明图标然后用黑块图标替换,这种透明一定是数据级别的绝对透明。 举个不见得完全正确的例子 比如0代表透明,255代表单一颜色的最大值,那么导致黑块的透明图标一定是0这一级别的数据。 而我们人的视觉并不敏锐,如果0代表透明,那么对我们来说1也是透明,甚至10也可能是透明。 但对于操作系统来说1或者10这和透明就毫无关系了,如果有这样的图标 自然就不会惹上黑块这个后遗症。 但操作系统中不会有这种看起来是透明 实际上 即数据上来说并非彻底透明的 毫无意义的图标, 这也是为什么大家都在找系统中可用来替代的图标,但绝对不会有结果的原因。 所以方案只能是自己动手做一个符合自己标准的视觉透明数据不透明的图标。 自制视觉透明图标,基础是一个完全透明的图标, 为了尽可能减少复杂度,只在这个透明图标上添加一个像素点即可。 初期还曾尝试不同颜色的像素点,甚至考虑绝大多数用户桌面颜色,还有像素点的位置, 但实际上这些并不影响结果,因为最终视觉上不会看到任何像素。 但考虑到理论基础还是选择了中间色 灰色 作为像素点颜色。 然后利用软件对像素点做平滑处理,模糊处理,高斯模糊处理。 经过这一系列处理后就形成了肉眼看是完全透明的图标, 但理论上是有颜色的图标,这样Windows转换图标时就不会触发黑块问题。 ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ 早期出现的有缺陷的方法 方法一 核心语句是清除注册表如下注册表项,此法后遗症是任务栏被锁,不能向任务栏添加快捷方式。 reg delete "HKEY_CLASSES_ROOT\lnkfile" /v IsShortcut /f reg delete "HKEY_CLASSES_ROOT\piffile" /v IsShortcut /f 此法虽有不同形式,但无论是BAT命令还是其他不同高级语言编译的EXE,本质上是一样的。 使用高级语言只是换个形式使用命令, 其目的 一是隐藏代码不想公开,还有就是目的不纯 涉及灰色产业链,挂马带毒。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 方法二 是用一个透明图标替换小箭头图标,此法后遗症是导致原来小箭头的图标变成黑块 核心语句 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ Shell Icons" /v 29 /d "%systemroot%\system32\shell32.dll,50" /t reg_sz /f 核心图标文件shell32.dll,图标编号50 此法注销或重启动后会发现快捷方式上的黑块。清理图标缓存文件后重启explorer进程可以暂时解决问题。 所以使用此法的方案往往还会利用自启动,每次进入系统后都执行一次清理图标缓存和重启资源管理器进程。 其实系统里还有其他透明图标,当然 用的话也有后遗症 %SystemRoot%\System32\ImageRes.dll 的第113和115两个图标都是透明图标, 因为是透明图标所以没有污迹,但同样注销后有黑块。 此法的核心是利用一个绝对的透明图标替换箭头图标, 无论使用哪个透明图标都可以归结为此类方法,结果也都是一样,会导致黑块问题。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 方法三 替换小箭头图标,选择了图标资源文件imageres.dll,内部196号图标 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ Shell Icons" /v 29 /d "%systemroot%\system32\imageres.dll,196" /t reg_sz /f 缺点是 快捷方式图标会染上污迹,脏兮兮 196号图标,并不是全透明无像素图标,它是类似于一道下划线的图标,所以就有了污迹的效果。 196,是1条线。 197,是2条线。 198,是3条线。 使用系统自带的任何其他非透明图标代替箭头图标,都可以归结为此类方法。 虽然结果会有差别,但充其量也就是图标污染程度不同这样的差别。 解决快捷方式箭头问题所需要的图标是视觉上透明,数据级别不透明的图标。 操作系统内设计一个有像素的图标自然是为了看得到,而不是看不到, 对操作系统来说设计那样的图标没有意义,所以操作系统不会自带那样的图标, 因此在操作系统自带的图标范围内找答案不会有结果。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧