用ShellExecuteEx打开文件,文件夹_shellexecuteex 打开文件夹-程序员宅基地

技术标签: 文档  WINCE  c  null  mobile  windows  email  

 用ShellExecuteEx打开文件,文件夹

先来看看“深入浅出ShellExecute”

 

  Q: 如何打开一个应用程序?

ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );
ShellExecute(this->m_hWnd,"open","notepad.exe",
"c://MyLog.log","",SW_SHOW );
正如您所看到的,我并没有传递程序的完整路径。
Q: 如何打开一个同系统程序相关连的文档?
ShellExecute(this->m_hWnd,"open",
"c://abc.txt","","",SW_SHOW );
Q: 如何打开一个网页?
ShellExecute(this->m_hWnd,"open",
"http://www.google.com","","", SW_SHOW );
Q: 如何激活相关程序,发送EMAIL?
ShellExecute(this->m_hWnd,"open",
"mailto:[email protected]","","", SW_SHOW );
Q: 如何用系统打印机打印文档?
ShellExecute(this->m_hWnd,"print",
"c://abc.txt","","", SW_HIDE);
Q: 如何用系统查找功能来查找指定文件?
ShellExecute(m_hWnd,"find","d://nish",
NULL,NULL,SW_SHOW);
Q: 如何启动一个程序,直到它运行结束?
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = "c://MyProgram.exe";
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
或:
PROCESS_INFORMATION ProcessInfo; 
STARTUPINFO StartupInfo; //This is an [in] parameter
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field
if(CreateProcess("c://winnt//notepad.exe", NULL,
NULL,NULL,FALSE,0,NULL,
NULL,&StartupInfo,&ProcessInfo))
{
WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
}
else
{
MessageBox("The process could not be started...");
}
Q: 如何显示文件或文件夹的属性?
SHELLEXECUTEINFO ShExecInfo ={0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = "properties";
ShExecInfo.lpFile = "c://"; //can be a file as well
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
在windows mobile中,要打开一个文件夹,下面一种方法可以:
  
  
   
  1.     SHELLEXECUTEINFO ShExecInfo;
  2.     memset( &ShExecInfo, 0,  sizeof ( SHELLEXECUTEINFO ) );
  3.     ShExecInfo.cbSize =  sizeof (SHELLEXECUTEINFO);
  4.     ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
  5.     ShExecInfo.hwnd = m_hWnd;
  6.     ShExecInfo.lpVerb = L "Open" ;
  7.     ShExecInfo.lpFile = L "fexplore.exe" ;        
  8.     ShExecInfo.lpParameters = L "//Program Files//photo//" ;  
  9.     ShExecInfo.lpDirectory = NULL;
  10.     ShExecInfo.nShow = SW_SHOWNORMAL;
  11.     ShExecInfo.hInstApp = NULL; 
  12.     ShellExecuteEx(&ShExecInfo);

 

打开一个文件

 

  1.     SHELLEXECUTEINFO ShExecInfo;
  2.     memset( &ShExecInfo, 0,  sizeof ( SHELLEXECUTEINFO ) );
  3.     ShExecInfo.cbSize =  sizeof (SHELLEXECUTEINFO);
  4.     ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
  5.     ShExecInfo.hwnd = m_hWnd;
  6.     ShExecInfo.lpVerb = L "Open" ;
  7.     ShExecInfo.lpFile= L "//ProgramFiles//Empty//Empty.exe" ;      
  8.     ShExecInfo.lpParameters = NULL; 
  9.     ShExecInfo.lpDirectory = NULL;
  10.     ShExecInfo.nShow = SW_SHOWNORMAL;
  11.     ShExecInfo.hInstApp = NULL; 
  12.     ShellExecuteEx(&ShExecInfo);
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/abin_gha/article/details/5825017

智能推荐

TOEFL写作——独立写作段落拓展-程序员宅基地

文章浏览阅读156次。功能 常用单词、短语 表示列举 For example, / For instance, / Take ... as an example. We might take .. for example / as an example. A case in point is (that) ... 分析 unsurprisingly in this case...

值得学习的C语言开源项目-程序员宅基地

文章浏览阅读170次。转载自https://blog.csdn.net/a493203176/article/details/79195454值得学习的C语言开源项目-1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用...

Sqlite3 数据库基本操作_-lsqlite3-程序员宅基地

文章浏览阅读1w次,点赞19次,收藏173次。Sqlite3 数据库基本操作1、sqlite3命令**2、sqlite3编程接口:**3、事务:一个或多个更改数据库的扩展4、like和glob子句:5、limit 和 offset6、having:7、distinct8、约束:9、内连接10、别名11、触发器12. 索引1、sqlite3命令1.打开数据库: sqlite3 <*.db>2.系统命令: 以’.'开头 .quit : 退出sqlite3 .help : 查看帮助文档 .database: 显示当前打开的数据库_-lsqlite3

MapReduce当中Partitioner的用法_简述mapreduce中,partitioner 如何使用-程序员宅基地

文章浏览阅读277次。Partitioner的用法:防盗版实名手机尾号:73203。如果现在我们的需求变成,输出放在两个文件当中,按照关键字的首个字母的26个字母来分,头13个放在一个文件当中,以此类推, 这时我们就要用到partition的技术。package com;import java.io.IOException;import java.util.StringTokenizer;import org..._简述mapreduce中,partitioner 如何使用

Google Earth Engine(GEE)对指定地点Sentinel-2 Level1C数据进行NDVI指数的计算_gee计算区域栅格尺度ndvi 哨兵-程序员宅基地

文章浏览阅读4k次,点赞5次,收藏55次。Google Earth Engine (GEE) 是由谷歌公司开发的众多应用之一。借助谷歌公司超强的服务器运算能力以及与NASA的合作关系,GEE平台将Landsat/Sentinel等可以公开获取的遥感图像数据存储在谷歌的磁盘阵列中,使得GEE用户可以方便的提取、调用和分析海量的遥感大数据资源。本文基于GEE平台,实现对指定地点Sentinel-2 Level1C数据进行NDVI指数的计算,示例地点为湖南省长沙市。代码如下:(JS)var cs = China.filterBound._gee计算区域栅格尺度ndvi 哨兵

JQUERY自定义下拉单选加可输入的SELECT_jquery selectpage 自定义输入-程序员宅基地

文章浏览阅读1.2k次。本文将介绍一个使用JQUERY实现的一个自定义下拉单选框ton_jquery selectpage 自定义输入

随便推点

微信小程序 - 实现简单登录和个人信息页面_小程序最新个人信息展示-程序员宅基地

文章浏览阅读3.5w次,点赞76次,收藏661次。接上节简单介绍完wxml,这节实际运用小程序的wxml来实现一套简单登录和个人信息展示。登录页面创建好项目后,在pages下新建一个login目录,右键login文件夹,选择新建page,创建login的page,如下图:创建后的page如下图:创建好login page后,项目会自动在app.js中添加login的page路劲,新增的page会顺序加在后边,小程序打开默认加载第一个路径,我们将login的路径移到最前边,这样每次编译后,初始化页面就为登录的页面了,如下..._小程序最新个人信息展示

使用Mathematica绘制笛卡尔叶形线图形(Folium of Descartes)_mathematica向量做笛卡尔-程序员宅基地

文章浏览阅读5.5k次。“著名科学家笛卡儿,根据他所研究的一簇花瓣和叶形曲线特征,列出了x^3+y^3-3axy=0的方程式,这就是现代数学中有名的“笛卡儿叶线”(或者叫“叶形线”),数学家还为它取了一个诗意的名字——茉莉花瓣曲线。”这个看似简单的图形在Mathematica却不是那么好画,试了半天没成功,参考了这篇文章才画出来:http://community.wolfram.com/groups/-/m/t/1044..._mathematica向量做笛卡尔

Execution failed for task ':app:mergeDebugResources'-程序员宅基地

文章浏览阅读2.2w次。(Error:Execution failed for task ':app:mergeDebugResources'.> Some file crunching failed, see logs for details)_execution failed for task ':app:mergedebugresources'.

JSONPath的基础使用_jsonpath.eval-程序员宅基地

文章浏览阅读6k次,点赞2次,收藏14次。JSONPath可以快速提取json固定位置、范围的数据,而不需要创建单独的JSONObject对象。但如果每次处理的json数据格式会改变,则该方式不太适用。_jsonpath.eval

asp.net页面中Menu控件下拉菜单被frame挡住和iframe自适应高度的解决办法-程序员宅基地

文章浏览阅读155次。当你在做一个仿windows程序的顶部菜单框架的时候,在asp.net中你可能会使用两个frame,一个frame在上面用来放菜单一个frame在下面用来方菜单点击后打开的页面.页面实现很简单,单运行的时候你就发现放菜单的那个frame将菜单的下列菜单在挡住根本伸不到下面的frame中.解决被挡住的问题是不能使用frame,做法是在一个单独的asp.net页面中放一个menu 和一个if..._asp:menu超出iframe如何解决

服务发现之Consul介绍、部署和使用_consul安装需要数据库吗-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏7次。为什么使用服务发现微服务的框架体系中,服务发现是不得不提的一个模块。我相信了解或者熟悉微服务的应该都知道它的重要性。这里简单的介绍一下。我们看下面的一幅图片:图中,客户端的一个接口,需要调用服务A-N。客户端必须要知道所有服务的网络位置的,以往的做法是配置是配置文件中,或者有些配置在数据库中。这里就带出几个问题:需要配置N个服务的网络位置,加大配置的复杂性服务的网络位置变化,都需要改变..._consul安装需要数据库吗

推荐文章

热门文章

相关标签