MFC调用批处理文件(.bat)

通过MFC 对话框的点击按钮打开 服务控制面板

方法一:

system("window命令")

比如: system("services.msc") 打开服务控制面板

方法二:

通过ShellExecute()函数

 <span style="white-space:pre">	</span>#include <shellapi.h>
<span style="white-space:pre">	</span>ShellExecute函数原型及参数含义如下:
<span style="white-space:pre">	</span>ShellExecute(
<span style="white-space:pre">	</span> hWnd: HWND; //{指定父窗口句柄}
<span style="white-space:pre">	</span> Operation: PChar; //{指定动作, 譬如: open、runas、print、edit、explore、find[2] }
<span style="white-space:pre">	</span> FileName: PChar; //{指定要打开的文件或程序}
<span style="white-space:pre">	</span> Parameters: PChar; //{给要打开的程序指定参数; 如果打开的是文件这里应该是 nil}
<span style="white-space:pre">	</span> Directory: PChar; //{缺省目录}
<span style="white-space:pre">	</span> ShowCmd: Integer //{打开选项}
<span style="white-space:pre">	</span>): HINST;

比如:ShellExecute(NULL,NULL,_T("XXX.bat"),NULL,NULL,SW_SHOW);

因为window命令都是通过 cmd.exe来执行的 所以这两种方法 在打开服务控制面板前 cmd窗口会一闪而过,希望有哪位高手可以解决并留下解决的方法。

时间: 2024-11-13 11:11:13

MFC调用批处理文件(.bat)的相关文章

[SoapUI] 通过Groovy调用批处理文件.bat

import com.eviware.soapui.support.GroovyUtils def groovyUtils = new GroovyUtils( context ) def projectDir = groovyUtils.projectPath def proc = [ 'cmd', '/c',projectDir+ '\\backupTestResult.bat' ].execute() proc << 'y' StringBuilder output = new Stri

可以供MFC调用的,QT实现的DLL(qtwinmigrate实现)

MFC和QT的消息循环机制不同,所以,要让QT写的DLL可以供MFC调用,要做一点特殊的处理 [cpp] view plaincopyprint? #include <qmfcapp.h> #include <qwinwidget.h> #include <QtGui> #include <QtGui/QMessageBox> #include <windows.h> #include <QTextCodec> [cpp] view

mfc调用cmd执行完保留黑框

mfc调用cmd的方法有很多,本文采用 ShellExecute ShellExecute(AfxGetMainWnd()->m_hWnd,L"open",L"cmd",L"/k ping 127.0.0.1",NULL, SW_SHOW ); 如上,即可保留黑框, 如果使用: ShellExecute(AfxGetMainWnd()->m_hWnd,L"open",L"cmd",L"

批处理文件 bat 后台运行

当运行 批处理文件bat 时 , 会有一个黑窗口显示 , 对于不懂的人来说, 还是很吓人的;  有两种办法,可以让bat后台运行,不出现黑窗口 第一种解决办法(推荐) : 在你写的批处理文件,开头加上以下三行代码即可 if "%1"=="hide" goto CmdBegin start mshta vbscript:createobject("wscript.shell").run("""%~0"&quo

Windows下批处理文件(.bat)的使用

批处理(Batch),就是进行批量的处理.英文译文BATCH,批处理文件后缀BAT就取的前三个字母,通常被觉得是一种简化的脚本语言,它应用于DOS和Windows系统中.批处理文件是扩展名为.bat或.cmd的文本文件,包括一条或多条命令,由DOS或Windows系统内嵌的命令解释器来解释执行.批处理程序尽管是在命令行环境中执行,但不仅仅能使用命令行软件,不论什么当前系统下可执行的程序都能够放在批处理文件里执行. 批处理文件是无格式的文本文件.在命令提示符下键入批处理文件的名称,或者双击该批处理

MFC调用C动态库函数-----待补充

界面用MFC写 后台用写好的C程序就行了 C写的程序编译为dll,把用到的功能做成导出函数,在C++ w/MFC程序中调用 1.VC可以编译C函数动态库: 2.简单的dll编写例子(以最简单的两数相加函数为例): 创建工程项目Win32 Dynamic-Link Library. 加入头文件及源文件比如dll.h dll.cpp, 在头文件中:#ifndef DLL_H#define DLL_Hextern "C" int __declspec(dllexport)add(int x,

MFC调用WPF函数

1建立WPF工程 建立一个WPF工程,命名为WPFforMFC: 修改MainWindow.xaml代码: <Window x:Class="WPFforMFC.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title=&q

MFC调用libyara遇到的问题

测试结果 如果调用yara非要变成共享DLL的形式,加那么多的DLL,不如直接调用EXE文件.反而依赖vcruntime运行库的DLL少了很多... 调用libyara 调用libraya和C++调用动态链接库的基础没什么区别. 官方说明 https://yara.readthedocs.io/en/v3.4.0/capi.html 解决方法 项目->属性->配置属性->VC++ 目录-> 在"包含目录"里添加头文件yara.h所在的目录 项目->属性-&

MFC 调用默认对话框类对象成员和方法

这个功能其实并不常用,然而在多线程和回调函数中要调用默认对话框类的对象成员或方法还是可能要用到的,所以做下记录. 首先声明一个全局变量用以存储默认对话框类对象指针: LPVOID pParam;//对话框对象指针 在默认对话框类的初始化函数中给该指针进行赋值: pParam = (void *)this; 在需要调用默认对话框类对象成员或方法处,通过如下代码实现调用: CPanoramicPlayerDlg *dlg = (CPanoramicPlayerDlg *)lpParam;//其中CP