Показать сообщение отдельно
Старый 20.05.2009, 11:07   #32  
wolfstein is offline
wolfstein
Axapta Retail User
Axapta Retail User
 
51 / 91 (4) ++++
Регистрация: 05.07.2006
Всем добрый день!
Возникла необходимость запускать форму настроек фона из кода, т.е. необходимо было имитировать нажатие клавиш ALT+S из кода.

Попробовал сделать так.
Добавил метод в класс AxPaint:
X++:
public FormRun formRunPaint()
{
    return formRunPaint;
}
Добавил метод в на форму AxPaintRunBase:
X++:
FormActiveXControl activeX()
{
    return ActiveX;
}
Запускаю джоб на отправку сообщения о нажатии клавиш ALT+S, но ничего не происходит:
X++:
static void Job52(Args _args)
{
    #define.WM_SYSKEYDOWN(0x0104)
    #define.VK_S(0x53)

    AxPaint axPaint = AxPaint::getAxPaint();
    FormActiveXControl  activexctrl;
    Object     formRun;
    ;

    if(axPaint.formRunPaint())
    {
        formRun = axPaint.formRunPaint();
        activexctrl = formRun.activeX();
        WinAPI::sendMessageEx(activexctrl.hWnd(), #WM_SYSKEYDOWN, #VK_S, 0x20200001);
    }
}
Что я делаю не так?