Autor Beitrag
Äfan
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 02.01.08 21:06 
Hi,

Mal ne kurze frage: Wie kann ich einem anderen fenster, das sich nicht in meiner anwendung befindet, den focus geben und wie kann ich die fenster ermitteln die offen sind ???

Ich will so ne liste haben wo alle offenen fenster drin stehen und bei klick wird dann das jeweilige fenster in den vordergrund gehohlt bzw. aktiviert. Wie mach ich das ?

mfg
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 02.01.08 21:32 
Da wirst du nicht um die WinAPI herum kommen, was auch für deine andere Frage gilt. Beispiele gibts zB bei CodeProject.
Äfan
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 03.01.08 03:35 
user profile iconKhabarakh hat folgendes geschrieben:
Da wirst du nicht um die WinAPI herum kommen, was auch für deine andere Frage gilt. Beispiele gibts zB bei [url=www.codeproject.com/...x]CodeProject[/url].


Ok das dachte ich mir schon irgendwie. Aber ich verstehe den artikel auf CodeProject beim besten willen nicht...

Es werden funktionen aus der winapi dll geladen, aber wo genau frägt er die fenster ab ??? Blick das nicht... hab mir den code auch runtergeladen, aber verstehes nicht.

Soweit hab ich herausgefunden das hier alles passiert:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
    //load all available windows
    private void Chooser_Load(object sender, System.EventArgs e)
    {
      VisListBox.Items.Clear();

      VisListBox.BeginUpdate();

      //enumerate thru Windows collection
      Windows wndList = new Windows(InvisibleBox.Checked,NoTitleBox.Checked);
      foreach (Window wnd in wndList) {VisListBox.Items.Add(wnd);}

      VisListBox.EndUpdate();
    }


Vllt kannste ja mal nur das zeigen, was nur für die fensterermittlung rlevant ist...

danke schonmal

mfg
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 03.01.08 23:52 
Hallo!

Was Du gepostet hast, ist nur der Teil für die Darstellung dessen, was die Window(s) Klassen es Projektes leisten. Entscheidend für Dich ist der Quellcode, der auch direkt auf der verlinkten Seite zu sehen ist, denn da passiert das eigentlich Interessante.

Du siehst dort zwei Klassen: eine Window-Klasse und eine Windows-Klasse, was eine Aufzählung von Instanzen der Window-Klasse darstellt.

Im Konstruktor der Windows-Klasse werden alle verfügbaren Fenster gesucht (mittels Callback-Methode EvalWindow) und der internen ArrayList hinzugefügt.

In der Window-Klasse wiederum findest Du die Funktionalität, um Fenster sichtbar zu machen bzw. um ihnen den Fokus zu geben. Für Dich dürfte dabei die Activate-Methode interessant sein, weil diese für den Fokus zuständig ist. Eventuell auch noch die Visible-Eigenschaft, welche für die Sichtbarkeit des entsprechenden Fensters zuständig ist.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Äfan
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 04.01.08 21:49 
user profile iconChristian S. hat folgendes geschrieben:
Hallo!

Was Du gepostet hast, ist nur der Teil für die Darstellung dessen, was die Window(s) Klassen es Projektes leisten. Entscheidend für Dich ist der Quellcode, der auch direkt auf der verlinkten Seite zu sehen ist, denn da passiert das eigentlich Interessante.

Du siehst dort zwei Klassen: eine Window-Klasse und eine Windows-Klasse, was eine Aufzählung von Instanzen der Window-Klasse darstellt.

Im Konstruktor der Windows-Klasse werden alle verfügbaren Fenster gesucht (mittels Callback-Methode EvalWindow) und der internen ArrayList hinzugefügt.

In der Window-Klasse wiederum findest Du die Funktionalität, um Fenster sichtbar zu machen bzw. um ihnen den Fokus zu geben. Für Dich dürfte dabei die Activate-Methode interessant sein, weil diese für den Fokus zuständig ist. Eventuell auch noch die Visible-Eigenschaft, welche für die Sichtbarkeit des entsprechenden Fensters zuständig ist.

Grüße
Christian


Hi Christian,

Danke für die Hilfe... jetzt hab ichs endlich geschaft nur das was ich wollte aus dem code zu extrahieren.

Hab sonst keine probleme codes zu analysieren und so, aber diesmal hab ich mir echt schwer getan... naja arbeite ja erst ne woche mit C# :)

Danke und mfg