[ Blue82 @ 17.12.2021. 08:53 ] @
Imam problem sa ovim jednostavnim kodom. Na jednom računaru sve radi kako bi trebalo dok na drugom računaru isti program radi polovično. 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 |