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:
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
Questo sì:
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
Cos'è che sbaglio???