如题

解决方案 »

  1.   

    怎样才叫“把文件锁定到win7的任务栏呢?”
      

  2.   

    注册表里HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband
    FavoritesResolve
      

  3.   

    这是win7的任务栏有的功能,就是类似于xp的快速启动栏。
    添加一个文件到任务栏就方便启动
      

  4.   

    win7的特性,可以把一个程序锁定到任务栏, 相当于放上去一个快捷方式
      

  5.   


    我来了,刚看了看楼主的资料,确实木有可用分了。以下代码将默认路径是C:\Windows\notepad的记事本程序钉在Win7的任务栏上。
    uses ComObj;procedure CrnPinAppToWin7Taskbar(strPath, strApp: string);
    var
      vShell, vFolder, vFolderItem, vItemVerbs: Variant;
      i: Integer;
      str, strPinName: String;
    begin
      vShell := CreateOleObject('Shell.Application');
      vFolder := vShell.NameSpace('C:\windows\');
      vFolderItem := vFolder.ParseName('notepad.exe');
      vItemVerbs := vFolderItem.Verbs;  // 以下的PinName只适用于中文版的系统
      // 英文版的系统要用'Pin to Tas&kbar'
      strPinName := '锁定到任务栏(&K)';  for i := 1 to vItemVerbs.Count do
      begin
        str := vItemVerbs.Item(i).Name;    if SameText(str, strPinName) then
        begin
          // 63 63 72 75 6E 2E 63 6F 6D
          vItemVerbs.Item(i).DoIt;
        end;
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      CrnPinAppToWin7Taskbar('C:\windows\', 'notepad.exe');
    end;
      

  6.   

    骚瑞,上面的代码有瑕疵,其中两行需要修改一下:  vFolder := vShell.NameSpace('C:\windows\');
      vFolderItem := vFolder.ParseName('notepad.exe');改成:  vFolder := vShell.NameSpace(srPath);
      vFolderItem := vFolder.ParseName(strApp);
      

  7.   

    谢特,String对象代入会有异常,重新修正一下:请忽略14,15楼的回复。uses ComObj;procedure CrnPinAppToWin7Taskbar(strPath, strApp: string);
    var
      vShell, vFolder, vFolderItem, vItemVerbs: Variant;
      vPath, vApp: Variant;
      i: Integer;
      str, strPinName: String;
    begin
      vShell := CreateOleObject('Shell.Application');
      vPath := strPath;
      vFolder := vShell.NameSpace(vPath);
      vApp := strApp;
      vFolderItem := vFolder.ParseName(vApp);
      vItemVerbs := vFolderItem.Verbs;  // 以下的PinName只适用于中文版的系统
      // 英文版的系统要用'Pin to Tas&kbar'
      // strPinName := 'Pin to Tas&kbar';
      strPinName := '锁定到任务栏(&K)';  for i := 1 to vItemVerbs.Count do
      begin
        str := vItemVerbs.Item(i).Name;    if SameText(str, strPinName) then
        begin
          // 63 63 72 75 6E 2E 63 6F 6D
          vItemVerbs.Item(i).DoIt;
        end;
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      CrnPinAppToWin7Taskbar('C:\windows', 'regedit.exe');
    end;
      

  8.   

    C++Builder中的实现方式,参考这里:http://blog.csdn.net/ccrun/article/details/6906471