Buongiorno a tutti, spero non siate tutti in vacanza...
Devo far interagire due applicazioni.
La prima deve istanziare un'applcazione excel a seguito di un click su un button mentre la seconda deve, tramite una api, simulare il click sul button citato della prima applicazione.
La prima applicazione fa quanto segue:
mentre la seconda:codice:Private Sub Command1_Click() Dim a As Excel.Application On Error Resume Next 'Crea Una Nuova Sessione Di Excel Set a = CreateObject("Excel.Application") If Err <> 0 Then MsgBox "Errore di Apertura Microsoft Excel", vbOKOnly + vbCritical, "Errore Apertura" Stop End If On Error GoTo 0 End Sub
in un modulo bas della seconda ho opportunamente dichiarato:codice:Private Sub Command1_Click() Dim hAppWnd As Long hAppWnd = FindWindow(vbNullString, "p") SendDlgItemMessage hAppWnd, &H1, BM_CLICK, vbNull, "" End Sub
Il caption del form dell'applicazione 1 è impostato a "p".codice:Public Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _ (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As String) As Long Public Const BM_CLICK = &HF5
Per l'esecuzione bisogna prima lanciare l'applicazione 1, poi la 2 e poi premere sul button Command1 della seconda.
Se clicco il button dell'applicazione uno "a manina" non ho nessun problema, viceversa se provo ad automatizzare la cosa con l'applicazione 2 mi viene restituito l'errore -2147417843.
Come posso risolvere il problema?
Grazie a tutti...

Rispondi quotando