VC/MFC程序开启关闭其他软件,更改窗口类

流程:

1. 获取目标程序的  窗口HWND hWnd

  HWND hWnd = ::FindWindowA(_T("SoftWareClassName"),NULL); //获取需要软件的窗口

2. int ret = ::SendMessageA(hWnd ,WM_CLOSE,0,0); //关闭软件

3. WinExec(D:\\Foxit Reader.exe,SW_SHOWMAXIMIZED);  //开启软件

关于FindWindow()有两个参数  第一个是窗口类名,第二个是窗口名  。使用的时候只需要使用其中一个就够了,另外一个参数写NULL

对于开关自己写的软件可以自定义窗口类名  步骤如下:

1.在窗口的 rc文件中增加

  CLASS "SoftWareClassName"

2.在窗口创建前增加下面几行代码 注册窗口类

/////////////////////////////////////////////////////////
WNDCLASS wc;

// Get the info for this class.
// #32770 is the default class name for dialogs boxes.
::GetClassInfo(AfxGetInstanceHandle(), _T("#32770"), &wc);

// Change the name of the class.
wc.lpszClassName = _T("SoftWareClassName"); //这里请再次注意,一定要保证和rc资源文件里保存的类名相同!

// Register this class so that MFC can use it.
bool ret=AfxRegisterClass(&wc);

/////////////////////////////////////////////////////////

对于开关别人写的软件可以通过软件获取名称  步骤如下:

下载微软软件spy++获取当前打开的软件窗口名称和类名,如下图 福晰阅读器为窗口名,classFoxitReader为窗口类名。

软件下载地址 :http://pan.baidu.com/s/1kV8frCV

时间: 2024-10-26 07:33:09

VC/MFC程序开启关闭其他软件,更改窗口类的相关文章

深入浅出话VC++——MFC的本质

本文为转载,为阅读方便,部分内容作出修改. 一.引言 在实际开发中,我们大多数都是使用已有的类库来开发Windows应用程序. MFC(Microsoft Foundation Class, 微软基础类库)是微软为了简化程序员的开发工作而将Windows API 封装到C++类中,利用这些类,程序员可以有效地完成Windows平台下应用程序的开发.本专题将详细剖析它. 二.利用向导创建一个MFC程序 用于帮助有效地开发Windows应用程序的类库除了MFC外,还有其他开源类库提供,比如说QT,只

MFC程序的启动过程,很清楚,但仍有待改进

原文出自:http://blog.csdn.net/yuvmen/article/details/5877271 了解MFC程序的启动过程,对于初学者来讲,了学习MFC很有帮助:对于不常用VC的人来说,过一段时间就会忘记.还是来记下来,方便以后查阅. 1.创建Application object对象theApp 程序一开始生产一个(且只有一个)Application object对象theApp,也即一个CWinApp对象,这个全局对象一产生,便执行其构造函数,因为并没有定义CMyWinApp构

MFC程序执行顺序

原文链接:http://www.cnblogs.com/lidabo/archive/2012/10/23/2735622.html 1.创建Application object对象theApp 程序一开始生产一个(且只有一个)Application object对象theApp,也即一个CWinApp对象,这个全局对象一产生,便执行其构造函数,因为并没有定义CMyWinApp构造函数,所以即执行CWinApp类的构造函数.该函数定义于APPCORE.CPP第75行,你可以自己搜出来啃一啃,因此

VC++编程之第三课笔记——MFC窗口创建过程以及窗口类的封装

第三课 MFC窗口创建过程以及窗口类的封装 MFC的每一个类都是以C开头的,表明这是一个Class. 工程包含(单文档) 创建工程名为aaa的工程(单文档)时,在类视图中可看见五个类: CAboutDlg CMainFrame CAaaApp CAaaDoc CAaaView 其中: 类CAboutDlg继承自CDialog类,对话框的类 类CMainFrame继承自CFrameWnd类,创建整个程序的框架窗口 类CAaaApp继承自CWinApp类,创建唯一的应用程序对象 类CAaaDoc继承

MFC注册窗口类以及FindWindow按窗口类名查询(避免用#32770获取窗口句柄)

呵呵,最近在研究SendMessage函数,其中需要用到m_hWnd,之后延伸着又尝试获得窗口的句柄,于是遇到了FindWindow函数,原型如下: HWND FindWindow ( LPCSTR lpClassName,    //输入窗口的类名,其实需要是注册过的类名才行,否则是要报错或者查找失败的. LPCSTR lpWindowName, //输入窗口的名称,就是窗口上面蓝色的那行玩意儿写的字. ); 对于这个函数,如果按照窗口的名称查找,相信大家都非常简单,因为名称在rc文件里,是已

VC++ MFC SDI/MDI Ribbon程序的停靠窗格被关闭后如何再次显示

问题:MFC程序使用了Ribbon风格的,所以其他菜单都不显示了.有一个系统自动生成的停靠窗格,被该窗格不小心关掉后,再调试也显示不出来了.肿么办啊? 解答:消除停靠位置,存储记忆功能:在CMainFrame中,CreateDocablePane之前,调用CMainFrame::EnableLoadDockState(FALSE);即可. 如果MFC程序不是Ribbon风格的,窗体界面一般如下图所示: 可以通过在View视图菜单里添加如下代码实现隐藏的窗格的再次显示: CDockablePane

Windows编程 - 开启/关闭/遍历程序的类 代码(C++)

开启/关闭/遍历程序的类 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 类包含4个函数, 启动程序, 遍历所有进程, 关闭程序, 遍历进程依赖的动态链接库. 示例: Image.exe是预先生成的可执行程序(exe), 启动程序, 间隔5秒, 关闭程序. 使用方法参加测试程序. 代码: /* * process.h * * Created on: 2014.06.08 * Author: Spike */ /*vs 2012*/ #ifnde

c# 软件自动升级 程序自我关闭自己后重启

//指定一个文件名,写入脚本 string filename = Path.Combine(path,"killmyself.bat"); using (StreamWriter bat = new StreamWriter(filename, false, Encoding.GetEncoding("GB2312"))) { //删除指定程序,复制指定程序到指定路径 bat.WriteLine(string.Format(@" @echo off del

VC MFC 屏蔽ESC和ENTER键关闭对话框

窗体头文件中加入: 1 protected: 2 virtual BOOL PreTranslateMessage(MSG* pMsg); // PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的 3 public: 4 virtual void OnOK(); 在CPP中加入: 1 BOOL CColorDlgDlg::PreTranslateMessage(MSG* pMsg) 2 { 3 //屏蔽ESC关闭窗体/ 4 if(pMsg->mes