我正在使用C ++在visual studio 2015中开发一个Windows应用程序。我需要GetForegroundWindow()
和GetWindowText()
才能返回当前关注的应用。但是,它表示GetForegroundWindow()
和GetWindowText()
未定义,即使我已经包含了" windows.h"。我尝试了GetForegroundWindow()
的定义,它引导我去了#34; WinUser.h",所以我包括了#34; WinUser.h"同样。但它仍然无法帮助。这是我的代码:
#include "MainPage.xaml.h"
#include <windows.h>
#include <WinUser.h>
#include <winapifamily.h>
#include <string>
#include <stdio.h>
#include <iostream>
using namespace App1;
using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
using std::cout;
using std::endl;
MainPage::MainPage()
{
InitializeComponent();
}
HWND currenthwnd, hwnd = NULL;
char wnd_title[1024];
void App1::MainPage::Focus_app_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
currenthwnd = GetForegroundWindow();
GetWindowText(hwnd, wnd_title, sizeof(wnd_title));
cout << wnd_title << endl;
}
有什么想法吗?提前谢谢!
答案 0 :(得分:4)
GetForegroundWindow
中的{p> GetWindowText
和WinUser.h
在#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
宏块内声明。因此,您只能将它们用于Windows桌面应用程序。