0

我怎样才能通过ptxptyTestPluginAPI::ClickSemulationMoveTestPluginAPI::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,但是没有任何示例我有点困惑。谁能给我看简单的代码示例?

4

1 回答 1

1

你读过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;
}

说真的, FireBreath 代码库中的FBTestPlugin 示例中有所有这些事情的示例;你应该花一些时间在那里。我看到您提出的大多数问题都可以通过阅读该代码为您自己快速发现,然后您会更好地理解它。

于 2013-04-06T06:30:47.293 回答