vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: System/Windows · Prozesse/Tasks   |   VB-Versionen: VB4, VB5, VB624.10.03
Fenstertitel der aktiven Anwendung manipulieren

Dieser Tipp zeigt, wie sich der Fenstertitel der gerade aktiven Anwendung manipulieren lässt.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  15.168 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Nehmen wir an, Sie haben einen Online-Counter programmiert und möchten nun, dass die aktuellen Gebühren während der Onlinesitzung immer in der Titelzeile der gerade aktiven Anwendung angezeigt werden. Oder aber Sie möchten die aktuelle Uhrzeit jederzeit in der Titelzeile sehen, oder oder oder...

Natürlich soll der neue Fenstertitel immer nur in dem Fenster angezeigt werden, das gerade aktiv ist, d.h. aktiviert der Anwender eine neue Anwendung soll der Fenstertitel der vorigen Anwendung wiederhergestellt werden.

Wie sich das realisieren lässt, zeigt unser heutiger Tipp.

Benötigt wird eine Form mit einem Timer-Control und nachfolgendem Code:

Option Explicit
 
' zunächst die benötigten API-Deklarationen
Private Declare Function GetForegroundWindow Lib "user32" () As Long
 
Private Declare Function GetWindowTextLength Lib "user32" _
  Alias "GetWindowTextLengthA" ( _
  ByVal hwnd As Long) As Long
 
Private Declare Function GetWindowText Lib "user32" _
  Alias "GetWindowTextA" ( _
  ByVal hwnd As Long, _
  ByVal lpString As String, _
  ByVal cch As Long) As Long
 
Private Declare Function SetWindowText Lib "user32" _
  Alias "SetWindowTextA" ( _
  ByVal hwnd As Long, _
  ByVal lpString As String) As Long
 
Dim nOldHWnd As Long
Dim sOldText As String
Private Sub Form_Load()
  ' Timer initialisieren
  Timer1.Interval = 250  ' 250 Millisekunden
  Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()  
  Dim nHWnd As Long
  Dim nLen As Long
  Dim sText As String
 
  ' Fensterhandle des aktiven Fenster ermitteln
  nHWnd = GetForegroundWindow()
 
  ' Falls neues Fenster aktiviert wurde...
  If nOldHWnd <> 0 Then
    ' Fenstertext der zuletzt aktiven
    ' Anwendung wiederherstellen
    SetWindowText nOldHWnd, sOldText
  End If
 
  ' Titelzeile der aktiven Anwendung ermitteln
  If nHWnd <> nOldHWnd Then
    nLen = GetWindowTextLength(nHWnd)
    sText = Space$(nLen + 1)
    Call GetWindowText(nHWnd, sText, nLen + 1)
    sText = Left$(sText, Len(sText) - 1)
    sOldText = sText
  Else
    sText = sOldText
  End If
 
  ' Titelzeile manipulieren
  ' z.B. aktuelles Datum und Uhrzeit anzeigen
  sText = sText & " " & Format$(Now, "dd.mm.yy hh:nn:ss")
 
  ' Titelzeile des aktiven Fensters neu festlegen
  SetWindowText nHWnd, sText
 
  ' Fensterhandle merken
  nOldHWnd = nHWnd
End Sub

Beim Beenden der eigenen Anwendung ist jedoch drauf zu achten, den Fenstertitel der geraden aktiven Anwendung wieder in den Urspungszustand zurückzusetzen:

Private Sub Form_Unload(Cancel As Integer)
  ' Timer stoppen
  Timer1.Enabled = False
 
  If nOldHWnd <> 0 Then
    ' Fenstertext der zuletzt aktiven
    ' Anwendung wiederherstellen
    SetWindowText nOldHWnd, sOldText
    nOldHWnd = 0
  End If
End Sub

Dieser Tipp wurde bereits 15.168 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel