Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
08.07.2024 10:52:04 |
Caldolan |
|
|
|
08.07.2024 12:43:28 |
ralf_b |
|
|
|
08.07.2024 15:15:14 |
Gast64241 |
|
|
|
08.07.2024 17:45:32 |
xlKing |
|
|
|
09.07.2024 05:02:36 |
Gast36743 |
|
|
Maximale Zeichen im String dynamisch begrenzen |
09.07.2024 16:49:34 |
volti |
|
|
|
09.07.2024 16:57:59 |
Gast39989 |
|
|
Von:
volti |
Datum:
09.07.2024 16:49:34 |
Views:
127 |
Rating:
|
Antwort:
|
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 LongPtr) As Long
Private Declare PtrSafe Function GetWindowTextA Lib "user32" ( _
ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As 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
|
- 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
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- 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 |
|
|
|
08.07.2024 12:43:28 |
ralf_b |
|
|
|
08.07.2024 15:15:14 |
Gast64241 |
|
|
|
08.07.2024 17:45:32 |
xlKing |
|
|
|
09.07.2024 05:02:36 |
Gast36743 |
|
|
Maximale Zeichen im String dynamisch begrenzen |
09.07.2024 16:49:34 |
volti |
|
|
|
09.07.2024 16:57:59 |
Gast39989 |
|
|