Hej! Nej, det är rätt API... men du använder det fel bara. Hittade en lösning på pscode en liten stund efter: Tips:GetWindowsText
sitter och leker lite med api:er och har med hjälp av FindWindow hittat det hwnd jag vill åt. Nu vill jag kunna läsa fönstrets titlebar text. Hittade då GetWindowsText api:et. Nu till själva problemet: den returnerar bara antalet tecken som texten är. Här är min kod:
Dim tWnd As Long
Private Sub Command1_Click()
Dim str As String
tWnd = FindWindow("CabinetWClass", vbNullString)
str = String(100, Chr$(0))
MsgBox = tWnd
MsgBox = GetWindowText(tWnd, str, 100)
End Sub
eller finns det kanske ett smidigare/lättare api att använda sig av?Sv: GetWindowsText
<code>
Public Function GetCaption(lngHandle As Long) As String
On Error Resume Next
Dim strTemp As String
strTemp = String(100, Chr$(0))
GetWindowText lngHandle, strTemp, 100
strTemp = Left$(strTemp, InStr(strTemp, Chr$(0)) - 1)
GetCaption = strTemp
End Function
</code>
/MickeSv: GetWindowsText
<code>
Dim str As String
tWnd = FindWindow("CabinetWClass", vbNullString)
txtLength = GetWindowTextLength(tWnd) + 1
str = Space(txtLength)
Call GetWindowText(tWnd, str, txtLength)
MsgBox str
</code>Sv: GetWindowsText
Returvärdet från GetWindowText är längden på det du läst in exklusive buffern.
dim intTextLen as integer
dim strWinText as string
dim strBuffer as string
strBuffer = string(128,chr$(0))
intTextLen = GetWindowText(Handtag,strBuffer,128)
strWinText = Left$(strBuffer,intTextLen)