shellexecuteinfo
时间: 2023-04-28 19:03:14 浏览: 63
ShellExecuteInfo是一个Windows API结构体,用于在操作系统中执行一个外部程序或打开一个文件。它包含了要执行的程序或文件的路径、命令行参数、工作目录、窗口状态等信息。使用ShellExecuteInfo可以方便地实现在程序中打开其他程序或文件的功能。
相关问题
用MFC代码写一个使用默认程序打开已知pdf路径的函数
### 回答1:
答案:可以使用以下MFC代码来实现: SHELLEXECUTEINFO sei;
ZeroMemory(&sei, sizeof(sei));
sei.cbSize = sizeof(sei);
sei.fMask = SEE_MASK_FLAG_DDEWAIT|SEE_MASK_FLAG_NO_UI;
sei.lpVerb = _T("open");
sei.lpFile = <你的PDF路径>;
sei.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&sei);
### 回答2:
使用MFC编写一个函数来打开指定的PDF文件路径并使用默认程序打开,可以按照以下步骤进行实现:
1. 首先,需要在 MFC 应用程序的源文件中添加一个函数,例如OpenPDFFile。
2. 在OpenPDFFile函数中,创建一个CFile 类型的对象,以便于操作文件。例如:CFile file;
3. 使用文件对象的成员函数Open来打开指定的PDF文件路径。例如:file.Open(_T("C:\\path\\to\\file.pdf"), CFile::modeRead);
4. 检查文件是否成功打开,可以使用文件对象的成员函数GetLength来获取文件大小,判断文件大小是否为0。例如:if (file.GetLength() > 0)
5. 如果文件打开成功并且文件大小不为0,则创建一个ShellExecuteEx 结构体,以便于执行文件的默认程序。例如:SHELLEXECUTEINFO shellExecuteInfo;
shellExecuteInfo.cbSize = sizeof(SHELLEXECUTEINFO);
shellExecuteInfo.fMask = SEE_MASK_NOASYNC | SEE_MASK_NOCLOSEPROCESS;
shellExecuteInfo.lpVerb = _T("open");
shellExecuteInfo.lpFile = _T("C:\\path\\to\\file.pdf");
shellExecuteInfo.lpClass = NULL;
shellExecuteInfo.nShow = SW_SHOWNORMAL;
6. 使用ShellExecuteEx函数来执行,默认程序将打开指定的PDF文件。例如:ShellExecuteEx(&shellExecuteInfo);
7. 最后,关闭文件对象。例如:file.Close();
以下是一个完整的示例代码:
void OpenPDFFile()
{
CFile file;
if (file.Open(_T("C:\\path\\to\\file.pdf"), CFile::modeRead))
{
if (file.GetLength() > 0)
{
SHELLEXECUTEINFO shellExecuteInfo;
shellExecuteInfo.cbSize = sizeof(SHELLEXECUTEINFO);
shellExecuteInfo.fMask = SEE_MASK_NOASYNC | SEE_MASK_NOCLOSEPROCESS;
shellExecuteInfo.lpVerb = _T("open");
shellExecuteInfo.lpFile = _T("C:\\path\\to\\file.pdf");
shellExecuteInfo.lpClass = NULL;
shellExecuteInfo.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&shellExecuteInfo);
}
file.Close();
}
}
请注意替换路径 "C:\\path\\to\\file.pdf" 为您想要打开的PDF文件的实际路径。
### 回答3:
可以使用MFC中的ShellExecute函数来实现使用默认程序打开已知pdf路径的功能。具体实现如下:
```cpp
#include <afxshell.h>
// 使用默认程序打开指定路径的PDF文件
void OpenPDFWithDefaultProgram(LPCTSTR pdfPath)
{
// 调用ShellExecute函数打开PDF文件
ShellExecute(NULL, _T("open"), pdfPath, NULL, NULL, SW_SHOWNORMAL);
}
```
上述代码中,`OpenPDFWithDefaultProgram`函数接受一个LPCTSTR类型的参数`pdfPath`,即PDF文件的路径。函数内部使用`ShellExecute`函数将指定的PDF文件路径传递给系统默认的程序打开。
使用时,只需调用`OpenPDFWithDefaultProgram`函数并传入需要打开的PDF文件路径即可实现使用默认程序打开指定路径的PDF文件。
需要注意的是,使用MFC编写程序时,需要添加相应的头文件并链接相应的库文件,例如使用`ShellExecute`函数需要添加afxshell.h头文件,同时需要在项目设置中链接shell32.lib库文件。
api 打开文件属性窗口
要使用API来打开文件属性窗口,我们可以使用ShellExecuteEx函数。ShellExecuteEx是一个Windows API函数,用于执行外部应用程序或文件。
首先,需要包含Windows.h头文件以访问ShellExecuteEx函数。然后创建一个SHELLEXECUTEINFO结构,并将其成员初始化。其中,lpFile成员指定要打开的文件的路径,例如:"C:\path\to\file.txt"。
接下来,设置SHELLEXECUTEINFO结构的其他成员。我们将设置lpVerb成员为"properties",这表示我们要打开文件的属性窗口。lpParameters和lpDirectory成员可以设置为空字符串,表示没有附加参数和工作目录。nShow属性可以设置为SW_SHOW,默认为打开窗口。
最后,调用ShellExecuteEx函数,将SHELLEXECUTEINFO结构作为参数传递。如果函数成功执行,它将返回非零值。
下面是一个示例代码:
```c
#include <Windows.h>
int main() {
SHELLEXECUTEINFO info = { sizeof(SHELLEXECUTEINFO) };
info.lpFile = L"C:\\path\\to\\file.txt";
info.lpVerb = L"properties";
info.lpParameters = L"";
info.lpDirectory = L"";
info.nShow = SW_SHOW;
if (ShellExecuteEx(&info))
{
// 文件属性窗口已成功打开
}
else
{
// 打开文件属性窗口失败
}
return 0;
}
```
这样就可以使用API打开文件属性窗口了。记住,如果成功执行ShellExecuteEx函数,文件属性窗口将在系统中打开,显示所指定文件的属性和详细信息。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)