Я пытаюсь прочитать stdout Windows CMD с помощью AutoHotkey. Например, я хотел бы получить вывод команды консоли set
внутри AHK, хранящейся в переменной. Я уже давно это сделал, и это еще более усугубляет меня, почему он сейчас не работает.
На форумах AHK есть old thread около CMDret, функциональность на основе DLL, чтобы делать именно то, что я хочу. Первая проблема заключалась в том, чтобы найти для нее рабочую загрузку, поскольку все ссылки в сообщении были мертвы. Google дал мне another site, хостинг v3.1.2. Altough кажется, есть более новый (v3.2.1 соответственно 4d Beta), я проверил его и апробирован простой пример:Capture CMD output with AutoHotkey
msgbox % CMDret(COMSPEC " /C set")
CMDret(CMD)
{
VarSetCapacity(StrOut, 10000)
RetVal := DllCall("cmdret.dll\RunReturn", "str", CMD, "str", StrOut)
Return, %StrOut%
}
К сожалению, MsgBox не было ничего. Затем я проверил RetVal
, который имел значение ; и прилагаемый readme говорит:
Если функция не работает, возвращаемое значение равно нулю.
Далее вниз, он говорит:
Примечание: только 32 бит консольных приложений будут в настоящее время работают с эту DLL версию CMDret (v3.1.2 или ниже). Вызовы, которые требуют command.com, скорее всего, не приведут к выходу и могут привести к сбою. Чтобы избежать , я включил файл с именем «cmdstub.exe» с загрузкой (в папке Win9x). Этот файл следует использовать при вызове 16 бит консольных приложений для включения возвращаемого вывода.
В заключение я не уверен, в чем проблема. Моя машина работает на 64 бит. Но есть ли соответствующее предложение в readme, которое должно исключать только 16-битные системы или же оно включает только 32 бит?
Если вычислительная архитектура, вероятно, не проблема, то что может быть?
То, что я ищу, либо один из следующих действий:
- Могу ли я решить эту проблему и продолжать использовать v3.1.2?
- У кого-нибудь есть рабочий источник (или даже локальная копия) более новой версии, которую я мог проверить?
- Есть ли другой подход [библиотека, код .ahk и т. Д.] Я мог бы использовать для своей цели? (Предпочтительно подобное, потому что CMDret кажется очень простой)
Эй! ;) вы все еще нуждаетесь в ответе? Я просто просматривал, и я нашел этот вопрос, это можно сделать полностью на ahk, я отправлю ответ, когда смогу ... Я в настоящее время путешествую ... –