Aloha! För att sätta dig på spår läs om API SendMessage Tack för hjälpen!! Varför: Nyfiken.Hur gjorde du för att ta reda på handtaget (hwnd) för den TextBox Tror att jag kom på det själv !? Det där ser ungefär ut som det jag använde mig av.Läsa in text från annat program
Om jag har handtaget till ett annat program, kan jag då komma åt textrutor mm och läsa vad som står i dessa rutor?
mvh MarcusSv: Läsa in text från annat program
<code>
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Const EM_GETLINECOUNT = &HBA
Const EM_GETLINE = &HC4
Private Sub Command1_Click()
Dim lngCount As Long
'Hämta antal rader i Text1
lngCount = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)
MsgBox lngCount & " rader i TextBoxen"
End Sub
Private Sub Command2_Click()
Dim buffer As String, radNr As Long, ret As Long
buffer = String$(100, 32) 'lägger upp en buffer på 100 space
radNr = 5
On Error Resume Next
ret = SendMessage(Text1.hwnd, EM_GETLINE, radNr - 1, ByVal buffer)
'ret innehåller antal tecken i raden
buffer = Left$(buffer, ret)
MsgBox buffer & String$(2, vbCrLf) & ret & " tecken i raden"
End Sub
</code>
Sök upp alla EM konstanter det finns en uppsjöSv:Läsa in text från annat program
Jag har letat en del på nätet också och nu funkar det, dvs jag kan läsa i andra programs textrutor mm.......men........inte i program gjorda i Java......någon som vet varför och hur man kan åtgärda detta?
mvh MarcusSv: Läsa in text från annat program
Eftersom Java kör en Virtual Machine, dvs själv renderar alla visuella grejer osv.
Det du skulle kunna göra är eventuellt att hacka dig in i själva JVM-koden och försöka hitta resp. variabel, men det är ingen lättare uppgift direkt.Sv:Läsa in text från annat program
i det andra programmet som du ville komma åt ?Sv: Läsa in text från annat program
En Form med en List1 box och en BasModul
<code>
Option Explicit
Private Sub Form_Load()
'in a form
Me.AutoRedraw = True
EnumChildWindows GetDesktopWindow, AddressOf EnumChildProc, ByVal 0&
End Sub
</code>
<code>
Option Explicit
'in a module
Declare Function GetDesktopWindow Lib "user32" () As Long
Declare Function EnumChildWindows Lib "user32" _
(ByVal hWndParent As Long, ByVal lpEnumFunc As Long, _
ByVal lParam As Long) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Function EnumChildProc(ByVal hwnd As Long, _
ByVal lParam As Long) As Boolean
Dim sSave As String, sLen As Long
'Get the windowtext length
sSave = String$(64, Chr$(0))
'get the window text
GetWindowText hwnd, sSave, Len(sSave)
sLen = InStr(sSave, Chr$(0)) - 1
'remove the last Chr$(0)
sSave = Left$(sSave, sLen)
If Left$(sSave, 1) > Chr$(33) Then _
Form1.List1.AddItem sSave & " hWnd = " & hwnd
'continue enumeration
EnumChildProc = True
End Function
</code>Sv:Läsa in text från annat program
Jag tog delar ur ett program som jag laddade ner från www.planet-source-code.com men som jag sa tidigare så hjälpte det ju inte mig i det här fallet.
En annan fråga:
Vet nån om det går göra ett program som loggar in på en sida på internet och kopierar information därifrån i t.ex 10 minuters intervaller?