zoukankan      html  css  js  c++  java
  • Delphi -- 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜 单

    复制代码
    {=================================================================
    功 能:
    创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单 快捷方式
    参 数:
    FileName : 快捷方式执行文件名
    Description : 快捷方式描述信息
    Arguements : 快捷方式执行参数
    ShowName : 快捷方式显示名称
    Location : 快捷方式类别
    id : 需设置状态的队列号(255 为设置)
    CreateOrDelete: 是创建还是删除(默认为创建 true)
    返 回 值: 无
    备 注:
    需要引用 Registry, ShlObj, ComObj, ActiveX, RegStr 单元
    =================================================================}
    复制代码
    复制代码
    procedure TMainForm.CreateShortcut(FileName,Description,Arguements,ShowName:
    string;
    Location: ShortcutType; id: byte; CreateOrDelete: boolean=true);
    var
    cObj :IUnknown;
    sLink :IShellLink;
    pFile :IPersistFile;
    sDir,spath,key,tmp :string;
    wFileName :WideString;
    mReg :TRegistry;
    begin
    cObj :=CreateComObject(CLSID_ShellLink); //创建COM对象
    sLink :=cObj as IShellLink; //COM对象转化为IShellLink型接口
    pFile :=cObj as IPersistFile; //COM对象转化为IPersistFile型接口
    //获取路径
    sPath :=ExtractFilePath(FileName);
    with sLink do begin
    SetPath(PChar(FileName)); //设置执行文件名
    SetArguments(PChar(arguements)); //设置执行参数
    SetDescription(Pchar(Description)); //设置描述信息
    SetWorkingDirectory(PChar(sPath)); //设置工作路径,即执行程序所在目录
    end;
    //获取各快捷方式的实际目录
    mReg :=TRegistry.Create;
    with mReg do begin
    if Location=ST_CONTEXT then //添加右键菜单
    begin
    RootKey :=HKEY_CLASSES_ROOT;
    tmp:= '*shell'+ShowName;
    if CreateOrDelete then
    begin
    if OpenKey(tmp,true) then
    begin
    //用writestring将设置值写入打开的主键
    WriteString('',ShowName+'(&k)');
    CloseKey;
    end;
    if OpenKey(tmp+'command',true) then
    begin
    //command子键的内容是点击右键后选择相应项后要运行的程序;
    //%1是在单击右键时选中的文件名
    //WriteString(,'c:delphimyprogram.exe+"%1"');
    WriteString('',FileName);
    CloseKey;
    end;
    end
    else
    DeleteKey(tmp);
    Free;
    exit;
    end;
    RootKey :=HKEY_CURRENT_USER;
    key :=REGSTR_PATH_EXPLORER; //Delphi在单元RegStr中定义的常量
    tmp :=key + 'Shell Folders';
    OpenKey(tmp, false);
    case Location of
    ST_DESKTOP: sDir :=ReadString('Desktop');
    ST_SENDTO: sDir :=ReadString('SendTo');
    ST_STARTMENU: sDir :=ReadString('Start Menu');
    ST_PROGRAMS: sDir :=ReadString('Programs');
    ST_QUICKLAUNCH:
    begin
    sDir :=ReadString('AppData');
    sDir :=sDir + 'MicrosoftInternet ExplorerQuick Launch';
    end;
    end;
    //生成快捷方式文件名
    if ShowName='' then
    begin
    ShowName :=ChangeFileExt(FileName, '.Lnk');
    ShowName :=ExtractFileName(ShowName);
    end
    else
    ShowName:= ShowName+'.lnk';
    if sDir<>'' then
    begin
    //生成快捷方式全路径名
    wFileName :=sDir + '' + ShowName;
    if (id<255) then
    begin
    if FileExists(wFileName) then
    //RzCheckGroup1.ItemChecked[id]:= true;
    end
    else
    //保存或删除生成的快捷方式文件
    if CreateOrDelete then
    pFile.Save(PWChar(wFileName), false)
    else
    DeleteFile(wFileName);
    end;
    Free;
    end;
    end;
    复制代码

     http://www.cnblogs.com/shangdawei/p/4518740.html

  • 相关阅读:
    SharePoint 2013 中的SQL Server 安全
    SharePoint 2013 的HTML5特性之响应式布局
    SharePoint 2013 一些小技巧
    SharePoint 2013 排错之"Code blocks are not allowed in this file"
    SharePoint 2013 创建搜索中心及搜索设置
    SharePoint 2013 使用PowerShell创建State Service
    SharePoint 2013 内容部署功能简介
    SharePoint 使用PowerShell恢复误删的网站集
    SharePoint 自定义WebPart之间的连接
    linux之misc及使用misc创建字符设备
  • 原文地址:https://www.cnblogs.com/findumars/p/5243895.html
Copyright © 2011-2022 走看看