Sto provando delle operazioni semplici con SendMessageA.
Però, non so perché, quando provo ad eseguirlo, funziona solo in un posto e nell' altro no!
Questo NON funziona:
Questo sì:codice:Private Sub ChangeCaptionByHWND() Dim daproc As String, fwnd As Long, exe As String, newcap As String, ok As Boolean Command3.Enabled = False ' Disabilito il pulsante che esegue questa funzione daproc = List1.Text ' Ottengo il path completo del processo exe = GetFileName(daproc) ' Ottengo application.exe dal path fwnd = FindEXEhWnd(exe) ' Ottengo hWnd da exe (funziona) If fwnd = 0 Then ' hWnd Non valido MsgBox ("Errore! hWnd non valido!") Exit Sub End If newcap = InputBox("Nuovo titolo per " & exe, "") ok = SendMessage(fwnd, WM_SETTEXT, 0, ByVal newcap) End Sub
Cos'è che sbaglio???codice:Private Sub ChangeCaption() Dim esito As Long Dim newcapt As String On Error GoTo notok newcapt = InputBox("Nuova caption:", "") esito = SendMessage(daWin, WM_SETTEXT, 0, ByVal newcapt) ' daWin è l'hWnd Exit Sub notok: MsgBox "Errore!", vbCritical, ":(" End Sub 'Questo imposta hwnd nella Private daWin As Long Private Sub SelectExecutable() target_name = InputBox("Caption esatta dell' app:", "") target_hwnd = FindWindow(vbNullString, target_name) If target_hwnd = 0 Then MsgBox "Non trovato!", vbCritical, ":(" Exit Sub End If daWin = target_hwnd End Sub

Rispondi quotando