Visual Studio 2015でC++を使用してWindowsアプリケーションを開発しています。現在注目されているアプリを返すには、GetForegroundWindow()
とGetWindowText()
が必要です。しかし、「windows.h」を含めても、GetForegroundWindow()
とGetWindowText()
は定義されていません。私はGetForegroundWindow()
の定義に行きました、それは私に "WinUser.h"につながったので、 "WinUser.h"も含めました。しかし、それはまだ助けることができませんでした。ここに私のコードは:Visual Studioの "GetForegroundWindow:identifier not found" 2015
#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;
}
アイデア?前もって感謝します! WinUser.h
で
あなたはデスクトップアプリケーションではなくWinRTアプリケーションを作成しています。 GetForegroundWindow()のような従来のwinapi関数の多くを使うことはできません。このような他のプロセスと対話することも許されません.WinRTアプリケーションはこの種のやりとりを禁止するサンドボックス内で実行されます。それは、Storeからのアプリケーションを幸せにダウンロードするような種類のユーザーを保持します。当然のことながら、間違ったプロジェクトテンプレートを使用して作業を始めただけです。 –
@HansPassant私は見る!私は普遍的なウィンドウのアプリのテンプレートを使用していた。このテンプレートを使用して現在フォーカスされているアプリを検出できる方法はありますか?または、代わりにwin32/Windowsフォーム/ WPFアプリケーションを作成する必要がありますか?ありがとうございます! – Lolo
私は冗談ではありませんでした。別のアプリがフォアグラウンドを取得したときにあなたのアプリはもはや実行されていません。 –