im пытается отправить сообщение Windows моему приложению Delphi, но im имеет проблемы с методом FindWindow
: im получает идентификатор ошибки 0 из метода GetLastError
. Im работает с Vista и с того, что ive читает эту ошибку, распространено в XP или более ранних версиях, но должно отлично работать в Vista или Win 7 (может быть, я неправильно понял?).Получение идентификатора ошибки: 0 из метода Windows: FindWindow
Это код им с помощью и его в DLL файл Delphi, написанный на Delphi 5:
procedure SendData(const copyDataStruct: TCopyDataStruct) ;
var
receiverHandle : THandle;
res : integer;
begin
receiverHandle := FindWindow(PChar('TMainForm'),PChar('MainForm')) ;
if receiverHandle = 0 then
begin
ShowMessage(format('Error %x finding MainForm',
[GetLastError()]));
Exit;
end;
res := SendMessage(receiverHandle, WM_COPYDATA, Integer(receiverHandle), Integer(@copyDataStruct)) ;
end;
Параметр 'Параметр wParam' для этого сообщения должен быть дескриптор * отправителя * этого сообщения, не получатель*. Вот как получатель знает, куда отправить свой ответ. Кроме того, нет необходимости вводить типы строковых литералов; компилятор уже знает, что они должны быть PChars. –