Naime ovaj code pročita šta piše u otvorenom Notepadu i to prikaže u MsgBox-u, a posle toga u isti notepad upiše drugi tekst i ponovo ga pročita i prikaže u TextBoxu.
Na računaru na kome ne radi, iz nekog razloga ne uspeva da očita šta piše u Notepadu ali uspeva da u njega unese novi tekst.
Nemam predstavu zašto se to dešava i u kom pravcu da tražim grešku.
Code:
Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Private Const WM_GETTEXTLENGTH = &HE
Private Const WM_GETTEXT = &HD
Private Const WM_SETTEXT = &HC
Private Sub Form_Load()
Dim lNoteP&, edit&
lNoteP = FindWindow("Notepad", vbNullString)
edit = FindWindowEx(lNoteP, 0&, "Edit", "")
MsgBox GetText(edit)
SetText edit, "HEYYY IK BEN JOP"
MsgBox GetText(edit)
End Sub
Private Sub SetText(Wnd As Long, Text As String)
SendMessage Wnd, WM_SETTEXT, ByVal CLng(0), ByVal Text
End Sub
Private Function GetText(Wnd As Long)
Dim l%, Wintext$, retval&
l = SendMessage(Wnd, WM_GETTEXTLENGTH, ByVal CLng(0), ByVal CLng(0)) + 1
Wintext = Space(l)
retval = SendMessage(Wnd, WM_GETTEXT, ByVal l, ByVal Wintext)
GetText = Left(Wintext, retval)
End Function
Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Private Const WM_GETTEXTLENGTH = &HE
Private Const WM_GETTEXT = &HD
Private Const WM_SETTEXT = &HC
Private Sub Form_Load()
Dim lNoteP&, edit&
lNoteP = FindWindow("Notepad", vbNullString)
edit = FindWindowEx(lNoteP, 0&, "Edit", "")
MsgBox GetText(edit)
SetText edit, "HEYYY IK BEN JOP"
MsgBox GetText(edit)
End Sub
Private Sub SetText(Wnd As Long, Text As String)
SendMessage Wnd, WM_SETTEXT, ByVal CLng(0), ByVal Text
End Sub
Private Function GetText(Wnd As Long)
Dim l%, Wintext$, retval&
l = SendMessage(Wnd, WM_GETTEXTLENGTH, ByVal CLng(0), ByVal CLng(0)) + 1
Wintext = Space(l)
retval = SendMessage(Wnd, WM_GETTEXT, ByVal l, ByVal Wintext)
GetText = Left(Wintext, retval)
End Function