Добрый день!
Люди подскажите плиз ... Может кто сталкивался...
У нас такая проблема.
Нужно использовать в Dynamics AX 4.0 WinAPI функцию SendInput
Пишу реализацию этой функции для AX 4.0 WinAPI
#define.structSize1(20)
#define.structSize2(16)
client static int sendInput(int Param1)
{
DLL _winApiDLL = new DLL(#UserDLL);
DLLFunction _sendInput = new DLLFunction(_winApiDLL, 'SendInput');
Binary value = new Binary(#structSize1);
Binary value_in = new Binary(#structSize2);
_sendInput.returns(ExtTypes::Word);
value_in.Word(#offset0, Param1);
value_in.Word(#offset2, 0);
value_in.dWord(#offset4, 0x00000002 || 0x00000004);
value_in.dWord(#offset8, 0);
value_in.dWord(#offset12, 0);
value.dWord(#offset0, 0x00000001); // count
value.binary(#offset4, value_in);
_sendInput.arg(ExtTypes::Word,
ExtTypes::Binary,
ExtTypes::Word);
return _sendInput.call(1, value, 20);
}
при использовании: WinApi::sendInput(69);
акцапта ругается:
Ошибка:
Значение регистра ESP не было сохранено при вызове функции "SendInput" в библиотеке DLL "USER32". Причиной может являться вызов функции DLL, которая объявлена с неверным числом аргументов.
- скорее всего это связано что я неправильно передаю второй параметр (там должна быть сишная структура). ??? - если кто сталкивался с подобным поделитесь информацией ...
Заранее благодарен!