为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 系统工具源码 正文

Shell外壳编程,执行桌面图标右键菜单

三叶资源网 2017-11-17 23:01:25 系统工具源码 1942 ℃ 0 评论

资源介绍:

1、调用SHGetDesktopFolder函数获得桌面文件夹的IShellFolder接口

2、调用所获得的IShellFolder接口的EnumObjects成员函数列举所有桌面文件与快捷方式。

3、调用IShellFolder的BindToObject成员函数获得子文件夹的IShellFolder接口。

4、调用IID_IShellLink接口获取快捷方式指向文件路径。

5、调用FolderItem获取桌面图标右键菜单列表。

资源作者:

三叶资源网

资源界面:

.版本 2
.支持库 iext
.支持库 EThread
.支持库 spec

.程序集 窗口程序集_启动窗口
.程序集变量 hImageList, 整数型
.程序集变量 hMenu, 整数型
.程序集变量 LnkName, 文本型
.程序集变量 许可证, 整数型
.程序集变量 vShell, 对象
.程序集变量 vFolder, 对象
.程序集变量 items, 快捷方式列表, , "0"
.程序集变量 hThreadArray, , , "0"

.子程序 _按钮1_被单击

' 1、调用SHGetDesktopFolder函数获得桌面文件夹的IShellFolder接口
' 2、调用所获得的IShellFolder接口的EnumObjects成员函数列举所有桌面文件与快捷方式。
' 3、调用IShellFolder的BindToObject成员函数获得子文件夹的IShellFolder接口。
' 4、调用IID_IShellLink接口获取快捷方式指向文件路径。
' 5、调用FolderItem获取桌面图标右键菜单列表。


.子程序 _超级列表框1_鼠标右键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 title, 文本型
.局部变量 i, 整数型
.局部变量 MenuName, 文本型
.局部变量 pt, POINTAPI
.局部变量 MenuId

title = 超级列表框1.取标题 (超级列表框1.现行选中项, )
.如果真 (title = “”)
    返回 ()
.如果真结束
' 枚举快捷方式菜单 (title)
hMenu = CreatePopupMenu ()
GetCursorPos (pt)
.计次循环首 (取数组成员数 (items), i)
    .如果真 (items [i].快捷方式名 = title)
        MenuName = items [i].菜单名
        AppendMenuA (hMenu, #MF_STRING, i, MenuName)
    .如果真结束
    ' 本源码来自三叶资源网(www.sanye.cx)
.计次循环尾 ()
MenuId = TrackPopupMenuEx (hMenu, 位或 (#TPM_LEFTALIGN, #TPM_RETURNCMD, #TPM_RIGHTBUTTON), pt.x, pt.y, 取窗口句柄 (), 0)
.如果真 (MenuId > 0)
    items [MenuId].项目对象.数值方法 (“DoIt”, )
.如果真结束
' 调试输出 (MenuId, items [MenuId].快捷方式名, items [MenuId].菜单名)


.子程序 枚举快捷方式菜单
.参数 lnk名称, 文本型
.局部变量 vFolderItem, 对象
.局部变量 vItemVerbs, 对象
.局部变量 nCount
.局部变量 index, 整数型
.局部变量 Item, 对象
.局部变量 name, 文本型
.局部变量 list, 快捷方式列表


CoInitialize (0)
vFolderItem = vFolder.对象型方法 (“ParseName”, lnk名称)
.如果真 (vFolderItem.是否为空 () = 假)
    ' vFolderItem.查看 ()
    vItemVerbs = vFolderItem.对象型方法 (“Verbs”, )
    ' vItemVerbs.查看 ()
    nCount = vItemVerbs.读数值属性 (“Count”, )
    进入许可区 (许可证)
    标签1.标题 = “读取桌面图标菜单中....”
    .变量循环首 (0, nCount - 1, 1, index)
        Item = vItemVerbs.对象型方法 (“Item”, index)
        ' Item.查看 ()
        name = Item.读文本属性 (“Name”, )
        list.快捷方式名 = lnk名称
        list.菜单名 = name
        list.项目对象 = Item
        加入成员 (items, list)
        ' 调试输出 (name)
        .' 如果真 (name = “属性(&R)”)

            ' Item.数值方法 (“DoIt”, )
        .如果真结束

    .变量循环尾 ()
    进度条1.位置 = 进度条1.位置 + 1
    CoUninitialize ()
.如果真结束
退出许可区 (许可证)

.子程序 __启动窗口_首次激活
.局部变量 count
.局部变量 name, 文本型, , "0"
.局部变量 index
.局部变量 i
.局部变量 path, 文本型
.局部变量 文件信息, SHFILEINFO
.局部变量 hThread
.局部变量 nCount, 整数型
.局部变量 hresult, 整数型

许可证 = 创建进入许可证 ()
CoInitialize (0)
vShell.创建 (“Shell.Application”, )
vFolder = vShell.对象型方法 (“NameSpace”, 系统_取桌面路径 ())

ImageList_Destroy (hImageList)  ' 创建图标句柄
hImageList = ImageList_Create (32, 32, 24, 0, 0)  ' 定义每张图片大小为16*16的图片组,色彩为24位真彩色
超级列表框1.发送信息 (4099, 1, hImageList)  ' 为超级列表框设置图片组
ImageList_SetBkColor (hImageList, 超级列表框1.背景颜色)  ' 图标颜色

count = 系统_枚举桌面快捷方式 (name)
进度条1.最大位置 = count
.计次循环首 (count, i)
    path = 系统_取快捷方式指向 (name [i])
    path = 选择 (取文本长度 (path) = 0, 系统_取桌面路径 () + “” + name [i], path)
    ' 本源码来自三叶资源网(www.sanye.cx)
    SHGetFileInfo (path, 128, 文件信息, 348, 258)  ' SHGFI_ICON + SHGFI_SMALLICON=257(表示小图标)
    index = 超级列表框1.插入表项 (, , ImageList_AddIcon (hImageList, 文件信息.hIcon), , , )
    DestroyIcon (文件信息.hIcon)
    超级列表框1.置标题 (index, 0, name [i])
    LnkName = name [i]
    启动线程 (&枚举快捷方式菜单, 取变量数据地址 (LnkName), hThread)
    加入成员 (hThreadArray, hThread)
.计次循环尾 ()

.子程序 __启动窗口_将被销毁

删除进入许可证 (许可证)

.子程序 __启动窗口_创建完毕
.局部变量 nCount, 整数型
.局部变量 hresult, 整数型

nCount = 取数组成员数 (hThreadArray)
调试输出 (nCount, hThreadArray)
.判断循环首 (nCount > 0)
    hresult = WaitForMultipleObjects (nCount, hThreadArray, 假, #INFINITE)
    .判断开始 (hresult = #WAIT_TIMEOUT)

    .判断 (hresult = #WAIT_OBJECT_0)
        跳出循环 ()
    .默认

    .判断结束

.判断循环尾 ()
进度条1.位置 = nCount


资源下载:

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
照片墙12306抢票淘口令解析精易论坛post登录仿spy防撤回分组框美化仓库管理系统AES加密API实现菜单类小程序易语言多开中控源码QQ邮箱扫码登录淘宝时间同步战旗弹幕关键词采集PrintableTTP-244条形码工资管理系统字符串加密
最新评论