Как я могу пройти ptx
а также pty
от TestPluginAPI::ClickSemulationMove
в TestPluginAPI::ClickSemulationClick(int ptx, int pty)
,
Дело в том, что я должен использовать эти две функции в JavaScript и, следовательно, не могу просто выставить их из одной в другую.
FB::variant TestPluginAPI::ClickSemulationClick(int ptx, int pty)
{
ShowCursor(true);
MouseLeft();
MouseReturn(ptx, pty);
ShowCursor(true);
return 0;
}
FB::variant TestPluginAPI::ClickSemulationMove(int ptx, int pty)
{
POINT pt;
MouseMove(-325, 605);
GetCursorPos(&pt);
ptx = pt.x;
pty = pt.y;
return 0;
}
Как я понял, мне нужно использовать JSObjectPtr или FB :: VariantList, но я немного запутался без какого-либо образца. Может кто-нибудь показать мне простой пример кода?
Вы читали JSAPI документы? Вся информация там.
Чтобы вернуть массив (будет массивом javascript) с двумя значениями, вы можете просто сделать:
return FB::variant_list_of(pt.x)(pt.y);
Затем в JavaScript вы можете вызвать другой метод, например:
var res = plugin().ClickSemulationMove(); // Assuming you don't actually need args here
plugin().ClickSemulationClick(res[0], res[1]);
Вы также можете передать массив напрямую, в этом случае вы можете сделать что-то подобное в C ++:
FB::variant TestPluginAPI::ClickSemulationClick(const std::vector<int>& arr)
{
ShowCursor(true);
MouseLeft();
MouseReturn(arr[0], arr[1]);
ShowCursor(true);
return 0;
}
Серьезно, есть примеры всех этих вещей в Пример FBTestPlugin в базе кода FireBreath; Вы должны провести там некоторое время. Большинство вопросов, которые, как я вижу, задают вы, могут быть быстро обнаружены при чтении этого кода, и тогда вы поймете это лучше.
Других решений пока нет …