windows桌面程序与服务程序通过公共文件目录交互

news/2024/7/5 5:35:02

        windows权限管理越来越严格,桌面应用和服务之间的交互就很成问题。服务通常以独立的服务身份运行,而且在用户登录之前就开始运行,显然不能去访问用户私人的数据,况且既然是服务,同时为多个不同的登录用户服务也是很常见的。

        用socket通讯当然是个办法,但是socket本身需要额外的权限,既然是本机操作,需要网络权限也不是很合理。

        比较合理的一种方式是通过公共文件。windows的用户目录下面有一个叫做“公用”的文件夹,里面的内容是所有用户都可以访问的,也包括服务用户。

        如何获取公共文件路径:

TCHAR szPath[MAX_PATH];
int dir=CSIDL_COMMON_DOCUMENTS;
if(S_OK!=SHGetFolderPath(NULL,
	dir|CSIDL_FLAG_CREATE,
	NULL,
	SHGFP_TYPE_CURRENT,
	szPath))
{
	return L"";//出错
}

        CSIDL_COMMON_DOCUMENTS宏表示公共目录,还有一些别的值,如CSIDL_APPDATA代表程序目录。很多时候我们瞎猜这些目录的位置,其实正确的做法是通过API函数SHGetFolderPath获取。

        通过文件交互唯一的问题是需要定时轮询。

(这里是结束)


http://lihuaxi.xjx100.cn/news/1605108.html

相关文章

mysql双主主键冲突

在MySQL中,当使用双主键(也称为复合主键)时,可能会遇到主键冲突的问题。主键冲突通常发生在以下情况: 插入冲突:当尝试插入一行数据时,该行的复合主键已经存在于表中时,就会发生主键…

记录宝塔面板申请ssl证书报错 Invalid version. The only valid version for X509Req is 0

问题 宝塔面板申请ssl证书报错 Invalid version. The only valid version for X509Req is 0。 原因是由于服务器端使用了不兼容的 OpenSSL 版本导致的,服务器端的X509Req 版本只支持 0,而宝塔这边默认的版本为2。 我的是之前可以申请ssl,过…

面试算法25:链表中的数字相加

题目 给定两个表示非负整数的单向链表,请问如何实现这两个整数的相加并且把它们的和仍然用单向链表表示?链表中的每个节点表示整数十进制的一位,并且头节点对应整数的最高位数而尾节点对应整数的个位数。例如,两个分别表示整数98…

RPA技术如何重塑制造业的未来

根据Statista的预测,2023年RPA技术的全球市场规模预计将达到100亿美元,制造业将在实现这一目标方面发挥重要作用。这个蓬勃发展的行业面临着对不同重复过程的更多依赖,因此选择了数字化转型,制造业中的RPA有助于实现自动化和优化核…

智安网络|边缘计算与分布式存储:数字化时代的新趋势

随着数字化时代的到来,数据的产生和存储需求呈现爆炸式增长,传统的集中式存储架构已经无法满足大规模数据存储和处理的需求。分布式存储系统应运而生,成为应对数据存储和处理挑战的解决方案。然而,技术的发展不会止步于此&#xf…

SpringbootWeb快速入门

1. 创建新项目,并勾选相关依赖 选中Spring Initializr,设置相关项 点击next选中spring web 点击create 2. 定义HelloController类,添加方法和注解 import org.springframework.web.bind.annotation.RequestMapping;: 这一行导入了Spring MVC…

QECon大会亮相产品,全栈测试平台推荐:RunnerGo

最近在gitee上看见一款获得GVP(最有价值开源项目)的测试平台RunnerGo,看他们官网介绍包含了接口测试、性能测试、自动化测试。知道他们有saas版可以试用,果断使用了一下,对其中场景管理和性能测试印象深刻,…

每日学习打卡Day1(2023-10-9)

算法: leetcode 16. 最接近的三数之和 文章阅读: 十年过去了,UI 框架还停滞在原地……DOM中的node节点属性详解DOM节点类型及其属性和方法Chrome 117 重大更新:Network 面板就能发起 Mock 请求 !!&#x…