c++ FindWindow的使用方法

在vs2010中 创建一个c++的窗体应用程 怎样让一个按钮可以检测出一个进程是否在运行
把源代码发上来~先谢过大家~
是一个指定窗口的名称~

void CfindDlg::OnBnClickedButton1()
{
if(FindWindow(NULL,L"我的电脑")!=NULL)
MessageBox(L"我的电脑运行中",L"提示1");
else
MessageBox(L"我的电脑没有运行",L"提示2");
}
说明:这个程序在vs2010中编译成功,使用的是MFC环境
其中OnBnClickedButton1() 就是那个按钮的 点击事件
字符串前面的L 是因为vs2010默认Unicode 字符集,加上L 就是宽字符的意思,如果使用多字节字符集 就把L去掉。
还是那句话 FindWindow 只能发现 有窗口的程序,如果一个程序没有窗口,什么也发现不了 ,你要明白,进程与窗口是完全两个不同的概念,不要指望FindWindow 来发现 所有的进程。

其中“我的电脑” 可以使用其他的代替如“保皇-大厅1”
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-01
  先要知道要结束的对象程序标题名称是什么,然后利用FindWindow() 来找出其窗口HANDLE,再呼叫 PostMessage() 送出 WM_CLOSE 讯息以结束该窗口,PostMessage()的用法与SendMessage()完全相同,所不同的是 SendMessage() 会等待接收讯息的窗口处理完讯息后才返回,而PostMessage()则是送出讯息命令后马上返回:
  void __fastcall TForm1::Button1Click(TObject *Sender)
  {
  HANDLE DestHandle;
  DestHandle = FindWindow(NULL,"test.txt - 记事本");
  if (DestHandle != 0) PostMessage(DestHandle, WM_CLOSE, 0, 0);
  }本回答被网友采纳
第2个回答  2010-10-01
FindWindow是枚举窗口的句柄. 指定父窗口句柄还可以枚举出子窗口.所以可以获得某窗口的edit控件.static等.
第3个回答  2010-09-29
#include <windows.h>
int mian(void){
if(FindWindow(ClassName,CationName))
MessageBox(NULL,"在运行",NULL,MB_OK);
else
MessageBox(NULL,"无运行",NULL,MB_OK);
return 0;
}
第4个回答  2010-09-30
//只运行一个实例
HANDLE m_hMutex;
m_hMutex = ::CreateMutex(NULL, TRUE, "LoveMusic");
if (GetLastError() == ERROR_ALREADY_EXISTS) //程序已经运行
{
HWND oldHWnd = NULL;
oldHWnd = ::FindWindow(NULL, _T("LoveMusic")); //查找已经运行的程序
if (oldHWnd)
{
::ShowWindow(oldHWnd, SW_SHOW); //激活显示找到的已运行的程序
::SetForegroundWindow(oldHWnd); //将已运行的程序设置为当前窗口
}
CloseHandle(m_hMutex);
m_hMutex = NULL;

c++ FindWindow的使用方法
MessageBox(L"我的电脑没有运行",L"提示2");} 说明:这个程序在vs2010中编译成功,使用的是MFC环境 其中OnBnClickedButton1() 就是那个按钮的 点击事件 字符串前面的L 是因为vs2010默认Unicode 字符集,加上L 就是宽字符的意思,如果使用多字节字符集 就把L去掉。还是那句话 FindWindow 只能发现 ...

find window 函数在c++中怎样使用
简单的说,设计窗口的时候要注册窗口类,那时候要填一些参数,其中就有窗口的类名和窗口的名字。用这个函数你可以获得指定窗口的句柄。比如 HWND hwnd = FindWindow(NULL,"QQ音乐"); 就可以获得QQ音乐的句柄,然后你可以调用其他API函数结束这个句柄,也就结束了QQ音乐这个程序。函数原型:HWND FindWindo...

高分悬赏:C++中如何利用FinWindow()函数查找并关掉任务管理器?_百度...
楼主你好!光用FindWindow()只能找到窗口,并不能关掉。关掉要用TerminateProcess()函数。下面,我就举例说明吧,放在一个按钮的事件代码中。HWND hwnd=::FindWindow(NULL,"Windows 任务管理器");if(hwnd!=NULL){ DWORD dwProcessId;::GetWindowThreadProcessId(hwnd, &dwProcessId);HANDLE handle=OpenP...

FindWindow如何查找2个窗口名一样的句柄 并且识别句柄。 C++语言的
FindWindow其实有两个参数,一个是根据窗口名字查找,一个是根据窗口类(class)名字查找。如果窗口名字相同,你就用窗口类名查找吧。

用c++设计一个程序,验证后台QQ群 窗口的标题。
调用 FindWindow 函数查找一个窗体,腾讯的 QQ 所有窗体类名均为 TXGuiFoundation,因此句柄可以这样得到:HWND hPointWnd = FindWindow(L'TXGuiFoundation', NULL);如果打开的 QQ 进程的窗口过多可能会查到其它窗体,此时调用 FindWindowEx,标题传入 NULL,类名依旧是 TXGuiFoundation,然后利用发送 WM...

C++怎么读取系统正在运行的其他程序?
可以用API函数FindWondow, FindWondow是这样工作的,如果找到特定字符串的窗口标题,那么返回该窗口的句柄,否则返回NULL 举个例子:include<stdio.h> include <windows.h> int main(){ HWND hw = FindWindow(NULL, L"计算器");if (hw)printf("有");return 0;} ...

如何通过C++的Windows.h头文件定位窗口位置?
首先要让编译器知道窗口类型和窗口名称,使用VS工具Spy++定位窗口,lpclassname和lpWindowname,前面使用LPCTSTR转换。这个主要在HWND FindWindow()中,或使用fWindows输出具体位置

用C++做QQ自动登录
hWnd = FindWindow(NULL, "QQ用户登录");之后 采用模拟键盘输入的方法输入用户名、密码、并回车登陆。\/\/输入用户名54 keybd_event(0x35,0,0,0);keybd_event(0x35,0,KEYEVENTF_KEYUP,0);keybd_event(0x34,0,0,0);keybd_event(0x34,0,KEYEVENTF_KEYUP,0);\/\/tab切换行 keybd_event(VK_TAB...

FindWindow()如何获取隐藏窗口的句柄
我猜,你那matlab的figure可能不是顶级窗口,就是不是主程序的窗口,因此,你可以通过枚举的方式来找到子窗口。代码如下,参考下:C\/C++ codeCWnd* cwnd=CWnd::FindWindow(NULL,matlab标题名);\/\/找到matlab的主窗口CWnd* child=cwnd-GetWindow(GW_CHILD);\/\/获得matlab的第一个子窗口CString buf;while...

C++对话框程序运行时如何在任务栏里隐藏。
这有一个程序参考,主要用的是 ShowWindow(FindWindow("ConsoleWindowClass", argv[0]), 1);实现对窗口的隐藏和显示 include <stdio.h> include <windows.h> int main(int argc, char *argv[]) { LPSYSTEMTIME p;SYSTEMTIME time;p = &time;ShowWindow(FindWindow("ConsoleWindowClass", argv[...

相似回答