bon les 9 derniers posts étaient HS.
comme declaration j'ai mis:
Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
alors que l'API viewer me proposait ByRef pour lParam mais dans ce cas il était impossible d'envoyer 0 comme lParam.
et voici mon code qui normalement permet d'envoyer le fichier en utilisant la routine suggeré:
Static baytlar(0 To 150) As Byte 'il faut que ce soit une variable globale. Essayer avec "static b as byte()"
hwnd = FindWindow("TEmuWnd", "Virtual TI-89")
If hwnd = 0 Then
hwnd = FindWindow("TEmuWnd", "Virtual TI-92+")
End If
If hwnd = 0 Then
MsgBox "Virtual TI is not running!!", vbMsgBoxHelpButton, "Emulation"
End If
Dim i As Integer
Dim s As String
s = "C:\nebulus.89z"
For i = 1 To Len(s)
baytlar(i - 1) = Asc(Mid(s, i, 1))
Next i
baytlar(Len(s)) = 0
SendMessage hwnd, &H233, VarPtr(baytlar(0)), 0
&H233 correspond à WM_DROPFILES. D'apres le programme SPY++ qui intercepe les messages, je recois un LRESULT: 00000000 (en hexa bien sur

)
voici le code de VTI qui gère WM_DROPFILES, je sais pas si ca sert à quelque chose de l'avoir mais bon.
void __fastcall TEmuWnd::WMDropFiles(TMessage &Msg)
{
HANDLE hDrop=(HANDLE)Msg.WParam;
PauseStart();
int fileCount=DragQueryFile(hDrop,-1,NULL,0);
Screen->Cursor=crHourGlass;
char name[256];
for (int i=0;i<fileCount; )
{
DragQueryFile(hDrop,i,name,255);
if (hw->SendFile(name,i<(fileCount-1)))
{
i++;
continue;
}
Screen->Cursor=crDefault;
if (MessageBox(Handle,"Transmission error","Error",
MB_RETRYCANCEL|MB_ICONEXCLAMATION)==IDCANCEL)
break;
Screen->Cursor=crHourGlass;
}
DragFinish(hDrop);
Screen->Cursor=crDefault;
PauseEnd();
}
Voila, le probleme c'est que ca ne marche toujours pas. J'ai tout fait, essayé de changer en ByVal etc.. y a pas moyen de le faire marcher. Vous avez une idée de la ou ca peut venir?