Autoit невероятно удобная штука, но с С++ работать мне проще. Знаю, что Autoit написан на С. Возможно ли функционал Autoit использовать в C++? Как подключить к Visual Studio?
Ответ
Для использования Autoit из C++ есть библиотека AutoItX (идет в составе дистрибутива AutoIT).
Цитата из справки:
AutoItX представляет собой DLL версию модуля AutoIt v3, которая
обеспечивает набор функций по AutoIt через ActiveX / COM и DLL
интерфейс. Это означает, что вы можете добавить AutoIt-подобные
функции в ваш любимый скриптовый язык, и языки программирования,
например, VB, VBScript, Delphi, C, C + +, KiXtart, и в большинстве
других языков, которые поддерживают использование библиотек (DLL).
Оригинальная версия AutoIt поставлялась с двумя управляющими
элементами: AutoItX (COM / ActiveX Control) и AutoItDLL (управление
DLL). В этой новой версии как COM так и DLL версии были объединены в
одно управление AutoItX, который обеспечивает оба метода доступа.
То как вы будете использовать AutoItX зависит от среды разработки
(языка) в который вы хотите его использовать. Если вы используете
нечто поддерживающее доступ к COM-объектам (например, VBScript), то
использование AutoItX в качестве управления COM весьма рекомендуется.
Если вы хотите использовать AutoItX из таких языков как С, то
использовать его в качестве DLL будет проще.
Как подключить к Visual Studio:
start a new project2. go to your Autoit directory (usually C:\Program Files\AutoIt\ )
go to the AutoItX/StandardDLL/VC6/Example folder within your Autoit directory
copy the following files to your project directory: AutoIt3.h AutoItX3.lib AutoItX3.dll main.cpp
in visual studio, go to Project->Add To Project->Files
change the "Files of type" dropdown to "all files"
Select: AutoIt3.h AutoItX3.lib and main.cpp and add them to the project
Your project should now compile and run. the example opens notepad and sends some text to it.
Также в дистрибутиве рядом с dll лежит простейший пример для C++:
#include
int APIENTRY wWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// You can now call AutoIt commands, e.g. to send the keystrokes "hello"
AU3_Sleep(1000);
AU3_Run(L"notepad.exe", L"", 1);
AU3_WinWaitActive(L"Untitled -", L"", 0);
AU3_Send(L"Hello{!}", 0);
// Get the text in the status bar
//WCHAR szText[1000];
//AU3_StatusbarGetText("Untitled -", "", 2, szText, 1000);
//MessageBox(NULL, szText, "Text:", MB_OK);
return 0;
}
Комментариев нет:
Отправить комментарий