VB怎么建立一个不带小箭头图标的快捷方式?不是指将系统的小箭头都去掉,是只是将我自己建立的快捷方式图标上的小箭头去掉。

解决方案 »

  1.   

    写一个服务,拦截Explorer.exe绘制图标的API,判断是不是指向你的程序是的话就不绘制小箭头.想不到别的思路了.
      

  2.   

    http://topic.csdn.net/t/20040104/10/2630916.html13楼的代码,转换成VB就可以实现楼主需求了。
      

  3.   

    将快捷方式的数据结构标记成 GUID 的序列号
    这涉及到完全了解快捷方式,其实看看 ms office 安装后生成的快捷方式就知道了
    那种快捷方式与普通的快捷方式图标稍有不同,不同之处在于快捷方式内部标记目标程序的方法上次我做到一半就停了,没继续下去
      

  4.   

    假如你要运行的程序是ABC
    在C:\下创建一个快捷方式指向ABC
    生成一个VB程序,将此程序的图标设置成你指定的图标。代码写下面的内容:
    Private Sub Form_Load()
        shell("c:\指向ABC的快捷方式.url")
        end
    End Sub
    然后将生成的程序直接放到桌面上.缺点是后缀必须是.exe,但可以设置资源管理器不显示后缀。
      

  5.   

    更正:上贴中的‘c:\指向ABC的快捷方式.url’应该是‘c:\指向ABC的快捷方式.lnk’
      

  6.   

    Dim strCmd As String
    strCmd = "reg delete HKEY_CLASSES_ROOT\lnkfile /v IsShortcut /f"
    Shell strCmd, vbHide
      

  7.   

    REGEDIT4
    ;删除快捷方式的箭头
    [HKEY_CLASSES_ROOT\lnkfile]
    "IsShortcut"=-[HKEY_CLASSES_ROOT\piffile]
    "IsShortcut"=-
    注册表里我这么做是可以的~~
      

  8.   

    创建下面两个REG文件,双击导入后刷新桌面就OK了~~~
    第一个,把“D:\\原创工具\\ASM_IDE.exe”修改成你的EXE的路径(保存为a.reg)....
    Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\CLSID\{34804132-BBAE-40C5-8B9C-E79A0CD7595F}]
    @="ASM_IDE"[HKEY_CLASSES_ROOT\CLSID\{34804132-BBAE-40C5-8B9C-E79A0CD7595F}\DefaultIcon]
    @="D:\\原创工具\\ASM_IDE.exe,0"[HKEY_CLASSES_ROOT\CLSID\{34804132-BBAE-40C5-8B9C-E79A0CD7595F}\Shell][HKEY_CLASSES_ROOT\CLSID\{34804132-BBAE-40C5-8B9C-E79A0CD7595F}\Shell\Open][HKEY_CLASSES_ROOT\CLSID\{34804132-BBAE-40C5-8B9C-E79A0CD7595F}\Shell\Open\Command]
    @="D:\\原创工具\\ASM_IDE.exe"[HKEY_CLASSES_ROOT\CLSID\{34804132-BBAE-40C5-8B9C-E79A0CD7595F}\Shell\属性(&R)][HKEY_CLASSES_ROOT\CLSID\{34804132-BBAE-40C5-8B9C-E79A0CD7595F}\Shell\属性(&R)\Command]
    @="rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,0"[HKEY_CLASSES_ROOT\CLSID\{34804132-BBAE-40C5-8B9C-E79A0CD7595F}\ShellFolder]
    "Attributes"=hex:00,00,00,00第二个(保存为b.reg):
    Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{34804132-BBAE-40C5-8B9C-E79A0CD7595F}]
    @="ASM_IDE"另外请LZ特别注意,这里面的GUID"{34804132-BBAE-40C5-8B9C-E79A0CD7595F}"是我用CoCreateGuid和StringFromGUID2两个函数生成的,每个GUID只能对应一个快捷方式,要创建N个这样的快捷方式就要生成N个GUID,并且在上面两个REG文件里面修改相应的值。下面是获取GUID的代码:Option Explicit
    'By TZWSOHO
    Private Type Guid
        Data1 As Long
        Data2 As Integer
        Data3 As Integer
        Data4(0 To 7) As Byte
    End TypePrivate Declare Function CoCreateGuid Lib "ole32.dll" (ByRef pguid As Guid) As Long
    Private Declare Function StringFromGUID2 Lib "ole32.dll" (ByVal rguid As Long, ByVal lpsz As String, ByVal cchMax As Long) As LongPrivate Sub Command1_Click()
    Dim GD As Guid, sGUID As String * 76
    CoCreateGuid GD: StringFromGUID2 VarPtr(GD), sGUID, Len(sGUID)
    Debug.Print StrConv(sGUID, vbFromUnicode)
    End Sub
      

  9.   

    好像离目标很近了,但是有2个问题
    a.reg中
    @="ASM_IDE" 改成 @="myie" 
    D:\\原创工具\\ASM_IDE.exe 改成 C:\Program Files\Internet Explorer\iexplore.exe代码是这样的:
    a.regWindows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\CLSID\{65ABDA8A-BB16-431A-9821-925C3F8F6EB4}]
    @="myie"[HKEY_CLASSES_ROOT\CLSID\{65ABDA8A-BB16-431A-9821-925C3F8F6EB4}\DefaultIcon]
    @="C:\Program Files\Internet Explorer\iexplore.exe,0"[HKEY_CLASSES_ROOT\CLSID\{65ABDA8A-BB16-431A-9821-925C3F8F6EB4}\Shell][HKEY_CLASSES_ROOT\CLSID\{65ABDA8A-BB16-431A-9821-925C3F8F6EB4}\Shell\Open][HKEY_CLASSES_ROOT\CLSID\{65ABDA8A-BB16-431A-9821-925C3F8F6EB4}\Shell\Open\Command]
    @="C:\Program Files\Internet Explorer\iexplore.exe"[HKEY_CLASSES_ROOT\CLSID\{65ABDA8A-BB16-431A-9821-925C3F8F6EB4}\Shell\属性(&R)][HKEY_CLASSES_ROOT\CLSID\{65ABDA8A-BB16-431A-9821-925C3F8F6EB4}\Shell\属性(&R)\Command]
    @="rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,0"[HKEY_CLASSES_ROOT\CLSID\{65ABDA8A-BB16-431A-9821-925C3F8F6EB4}\ShellFolder]
    "Attributes"=hex:00,00,00,00
    b.regWindows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{65ABDA8A-BB16-431A-9821-925C3F8F6EB4}]
    @="myie"
    这样导入后,桌面生成一个myie的文件夹图标,双击打开提示:该文件没有程序与之关联...,无法打开
    右击“属性”是正常的
    问题1:不是自动生成快捷程序的图标
    问题2:不能打开希望指导一下,谢谢!!
      

  10.   

    可能要有双引号,因为Program Files中间有空格