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
09.07.2024 05:02:36 Gast36743
NotSolved
Blau Maximale Zeichen im String dynamisch begrenzen
09.07.2024 16:49:34 volti
*****
NotSolved
09.07.2024 16:57:59 Gast39989
NotSolved

Ansicht des Beitrags:
Von:
volti
Datum:
09.07.2024 16:49:34
Views:
127
Rating: Antwort:
  Ja
Thema:
Maximale Zeichen im String dynamisch begrenzen

Hallo Caldolan,

in Windows müssen für String-Rückgaben Variablen mit entsprechendem festen Platz reserviert werden.

Deshalb wird hier die STRING-Variable z.B. mit 260 Bit oder mehr vorbelegt. Ist der Rückgabetext länger als der reservierte Platz, wird der Text abgeschnitten.

Der Rückgabetext wird innerhalb der Variablen mit dem vbNullChar-Zeichen abgeschlossen. Danach kommen Leerzeichen.

Schau Dir meine beiden Beipspiele an, wie man den korrekten Text aus Windos holt.

Bei der zweiten Methode lässt man sich von Windows die Textlänge zurückgeben und reserviert dann eine entsprechend dimensionierte Varable.

Code:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
 
Private Declare PtrSafe Function GetWindowTextLengthA Lib "user32" ( _
        ByVal hwnd As LongPtrAs Long
Private Declare PtrSafe Function GetWindowTextA Lib "user32" ( _
        ByVal hwnd As LongByVal lpString As StringByVal cch As LongAs Long

Sub Test()
' 1. Fall
  Dim strTmp As String * 260, sTxt As String

  GetWindowTextA hwnd, strTmp, 260
  sTxt = Left$(strTmp, InStr(strTmp, vbNullChar) - 1)

' 2. Fall
  iLang = GetWindowTextLengthA(hwnd) + 1
  strTmp = Space(iLang)
  iLang = GetWindowTextA(hwnd, strTmp, iLang)

End Sub
_________
viele Grüße
Karl-Heinz

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
09.07.2024 05:02:36 Gast36743
NotSolved
Blau Maximale Zeichen im String dynamisch begrenzen
09.07.2024 16:49:34 volti
*****
NotSolved
09.07.2024 16:57:59 Gast39989
NotSolved