Windows API 第二篇 SHGetSpecialFolderPath
BOOL SHGetSpecialFolderPath( HWND hwndOwner,
LPTSTR lpszPath,
int nFolder,
BOOL fCreate
);
参数解释:
hwndOwner:Handle to the owner window the client should specify if it displays a dialog box or message box.
lpszPath: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.
fCreate:Indicates if 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.
一个简单的test
建立控制台程序:
#include "stdafx.h"
#include <Windows.h>
#include <string>
#include <Shlobj.h> using namespace std;; int _tmain(int argc, _TCHAR* argv[])
{
WCHAR szPath[MAX_PATH + 1] = { 0 };
wstring strMsgW; BOOL bRet;
//严格一点,每个返回值要判断
bRet = SHGetSpecialFolderPath(NULL, szPath, CSIDL_PROGRAM_FILES, FALSE);
strMsgW.append(L"CSIDL_PROGRAM_FILES: ");
strMsgW.append(szPath);
strMsgW.append(L"\r\n"); bRet = SHGetSpecialFolderPath(NULL, szPath, CSIDL_PROGRAM_FILES_COMMON, FALSE);
strMsgW.append(L"CSIDL_PROGRAM_FILES_COMMON: ");
strMsgW.append(szPath);
strMsgW.append(L"\r\n"); bRet = SHGetSpecialFolderPath(NULL, szPath, CSIDL_SYSTEM, FALSE);
strMsgW.append(L"CSIDL_SYSTEM: ");
strMsgW.append(szPath);
strMsgW.append(L"\r\n"); bRet = SHGetSpecialFolderPath(NULL, szPath, CSIDL_STARTUP , FALSE);
strMsgW.append(L"CSIDL_STARTUP: ");
strMsgW.append(szPath);
strMsgW.append(L"\r\n"); bRet = SHGetSpecialFolderPath(NULL, szPath, CSIDL_APPDATA , FALSE);
strMsgW.append(L"CSIDL_APPDATA: ");
strMsgW.append(szPath);
strMsgW.append(L"\r\n"); MessageBox(NULL, strMsgW.c_str(), L"SHGetSpecialFolderPath Test", MB_OK); return 0;
} 运行结果:

Windows API 第二篇 SHGetSpecialFolderPath的更多相关文章
- Windows API 25篇 TerminateProcess
导语:结束一个进程的方法通常有:exit(), ExitProcess, TerminateProcess. 通常一个进程在正常情况下结束的话,系统会调用 ExitProcess函数结束进程,但有时候 ...
- windows API 第九篇 _tcslwr _strlwr _wcslwr _mbslwr
将字符串转化为小写Convert a string to lowercase. 函数原型: char *_strlwr( char *string ); //#include ...
- Windows API 23 篇 WTSQuerySessionInformation
函数原型:BOOLWINAPIWTSQuerySessionInformationW( IN ...
- [C#] 软硬结合第二篇——酷我音乐盒的逆天玩法
1.灵感来源: LZ是纯宅男,一天从早上8:00起一直要呆在电脑旁到晚上12:00左右吧~平时也没人来闲聊几句,刷空间暑假也没啥动态,听音乐吧...~有些确实不好听,于是就不得不打断手头的工作去点击下 ...
- C#调用windows API的一些方法
使用C#调用windows API(从其它地方总结来的,以备查询) C#调用windows API也可以叫做C#如何直接调用非托管代码,通常有2种方法: 1. 直接调用从 DLL 导出的函数. 2. ...
- [转]Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多 ...
- 【OpenGL】第二篇 Hello OpenGL
---------------------------------------------------------------------------------------------------- ...
- Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇——开发工具库篇,**主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容 ...
- 第二篇 SQL Server安全验证
本篇文章是SQL Server安全系列的第二篇,详细内容请参考原文. 验证是检验主体的过程.主体需要唯一标识,那样SQL Server可以确定主体有哪些权限.正确的验证是提供安全访问数据库对象的必要的 ...
随机推荐
- drupal7 代码生成用户,并自动登录
直接上代码 1. 生成用户(注册) $edit = [ "name" => "name", "pass" => "pa ...
- You can tell a lot about somebody, looking him in the eye.
You can tell a lot about somebody, looking him in the eye.注视着别人的眼睛,你能读出很多故事.
- JavaScript 对象与函数
对象参考手册 Array Boolean Date Math Number String RegExp Global 前言 在js中什么都是对象(包括函数). 函数是用来实现具体功能的代码,用一种方式 ...
- 视频云肖长杰:视频AI科技助力短视频生态
人工智能技术是当今炙手可热的技术领域,它在制造.家居.零售.交通.安防等行业的应用已经是大势所趋.在本月云栖Techday音视频技术沙龙中,阿里云视频云产品专家肖长杰为我们分享了一些AI技术在视频中应 ...
- (一)通过JAVA连接SAP (sapjco3.jar在Windows和MacOS上的配置)
(一)通过JAVA连接SAP调用接口 (sapjco3.jar在Windows和MacOS上的配置) 一.sapjoc3.jar获取 由于sap官网提供的链接需要合作公司提供账号密码,如果商用请索要正 ...
- 左神算法基础班5_1设计RandomPool结构
Problem: 设计RandomPool结构 [题目] 设计一种结构,在该结构中有如下三个功能: insert(key):将某个key加入到该结构,做到不重复加入. delete(key):将原本在 ...
- matlab-使用技巧
sel(1:100); 1 2 3 4 5 ...100 X(sel, :); 1.......2.......3.......4.......5..........100...... nn_para ...
- LINQ用法总结
之前一直用sql和拉姆达表达式,一直感觉linq不好用.用熟练了感觉期功能好强大,查询性能例外考究.这里讲讲基本用法. 内联查询: var list2 = (from a in db.Role whe ...
- [转]Git 常用命令详解
史上最浅显易懂的Git教程 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ ht ...
- Python xlwt模块
Examples Generating Excel Documents Using Python’s xlwt Here are some simple examples using Python’s ...