C# + Autohotkey.dll как использовать ahkGetVar?

204
18 февраля 2018, 23:59

Есть код для подключения AutoHotkey.dll:

AutoHotkey = NativeMethods.LoadLibrary(@"AutoHotkey_ANSI.dll");
AutoHotkeyDLL = (pAhkdll)Marshal.GetDelegateForFunctionPointer(NativeMethods.GetProcAddress(AutoHotkey, "ahkdll"), typeof(pAhkdll));
AutoHotkeyReady = (pAhkReady)Marshal.GetDelegateForFunctionPointer(NativeMethods.GetProcAddress(AutoHotkey, "ahkReady"), typeof(pAhkReady));
AutoHotkeyExec = (pAhkExec)Marshal.GetDelegateForFunctionPointer(NativeMethods.GetProcAddress(AutoHotkey, "ahkExec"), typeof(pAhkExec));
AutoHotkeyDLL("", "", "");
while (!AutoHotkeyReady())
    Thread.Sleep(10);
AutoHotkeyExec("MsgBox Hello World");

Допустим, я хочу использовать эту функцию:

AutoHotkeyExec("ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile");

И вытянуть значения OutputVarX и OutputVarY.

Каким образом мне это сделать? Я пробовал создавать функцию ahkGetVar подобно функциям выше:

[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate string pAhkGetVar(string var1, uint var2);
AutoHotkeyGetVar = (pAhkGetVar)Marshal.GetDelegateForFunctionPointer(NativeMethods.GetProcAddress(AutoHotkey, "ahkGetVar"), typeof(pAhkGetVar));

Затем, например, я вставляю:

AutoHotkeyExec("test := \"Some value\"");
AutoHotkeyGetVar("test", 0);

И программа просто вылетает (без ошибок, просто закрывается).

READ ALSO
Библиотеки для удобного ввода формул и ручного построения графиков

Библиотеки для удобного ввода формул и ручного построения графиков

Доброго времени сутокСтоит задача разработать обучающую компьютерную программу по физике для школьников

210
winForms в monodevelop

winForms в monodevelop

Переношу проект с# c windows на linuxпри попытке скомпилировать вылетает ошибка

194
c#, дырявые textBox

c#, дырявые textBox

пишу прогу в SharpDevelop и строю обычную нубскую форму с текстбоксами, кнопкой и лабелем, вроде как всё нормально потом после каких то движений...

173
Есть идеи для дипломной? [требует правки]

Есть идеи для дипломной? [требует правки]

Подкиньте идеи для дипломной работыВеб сервис (NodeJS + BD) или приложение на c#

172