1

Тема: AHK: Создание QRCode

Всем привет! Давно меня тут не было.

Пытаюсь найти библиотеку для создания QR кодов.
Пока смог найти только эту.
Работает отлично, но нет поддержки юникода. Там предлагается решение, но не могу разобрать в чём оно заключается.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

2

Re: AHK: Создание QRCode

Привет, привет!
А онлайн вариант не подойдёт? Уже постил тут где-то:

len := QrGenerator("https://forum.script-coding.com/", pngData, 200)
FileOpen(A_ScriptDir . "\qr.png", "w").RawWrite(pngData, len)
Gui, Margin, 0, 0
Gui, Add, Pic,, % A_ScriptDir . "\qr.png"
Gui, Show
Return

GuiClose() {
   ExitApp
}

QrGenerator(text, ByRef pngData, qrSizePix := 300, correctionLevel := "M") {
; correctionLevel: L, M, Q, H
   static url := "https://chart.googleapis.com/chart?cht=qr"
   completeUrl := url . "&chl=" . EncodeDecodeURI(text) . "&chs=" . qrSizePix . "&chld=" . correctionLevel
   dataLen := WebRequest(completeUrl, pngData,,,, error := "")
   if (error != "")
      throw error
   Return dataLen
}

EncodeDecodeURI(str, encode := true, component := true) {
   static Doc, JS
   if !Doc {
      Doc := ComObjCreate("htmlfile")
      Doc.write("<meta http-equiv=""X-UA-Compatible"" content=""IE=9"">")
      JS := Doc.parentWindow
      ( Doc.documentMode < 9 && JS.execScript() )
   }
   Return JS[ (encode ? "en" : "de") . "codeURI" . (component ? "Component" : "") ](str)
}

WebRequest(url, ByRef data, method := "GET", HeadersArray := "", body := "", ByRef error := "") {
   Whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
   Whr.Open(method, url, true)
   for name, value in HeadersArray
      Whr.SetRequestHeader(name, value)
   Whr.Send(body)
   Whr.WaitForResponse()
   status := Whr.status
   if (status != 200)
      error := "HttpRequest error, status: " . status
   Arr := Whr.responseBody
   pData := NumGet(ComObjValue(arr) + 8 + A_PtrSize)
   length := Arr.MaxIndex() + 1
   VarSetCapacity(data, length, 0)
   DllCall("RtlMoveMemory", "Ptr", &data, "Ptr", pData, "Ptr", length)
   Return length
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Создание QRCode

Привет, спасибо!
Онлайн не надо. На офф форуме тоже есть.

Как и в большинстве случаев, пока тут тему не создам, не могу найти.
И вот через час наткнулся на quricol32.dll, работает нормально.
Но конечно если допилить на анк, было бы круто, там и подсказка есть.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Создание QRCode

Там, похоже много перелопатить придётся, надо глубоко разбираться. Функция CONVERT_TO_BYTE_ENCODING должна выглядеть как-то так:

MsgBox, % CONVERT_TO_BYTE_ENCODING("тест")

CONVERT_TO_BYTE_ENCODING(MESSAGE_TO_ENCODE) {
   Loop, parse, MESSAGE_TO_ENCODE
   {
      code := Asc(A_LoopField)
      MESSAGE_STRING .= Format("{:016}", ToBin(code))
   }
   Return MESSAGE_STRING
}

ToBin(Number)
{
   While Number
      bin := (Number&1 ? 1 : 0) . bin, Number >>= 1
   Return bin
}

Но без дополнительных изменений не будет работать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Создание QRCode

Да, ещё раз посмотрел, полная жуть.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6 (изменено: Malcev, 2022-07-08 19:35:13)

Re: AHK: Создание QRCode

+ открыть спойлер

serzh82saratov, привет!
Собираешься ли убирать баги в ahk spy?

7

Re: AHK: Создание QRCode

+ открыть спойлер

Malcev приветствую!
Пиши в теме, как время будет, если у тебя есть решения, то вообще хорошо.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui