ShellExecute打印一个excel文档后会打开这个文档,我想通过进程来关闭这个文件.
用GetCurrentProcessId 获取的只是当前运行的程序的 ProcessId并不是excel的ProcessId.
请问要怎样得到这个excel的句柄
用GetCurrentProcessId 获取的只是当前运行的程序的 ProcessId并不是excel的ProcessId.
请问要怎样得到这个excel的句柄
解决方案 »
- 关于MFC 读取SQL数据库表默认值问题
- 已知文件的指针位置,如何计算该位置到文件结束的地方的字节数?
- ACE的"error LNK2019: unresolved external symbol"链接错误
- 网页里有alert弹出的对话框,如何用程序代码实现“点击”?
- 如何在clistctrl的一行中加入一个链接,像网页上的链接一样,点击后执行一段代码。
- 关于bcg中workspace中treectrl的问题(高手帮忙)
- 数据库里的记录为什么删不掉啊?说键行信息不足或不正确,更新影响到多行。
- 请问如何能够获得一个控件的句柄?
- 各位大侠,快来帮帮我吧!在线等待!
- 关于数据库索引的问题,真的没人知道吗?!
- 在对多个类进行封装成DLL的时候,产生了这样的错误,为什么
- 还是关于字符编码的问题
ExecInfo.cbSize = sizeof(SHELLEXECUTEINFO) ;
ExecInfo.fMask = SEE_MASK_FLAG_NO_UI | SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_DDEWAIT | SEE_MASK_CONNECTNETDRV ;
ExecInfo.nShow = SW_HIDE;
ExecInfo.hwnd = NULL ;
ExecInfo.lpVerb = "open";
ExecInfo.lpFile = "D:\WSC.xls";
ExecInfo.lpParameters = NULL;
ExecInfo.lpDirectory = NULL;
ExecInfo.hProcess = NULL;
:: ShellExecuteEx(&ExecInfo); if(ExecInfo.hProcess)
{
TerminateProcess(ExecInfo.hProcess,1);
}为什么打开不了?
ExecInfo.cbSize = sizeof(SHELLEXECUTEINFO) ;
ExecInfo.fMask = SEE_MASK_FLAG_NO_UI | SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_DDEWAIT | SEE_MASK_CONNECTNETDRV ;
ExecInfo.nShow = SW_HIDE;
ExecInfo.hwnd = NULL ;
ExecInfo.lpVerb = "open";
ExecInfo.lpFile = ;
ExecInfo.lpParameters = NULL;
ExecInfo.lpDirectory = "";
ShellExecuteEx(&ExecInfo);
if(ExecInfo.hProcess != NULL)
{
TerminateProcess(ExecInfo.hProcess,1);
ExecInfo.hProcess = NULL;
} 各位帮看看这段代码有什么问题?可以打开文件但是结束不了进程,应该是句柄的问题.
fMask应该只能是那个吧..
其他的MSDN里都说是NULL啊
文件就不行?
不然你再换种方法,用GetForegroundWindow或者FindWindow找出窗口句柄,再GetWindowThreadProcessId获得进程句柄。
或者你在所有进程中找EXCEL.EXE。