set_focus
-
Schönen guten Tag,
ich bin neu im Thema "c++" und habe auch gleich mal eine Frage.
Die "suche" ergab keine Treffer
Ich will es selber lernen und brauche nur Ansätze der Befehle die ich brauche.
Problem: ich möchte im windows, die task's abfragen.
ist ein Programm offen (paint.exe -- im task wird angezeigt "unbekannt -paint")
möchte ich den Focus auf diese Programm setzten und somit in den Vordergrund heben.Kann mir jemand da Hilfestellung geben.
Besten Dank
-
Das gehört eher ins WINAPI-Forum. Die Befehle die du suchst gehen in die Richtung:
-FindWindow( )
-ShowWindow( )
-
Das hat nichts mit C++ zu tun. Das ist ein Platformspezifisches Problem und gehört in die WinAPI.
Schau dir mal
EnumWindowsundSetForegroundWindowan.Grüssli
-
cAnfaenger schrieb:
Problem: ich möchte im windows, die task's abfragen.
ist ein Programm offen (paint.exe -- im task wird angezeigt "unbekannt -paint")
möchte ich den Focus auf diese Programm setzten und somit in den Vordergrund heben.Du bist mit dieser Frage in diesen Unterforum falsch. ANSI C++ kennt keine Oberfläche und kann somit auch nicht den Focus setzen.
Nun ist die Frage mit welchen Framework du arbeiten willst. Beispielsweise dürfte das von dir gewünschte wohl unter Anderem mit der WinAPI, MFC und VCL möglich sein.
Aber ich bezweifel das du, wenn du dich selbst als Anfänger bezeichnest, wirklich deiner Aufgabe gewachsen bist. Sinnvoll wäre es erst einmal die Sprachgrundlagen zu beherrschen (Und die kommen ohne UI aus), um dann in einen weiteren Schritt sich mit einem UI-Framework auseinander zu setzen.
-
Vielen dank für die schnellen Antworten und die nützlichen Lösungsbeschreibungen.
Das ich die Frage im falschen Thread gestellt habe; sorry.Ich werde es schon irgendwie schaffen
Besten Dank.
-
So hier der Code, mehr brauchte ich nicht.
Das Prog. mit Parameter aufrufen welches in Vordergrund soll.zb.: focus.exe "Ubekannt - Paint"
-----------------------------------
#include <iostream>
#include <windows.h>using namespace std;
int main(int argc, char *argv[])
{
HWND frame = ::FindWindow(0, argv[1]);
if (frame)
{
//MessageBox(0, "Programm offen!", 0, 0);
//Aktive und Vordergrund
SetForegroundWindow(frame);
ShowWindow(frame,SW_RESTORE);
}
else
{
MessageBox(0, "Programm nicht offen!", 0, 0);
}}
Danke für das vertrauen.
