VC++得到系统特殊文件夹路径

掌握VC++:获取系统路径的源码实现 Windows系统目录是操作系统的重要组成部分,它包含了系统运行所必需的核心文件和设置。这些目录通常存储在系统盘(通常是C盘)的根目录下,如Windows、System32和Program Files等。系统目录中的文件对于系统的启动、运行和稳定性至关重要,例如,Windows目录存储了系统核心文件和用户界面资源,而System32目录则包含了大部分的系统驱动和动态链接库(DLL)文件。系统目录的作用不仅限于存放系统文件,它们还通过预设的权限和访问控制列表(ACL)来确保系统安全。 阅读详情

地址:http://blog.youkuaiyun.com/morewindows/article/details/8745532转载请标明出处,谢谢。

欢迎关注微博:http://weibo.com/MoreWindows      

 

       VC++ 得到系统特殊文件夹路径

       对Windows程序来说,得到系统特殊文件夹路径是个非常实用的功能。比如要执行一些系统程序像cmd.exe、mspaint.exe、ping.exe时最好加上绝对路径(通常为C:\WINDOWS\system32),否则有可能会出现找不到指定文件的错误。还有要创建桌面快捷方式、启动菜单快捷方式等等也须要使用系统特殊文件夹路径。

       在批处理中,要获取系统特殊文件夹路径非常简单。如%SystemDrive%就能得到系统盘符。在VC++中,主要通过SHGetSpecialFolderPath函数来获取系统特殊文件夹路径。下面来看看这个函数的介绍:

 

一.SHGetSpecialFolderPath

函数功能:Retrieves the path of a special folder

函数原型:

BOOLSHGetSpecialFolderPath(

       HWNDhwndOwner,

       LPTSTRlpszPath,

       int nFolder,

       BOOLfCreate

);

参数说明:

第一个参数hwndOwner

A handle to the owner window that the client should specify if it displays a dialog box or message box.

第二个参数lpszPath

A pointer to a null-terminated string that receives the drive and path of the specified folder. This buffer must be at least MAX_PATH characters in size.

第三个参数nFolder

A CSIDL that identifies the folder of interest. If a virtual folder is specified, this function will fail.

详细可见http://msdn.microsoft.com/zh-cn/library/windows/desktop/bb762494(v=vs.85).aspx

第四个参数fCreate

Indicates whether the folder should be created if it does not already exist. If this value is nonzero, the folder will be created. If this value is zero, the folder will not be created.

 

二.代码示例

给出获取部分系统特殊文件夹路径的示例代码:

// VC++得到系统特殊文件夹路径
//http://blog.youkuaiyun.com/morewindows/article/details/8745532
//By MoreWindows( http://blog.youkuaiyun.com/MoreWindows )
#include <windows.h>
#include <shlobj.h>
#include <stdio.h>
int main()
{	
	printf("    VC++得到系统特殊文件夹路径  \n");
	printf(" - http://blog.youkuaiyun.com/morewindows/article/details/8745532 -\n");
	printf(" -- By MoreWindows( http://blog.youkuaiyun.com/MoreWindows ) --\n\n"); 

	const int MAXN = 9;
	int nArrCSIDL[] = {
		CSIDL_WINDOWS,
		CSIDL_SYSTEM,
		CSIDL_PROGRAM_FILES,
		CSIDL_DESKTOP,
		CSIDL_FAVORITES,
		CSIDL_FONTS,
		CSIDL_COOKIES,
		CSIDL_HISTORY,
		CSIDL_APPDATA,
	};
	char *pstrCSIDL[] = {
		"CSIDL_WINDOWS",
		"CSIDL_SYSTEM",
		"CSIDL_PROGRAM_FILES",
		"CSIDL_DESKTOP",
		"CSIDL_FAVORITES",
		"CSIDL_FONTS",
		"CSIDL_COOKIES",
		"CSIDL_HISTORY",
		"CSIDL_APPDATA",
	};
	int i;
	for (i = 0; i < MAXN; i++)
	{
		char szBuffer[MAX_PATH];
		SHGetSpecialFolderPath(NULL, szBuffer, nArrCSIDL[i], FALSE);
		printf("%s\n\t%s\n", pstrCSIDL[i], szBuffer);
	}
	getchar();
	return 0;
}

 

三.运行结果

运行结果如下图所示(图片不能打开?请访问)

 

 

地址:http://blog.youkuaiyun.com/morewindows/article/details/8745532转载请标明出处,谢谢。

欢迎关注微博:http://weibo.com/MoreWindows      


 

获取系统特殊路径SHGetSpecialFolderPath函数.docx 立即下载

相关推荐

VC获取操作系统特殊路径的方法

BOOL SHGetSpecialFolderPath ( HWND hwndOwner, LPTSTR lpszPath, int nFolder, BOOL fCreate);   hwndOwner :用GetDesktopWindow API取一个窗口句柄。   lpszPath:返回的路径   nFolder:标识代号   fCreate:true :如果文件夹不存在则创建,false:不创建   lpszPath和nFolder对应关系: nFolder lpszPath 0 C:/Documents and Settings/当前用户/桌

SHGetSpecialFolderPath函数简介

1、简介 BOOL SHGetSpecialFolderPath(      HWND hwndOwner,     LPTSTR lpszPath,     int nFolder,     BOOL fCreate ); 功能:       获取指定的系统路径。 参数:     HWND hwndOwner,  窗口所有者的句柄。可用GetDesktopWindow API

taozpwater的专栏 1万+

Halcon实战:5种边缘检测算子对比(Sobel、Roberts、Prewitt、Kirsch、Canny)

本文深入对比了Halcon中Sobel、Roberts、Prewitt、Kirsch和Canny五大边缘检测算子的实战表现与核心差异。通过工业图像实例与代码解析,提供了基于噪声水平、边缘连续性及实时性要求的场景化选型指南,帮助工程师精准选择最适合的算子以优化视觉检测流程。

weixin_29266007的博客 390

maven本地仓库配置

1.首先解压安装maven安装包 2.自己选择一个位置创建.m2文件夹,然后在.m2文件夹下创建repository文件夹 3.复制maven解压路径下的conf下的settings.xml文件到.m2文件夹下 4.修改conf和.m2下的两个settings.xml文件的本地仓库指向repository文件夹 5.若想改变下载文件首选仓库的位置,就在conf下的settings.xml中添加对应...

qq_43536701的博客 262

Spring Boot应用Docker化实战:从Dockerfile编写到镜像推送完整流程

本文详细介绍了将Spring Boot应用Docker化的完整实战流程。从环境准备、项目审视,到编写高效且安全的Dockerfile,重点讲解了多阶段构建、镜像层优化、Spring Boot分层JAR等核心技巧,并涵盖了镜像构建、验证、调试以及最终推送至仓库并集成CI/CD的最佳实践,帮助开发者构建生产级Docker镜像。

butter的博客 1023

新手必看:如何用T265和ROS实现无人机室内精准定位(附PX4参数配置)

本文详细介绍了如何使用Intel Realsense T265和ROS实现无人机室内精准定位,包括硬件准备、ROS数据流架构设计、PX4参数配置及系统验证。特别针对视觉SLAM技术在室内环境中的应用,提供了从零搭建到进阶优化的全流程解析,适合无人机开发新手快速上手。

weixin_30642561的博客 404

SHGetSpecialFolderPath

转自:百度百科 http://baike.baidu.com/view/3449405.htm SHGetSpecialFolderPath 目录 简介 编辑本段简介 该api用来获取指定的系统路径 API声明: function ulongSHGetSpecialFolderPath(long hwndOwne...

weixin_30252155的博客 475

Python批量注册脚本开发详细

开发一个Python批量注册脚本需要考虑多个方面,包括目标网站的注册流程、验证码处理、请求发送、数据存储等。以下是一个详细的开发流程和代码示例,用于实现基本的批量注册功能。

nsp202505的博客 3343

SHGetSpecialFolderPath函数

SHGetSpecialFolderPath 函数0x01.原型和参数BOOL SHGetSpecialFolderPath( HWND hwndOwner, _Out_ LPTSTR lpszPath, _In_ int csidl, _In_ BOOL fCreate ); 功能:用来获取指定的系统路径Parameters HWND hwndOwne

胸怀世界 1309

数字后端:版图基础seal ring

seal ring结构是为了防止划片或封装对芯片造成破坏,从而在芯片与划片道(scribe line)之间添加的一圈保护环

m0_61544122的博客 1万+

USB驱动(URB)

本文介绍了Linux内核中USB驱动开发的核心概念URB(USB Request Block)。URB是主机与USB设备间传输数据的抽象结构体,包含目标设备、端点信息、数据缓冲区等关键字段。文章详细解析了URB的生命周期(分配、填充、提交、回调、释放)、四种传输类型(控制、批量、中断、等时)及其应用场景,并提供了鼠标设备的中断传输示例代码。最后强调了URB使用注意事项,包括DMA缓冲区分配、错误处理和资源释放等。URB作为USB驱动与内核通信的桥梁,是构建稳定USB驱动程序的基础。

m0_49476241的博客 915

VC++ 得到系统特殊文件夹路径

转自:点击打开链接        对Windows程序来说,得到系统特殊文件夹路径是个非常实用的功能。比如要执行一些系统程序像cmd.exe、mspaint.exe、ping.exe时最好加上绝对路径(通常为C:\WINDOWS\system32),否则有可能会出现找不到指定文件的错误。还有要创建桌面快捷方式、启动菜单快捷方式等等也须要使用系统特殊文件夹路径。        在批处理中

MessCodes 1061

基于STM32L4XX的环境光传感器(LTR-303ALS-01)应用程序设计

/ 状态寄存器的位[2:0]表示数据状态,例如位2为1表示新数据就绪[citation:6]#define LTR303_REG_DATA_CH0_LOW 0x8D // CH0数据低字节。#define LTR303_REG_DATA_CH0_HIGH 0x8E // CH0数据高字节。#define LTR303_REG_DATA_CH1_LOW 0x8F // CH1数据低字节。#define LTR303_REG_DATA_CH1_HIGH 0x90 // CH1数据高字节。

myron6688的博客 404

VC++得到系统特殊文件夹路径(转)

VC++ 得到系统特殊文件夹路径       对Windows程序来说,得到系统特殊文件夹路径是个非常实用的功能。比如要执行一些系统程序像cmd.exe、mspaint.exe、ping.exe时最好加上绝对路径(通常为C:\WINDOWS\system32),否则有可能会出现找不到指定文件的错误。还有要创建桌面快捷方式、启动菜单快捷方式等等也须要使用系统特殊文件夹路径。       在批处理中,

panzhijiepanzhiyang的专栏 447

【AUTOSAR-DEM】-2.1-APP SWC设置UDS/OBD DTC检出和恢复

点击返回「《Autosar_BSW高阶配置》总目录」 案例背景(共6页精讲): DEM模块提供两种不同类型的Event: • BSW-related events:DEM_EVENT_KIND_BSW(通过C-API报告 - Dem_SetEventStatus) • SW-C-related events:DEM_EVENT_KIND_SWC(通过RTE operation - SetEventStatus) 下面我们讲讲在APP SWC中设置BusOff(总线关闭) DTC故障成立/恢复(其它

「汽车电子助手」的博客 3940

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VC++ 获取系统特殊文件夹的路径 桌面等

VC 获取系统特殊文件夹的路径如:系统目录,桌面等 qtom: TCHAR MyDir[_MAX_PATH];  SHGetSpecialFolderPath(this->GetSafeHwnd(),MyDir,CSIDL_APPDATA,0); AfxMessageBox(MyDir); 其中第三个参数CSIDL_APPDATA可以为以下的值: CSIDL_BITBUC

bingkehanfeng的专栏 2968

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

取系统特殊文件夹路径代码

// VC++得到系统特殊文件夹路径 //http://blog.youkuaiyun.com/morewindows/article/details/8745532 //By MoreWindows( http://blog.youkuaiyun.com/MoreWindows ) #include <windows.h> #include <shlobj.h> #include <stdio.h> int main()

river 317

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C++获取windows特殊文件夹路径

// VC++得到系统特殊文件夹路径 #include #include #include int main() { printf(" VC++获取windows特殊文件夹路径 \n"); //const int MAXN = 9; const int MAXN = 6; int nArrCSIDL[] = { //CSIDL_WINDOWS, //CSIDL_SYS

人生代码,代码人生。。。 2492
上一篇: 【白话经典算法系列之十四】腾讯2012年实习生笔试加分题
下一篇: 以字节为单位显示变量的内存存储数据
MoreWindows
MoreWindows 《白话经典算法》、《秒杀多线程》作者 《白话经典算法》、《秒杀多线程》作者 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄15年 2万+粉丝 157原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值