Thema Datum  Von Nutzer Rating
Antwort
08.07.2024 10:52:04 Caldolan
NotSolved
08.07.2024 12:43:28 ralf_b
NotSolved
08.07.2024 15:15:14 Gast64241
NotSolved
08.07.2024 17:45:32 xlKing
NotSolved
Rot Maximale Zeichen im String dynamisch begrenzen
09.07.2024 05:02:36 Gast36743
NotSolved
09.07.2024 16:49:34 volti
*****
NotSolved
09.07.2024 16:57:59 Gast39989
NotSolved

Ansicht des Beitrags:
Von:
Gast36743
Datum:
09.07.2024 05:02:36
Views:
74
Rating: Antwort:
  Ja
Thema:
Maximale Zeichen im String dynamisch begrenzen

ich hätte es hier ganz praktisch gefunden:

 

Private Declare PtrSafe Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Function SearchHndByWndName_Parent(strSearch As String) As Long
    Dim strTmp As String * 200 
    Dim nhWnd As Long
    nhWnd = FindWindow(vbNullString, vbNullString)
    Do While Not nhWnd = 0
        If GetParent(nhWnd) = 0 Then
            GetWindowText nhWnd, strTmp, 200  
            If InStr(strTmp, strSearch) > 0 Then   
                SearchHndByWndName_Parent = nhWnd
                Exit Do
            End If
        End If
        nhWnd = GetWindow(nhWnd, GW_HWNDNEXT)
    Loop
End Function

Ich hatte mal den Fall das strSearch größer war als strTmp und dann hat er mir das Fenster eben nicht geschlossen. Ich hab versucht die Begrenzung weg zu lassen, aber dann funktioniert der Code auch nicht mehr. Ich hätte es Praktisch gefunden, wenn ich die Größe daher dynamisch auf die Größe von strSearch begrenzen könnte.

 

Ich hab es aber jetzt so gelöst:

Private Function SearchHndByWndName_Parent(strSearch As String) As Long
    Dim strTmp As String * 200 
    Dim nhWnd As Long
    nhWnd = FindWindow(vbNullString, vbNullString)
    Do While Not nhWnd = 0
        If GetParent(nhWnd) = 0 Then
            GetWindowText nhWnd, strTmp, 200  
            If InStr(strTmp, Left(strSearch, 200)) > 0 Then   
                SearchHndByWndName_Parent = nhWnd
                Exit Do
            End If
        End If
        nhWnd = GetWindow(nhWnd, GW_HWNDNEXT)
    Loop
End Function

Aber falls jemanden doch noch ein anderer Weg einfällt, wäre interessant.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
08.07.2024 10:52:04 Caldolan
NotSolved
08.07.2024 12:43:28 ralf_b
NotSolved
08.07.2024 15:15:14 Gast64241
NotSolved
08.07.2024 17:45:32 xlKing
NotSolved
Rot Maximale Zeichen im String dynamisch begrenzen
09.07.2024 05:02:36 Gast36743
NotSolved
09.07.2024 16:49:34 volti
*****
NotSolved
09.07.2024 16:57:59 Gast39989
NotSolved