在桌面创建IE风格的快捷方式(无小箭头)

原创 2001年02月09日 01:10:00

在桌面创建IE风格的快捷方式

This article was contributed by Sundar & Naresh

我们如果要在桌面上建立一个快捷方式,我们通常是用IShellLink接口来生成一
个.lnk文件。用这种方式创建,我们在桌面上得到的是一个左下方还含有小箭头
的图标,右击它,你会看到正常的弹出菜单(含有复制、粘贴等)。但是你看桌面
上IE的快捷方式,你会看到它是一个正常的图标(没有小箭头),而且弹出菜单
也不同。下面我们来建立一个这种风格的快捷方式。


执行这段代码,你会在桌面上获得一个名叫"Netlinker"的图标,右击它,
你会看到一个定制的菜单(没有剪切、复制、粘贴、重命名等菜单祥)。
你甚至不能把它从桌面上删除,如果你选“属性”,它会打开IE的属性对话框


选一个图标文件
CString shtct_ico=_T("C://32x32.ico");

显示IE属性对话框.
CString shtct_prop=_T("rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,0");

快捷方式的名字
CString shtct_name=_T("Netlinker");

找到IE的路径并保存它.
CRegKey m_Kiepath;

CString ie_path;

DWORD dwval;

m_Kiepath.Open(HKEY_LOCAL_MACHINE,
               "SOFTWARE//Microsoft//Windows//"
               "CurrentVersion//App Paths//IEXPLORE.EXE");

m_Kiepath.QueryValue(ie_path.GetBuffer(1000),
                     NULL,
                     &dwval);

m_Kiepath.Close();

CString shtct_to=ie_path;

用guidgen.exe创建一个GUID并复制粘贴到这里。这是用来表现我们的快捷方式和它
的菜单项的。我用guidgen.ext创建的GUID是6270AEE4-AA41-11d4-A25D-008048B63F94。
下面的程序在HKCR/CLSID创建这个 GUID 键,并且将快捷方式的值设为它。

CRegKey m_kdsktp;

m_kdsktp.Create(HKEY_CLASSES_ROOT,
                "CLSID//{6270AEE4-AA41-11d4-A25D-"
                "008048B63F94}");

m_kdsktp.SetValue(shtct_name);

m_kdsktp.Close();

在这个GUID下创建DefaultIcon 键, 它是用来表现快捷方式的图标的
并把他的值设为相应的图标文件的路径.


m_kdsktp.Create(HKEY_CLASSES_ROOT,
                "CLSID//{6270AEE4-AA41-11d4-A25D"
                "-008048B63F94}//DefaultIcon");

m_kdsktp.SetValue(shtct_ico);

m_kdsktp.Close();

设置右击菜单的菜单项.

设置打开菜单项

m_kdsktp.Create(HKEY_CLASSES_ROOT,
                "CLSID//{6270AEE4-AA41-11d4-A25D-"
                "008048B63F94}//Shell//Open//Command");

m_kdsktp.SetValue(shtct_to);

m_kdsktp.Close();

设置属性菜单项.
m_kdsktp.Create(HKEY_CLASSES_ROOT,
                "CLSID//{6270AEE4-AA41-11d4-A25D-"
                "008048B63F94}//Shell//Properties//Command");

m_kdsktp.SetValue(shtct_prop);

m_kdsktp.Close();

把原来的缺省菜单项(如复制粘贴等)去掉.

BYTE *b;

HANDLE heap;

char a[20];

m_kdsktp.Create(HKEY_CLASSES_ROOT,
                "CLSID//{6270AEE4-AA41-11d4-A25D-"
                "008048B63F94}//ShellFolder");

strcpy(a,"00.00.00.00");

heap=HeapCreate(0,0,0);

b=(BYTE*)HeapAlloc(heap,0,30);

sscanf(a,
       "%x.%x.%x.%x",
       &b[0],
       &b[1],
       &b[2],
       &b[3]);

RegSetValueEx(m_kdsktp.m_hKey,
              "Attributes",
              0,
              REG_BINARY,
              b,
              4);

HeapFree(heap, 0, b);

HeapDestroy(heap);

m_kdsktp.Close();

接下来我们添加一个引用到
HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Desktop/Namespace
这样它将只显示在桌面上。

m_kdsktp.Create(HKEY_LOCAL_MACHINE,
                "SOFTWARE//Microsoft//Windows//"
                "CurrentVersion//Explorer//Desktop//"
                "NameSpace//{6270AEE4-AA41-11d4-A25D-"
                "008048B63F94}");

m_kdsktp.SetValue("Netlink");

m_kdsktp.Close();

我们对Shell作了改动,我们要通知系统,这个改动才会马上表现出来.

SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_FLUSHNOWAIT, 0, 0);

 

在桌面创建IE风格的快捷方式(无小箭头)

在桌面创建IE风格的快捷方式(无小箭头) 在桌面创建IE风格的快捷方式 This article was contributed by Sundar & Naresh  我们如果要在桌面上建立一...
  • nanhaizhixin
  • nanhaizhixin
  • 2015年08月05日 13:23
  • 463

《正确去掉Win7快捷方式小箭头》

去掉Win7快捷方式小箭头的代码如下:   reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Ex...
  • yuan_lo
  • yuan_lo
  • 2015年01月29日 14:42
  • 2939

win10完美去除快捷方式小箭头的方法

转自:http://bbs.kafan.cn/thread-1843802-1-1.html 1.去掉小箭头 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Mi...
  • AngryXXQ
  • AngryXXQ
  • 2016年02月20日 21:13
  • 11216

找回Win7的桌面IE图标(非快捷方式)

将以下文件保存为注册表文件:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Cur...
  • qq37724861
  • qq37724861
  • 2016年07月06日 12:47
  • 1266

如何恢复XP快捷方式的小箭头——最简单有效的方法!

1、新建一个文本文档; 2、复制下面的文字到文本文档中: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\lnkfile]  "...
  • lyc_daniel
  • lyc_daniel
  • 2012年09月24日 20:28
  • 1579

如何在win7系统中将IE图标拖到桌面上来非快捷方式

用记事本把以下内容保存为ie.reg   然后双击导入注册表即可。 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOF...
  • zhaohaifan
  • zhaohaifan
  • 2012年09月21日 14:58
  • 3148

【电脑常识】桌面IE快捷方式打开的网页不是主页的解决方法

 当我们的桌面IE默认的快捷方式被恶意加入了参数之后,打开的就不是我们设置的主页,而是其他我们不想要的网页,这时我们就可以根据以下方法来解决!!!解决方案:1、在命令行输入regedit,打开注册表,...
  • jonnyxu
  • jonnyxu
  • 2009年04月22日 18:04
  • 1974

用delphi创建桌面快捷方式

有许多程序在首次安装或运行的时候都会自动地子桌面上创建个快捷方式图标。但是这个自动创建桌面快捷方式的在程序中是如何实现的呢?众所周知 在windows中要给应用程序创建一个快捷方式 只需要你右键单击 ...
  • yangvszi
  • yangvszi
  • 2008年12月03日 16:27
  • 954

win7下桌面IE快捷方式无法删除解决方法

最近朋友电脑被流氓了,我看了下症状(右击只有我的主页,删除,剪切,创建快捷方式等等,点击删除会弹出IE属性对话框)是我之前遇到过的,所以满心欢喜的准备为他解决时发现我原来的方法行不通了,因为我用的操作...
  • tomyail
  • tomyail
  • 2010年01月01日 09:43
  • 18089

在IE网页右键中添加“创建到桌面快捷方式”

网页右键中的自定义命令,是调用指定网页脚本,然后调用创建快捷方式的脚本或程序。创建两个文件后,将注册表文件导入后即可==========================================...
  • scz123
  • scz123
  • 2005年12月30日 12:09
  • 4362
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在桌面创建IE风格的快捷方式(无小箭头)
举报原因:
原因补充:

(最多只允许输入30个字)