QQ是怎样实现好友桌面快捷方式的?
QQ是怎样实现好友桌面快捷方式的?
不知道什么时候,QQ推出了好友桌面快捷方式。方便用户和最常保持联系的好友一键联系。核心功能一:若QQ启动了。则双击快捷方式直接打开好友聊天界面;核心功能二:若QQ未启动,则双击快捷方式后启动QQ后打开好友聊天界面。
但其是怎样实现的呢?让我们一起挖一挖。
一、QQ好友桌面快捷方式操作演示
直接上图,非常明了,只是多解释。
二、QQ好友桌面快捷方式的Windows实现
上图是桌面好友快捷方式的几个关键属性。解析例如以下:
1)、目标——关联的进程。快捷方式无非是可运行程序的快捷链接。
给QQ.exe进程创建快捷方式展开属性发现。目标位置内容为:C:\Program Files\Tencent\QQ\QQProtect\Bin\QQProtect.exe
这就是QQ的核心进程。而对照好友快捷方式的目标位置内容为:
C:\ProgramFiles\Tencent\QQ\Bin\QQScLauncher.exe" /uin:*********/quicklunch:096275A1A8 3DC509B82E14BEE49552 98B7C1FF2235EB054520E6686E1353FA8ED7219F5CC4213B89
组成结构为:启动关联进程/自己的QQ号/标识好友信息的80个16进制值。该组成即是快捷方式能实现与好友直接互联的核心。
2)、打开文件位置——EXE进程的路径即QQScLauncher.exe的安装路径。
3)、更改图标——图标的存储路径,即是好友的头像图标的存储路径,例如以下图所看到的:
基本断定为32位MD5值.ico的形式存储的好友头像。
Windows下实现桌面快捷方式须要用到两个COM接口IShellLink和IPersistFile的部分函数。
1)设置目标:HRESULT SetPath(LPCTSTR pszFile);
2)更改图标: HRESULT SetIconLocation(LPCTSTRpszIconPath,int iIcon);
3)保存快捷方式:HRESULT Save( LPCOLESTRpszFileName, BOOL fRemember);
三、QQ好友桌面快捷方式的实现流程
个人判断的大致流程例如以下:
第1步:实现QQScLauncher.exe与QQProtect.exe的通信。
QQProtect.exe负责多用户QQ的登录。而QQScLauncher.exe须要通过QQProtect.exe得知当前创建桌面快捷方式的好友的QQ号是否已经启动?
1)假设QQ没有启动。则调用QQProtect.exe启动QQ而后打开好友界面;
2)假设QQ启动了。则直接打开好友页面。
两进程之间能够通过共享内存方式实现通信。
第2步:下载QQ好友图像存储到安装路径下。
存储路径为C: \Users\Administrator\AppData\Roaming\Tencent\QQ\Misc\Shortcuts。为好友创建桌面快捷方式提供图标支持。QQ不可能将每一个QQ好友的图标都下载到暂时存储文件夹下,那样的话存储和处理都是问题。
仅仅是会在须要的时候才会存储。图标的下载能够通过类似URLDownloadToFile ()的接口实现。
第3步:通过COM接口IShellLink和IPersistFile的实现创建好友桌面快捷方式。具体函数參见第二部分。
四、測试好友桌面快捷方式效果回馈
第1点。假设创建了好友的桌面快捷方式,即使我们人为手动更换了名称。如“1234.lnk”改为“5678.lnk”。可是点击删除桌面快捷方式,仍然可以删除。
前提是好友快捷方式必须还在桌面路径如C:\Users\Public\Desktop上。是什么标示了该快捷方式的唯一性?尚不知道。
第2点,假设我们人为删除了好友桌面快捷方式。右击好友仍会出现“生成桌面快捷方式”;可是一旦我们生成了桌面快捷方式。右击好友仅仅会出现“删除桌面快捷方式”。该功能实现的细节非常到位。
这仅仅是QQ实现的一个小功能,细致留意,这些小功能都极大的方便了我们大众用户的操作。
也为我们开发者提供了非常好的借鉴和參考。
2014-4-26 pm0:40 思于家中床前
作者:铭毅天下
转载请标明出处。原文地址:http://blog.csdn.net/laoyang360/article/details/24503161
假设感觉本文对您有帮助。请点击‘顶’支持一下。您的支持是我坚持写作最大的动力,谢谢!
转载于:https://www.cnblogs.com/llguanli/p/6932070.html
QQ是怎样实现好友桌面快捷方式的?相关推荐
- QQ是如何实现好友桌面快捷方式的?
QQ是如何实现好友桌面快捷方式的? 不知道什么时候,QQ推出了好友桌面快捷方式,方便用户和最常保持联系的好友一键联系.核心功能一:若QQ启动了,则双击快捷方式直接打开好友聊天界面:核心功能二:若QQ未 ...
- 教你创建qq好友桌面快捷方式
对于经常使用QQ聊天的朋友来说,在众多好友中搜寻自己常聊的密友虽然不是什么难事,但是我们可以使用更加简便的快捷方式来好友放在桌面上,当需要和他们聊天的时候,只要双击桌面上的好友图标就可以快速打开聊天窗 ...
- Linux没有界面怎么用QQ,QQ for Linux怎么建立桌面快捷方式?
右键单击桌面的空白处,在弹出的对话框中选"新建-应用程序链接".再在弹出的窗口中点"执行",在命令栏中点后面的浏览键,找到QQ for Linux的程序.再点& ...
- QQ桌面快捷方式后面的东西原来可以这么多
QQ桌面快捷方式后面的东西 今天偶然发现,QQ好友可以创建桌面快捷方式,这样一点击桌面相应的快捷方式就可以弹出自己经常聊天的好 友,如果没有登陆QQ会自动登陆并且打开,这也说明了 QQ好强大啊,膜拜之 ...
- ubuntu16.04设置应用程序桌面快捷方式(QQ为例)
上一篇博客我们讲eclipse的时候说到了eclipse桌面图标的创建,那么其他程序的图标呢?这里我们来谈一谈ubuntu下程序桌面快捷方式的创建. 以QQ为例 1.ubuntu界面左边菜单栏第一个图 ...
- android string 转成json对象_Android开发:生成桌面快捷方式是这样做的
关于生成桌面快捷方式,Android提供了原生的api方法.下边就介绍一下兼容8.0的具体做法. 一.首先当然是关于快捷方式的权限了. 我们需要在AndroidManifest文件中添加一下权限: 二 ...
- 生成android_Android开发:生成桌面快捷方式是这样做的
关于生成桌面快捷方式,Android提供了原生的api方法.下边就介绍一下兼容8.0的具体做法. 一.首先当然是关于快捷方式的权限了. 我们需要在AndroidManifest文件中添加一下权限: 二 ...
- C#项目打包后安装的桌面快捷方式图标怎么设置成自己想要的图标
#项目打包后安装的桌面快捷方式图标怎么设置成自己想要的图标 2012-08-25 09:11匿名 | 浏览 3286 次 C#编程 C#项目用vs2005自带的工具打包后安装的桌面快捷方式图标怎么设置 ...
- 解决《新编全医药学大词典》开机启动及桌面快捷方式的问题
<新编全医药学大词典>是一个不错的工具,可是在使用该工具的时候,经常碰到这样的烦心事:只要运行Medic.exe主程序, 就会在桌面上产生一个快捷方式:另外,还将自己设为开机启动.以致有的 ...
- autojs之桌面快捷方式
使用场景 autojs创建桌面快捷方式, 可配合intent使用 效果展示 原理 shortcutManager.requestPinShortcut 安卓官方文档 https://developer ...
最新文章
- 遥望星空FTP文件同步工具(附源码)1.0 发布
- Java多线程系列(十一):ReentrantReadWriteLock的实现原理与锁获取详解
- Office文档在线预览/在线编辑解决方案 - 毕升OfficeAPI说明
- 如何区分localhost、127.0.0.1和0.0.0.0等ip地址
- 使用Python模拟蒙蒂霍尔悖论游戏
- wifi管家android,WiFi管家—轻松连上好wifi
- Centos系统调优
- [原创]常见系统测试类型总结
- [PYTHON] 核心编程笔记(11.Python函数和函数式编程)
- linux下桌面编程软件,慧编程桌面端下载|慧编程桌面版 V1.2.0 Linux版 下载_当下软件园_软件下载...
- centos中使用goaccess分析nginx日志,goaccess分析多个nginx日志
- 小米6一键刷入Trwp,小米6刷机包,小米6刷Xposd,手机刷机。
- Netlogo仿真初步学习总结
- 互联网消费金融---互联网金融原理与实务【郭勤贵......等人著】的学习
- 家庭智能 HomeAssistant 四大组件的安装
- 系统服务器如何修复,服务器操作系统修复
- java毕设项目公立医院绩效考核系统(附源码)
- 运营精益创业组织的柔术
- 卷帘相机原理和卷帘门补偿(其中循环的理解)
- 灵魂拷问!原生Android开发的路该怎么走?内含福利
热门文章
- 7-110 自动售货机 (30 分)
- yii2 提供接口给java_Yii2 使用 RESTful 写API接口 实例
- oracle数据库恢复aul_Oracle数据库救命恢复工具:gDUL3.0
- ValueError: Shapes () and (1, 1) are incompatible
- pyqtSignal()
- 30分钟学会用scikit-learn的基本回归方法(线性、决策树、SVM、KNN)和集成方法(随机森林,Adaboost和GBRT)
- Python基于迁移学习的手势识别实战【图像多分类任务】【实测准确度超过99.5%】
- python基于base64模块实现图像数据编码处理、解码还原实践【解决解码数据损失问题】
- python中jieba分词快速入门
- 2021-06-26数组详解