Что нового

Фильтрация символа в GUICtrlCreateButton при работе скомпилированного скрипта

autoall

Новичок
Сообщения
21
Репутация
0
Демонстрирующий пример:

Код:
Opt('GUIOnEventMode', 1)

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>

$par_max = 100
Local $param[$par_max][$par_max]

$param[0][0] = 2
$param[0][1] = "Notepad"
$param[1][1] = "notepad.exe"
$param[0][2] = "CALC A & B"
$param[1][2] = "c:\A&B\calc.exe"

HotKeySet("{ESC}", "fn_Exit")

$but = 1
$but_max = $param[0][0]
Local $Button[$but_max+1]

GUICreate("ProgPanel 1.0", 160, 60*($but_max+1))

While $but <= $but_max
    GUICtrlCreateIcon($param[1][$but], 0, 10, 10*$but + 40*($but-1), 32, 32)
    $Button[$but] = GUICtrlCreateButton($param[0][$but], 50, 10*$but + 40*($but-1), 100, 32)
    GUICtrlSetOnEvent(-1, "fn_Run")
    $but = $but + 1
WEnd

$Button[0] = GUICtrlCreateButton("Выход", 10, 10*($but) + 50*($but-1), 140, 32)
GUICtrlSetOnEvent(-1, "fn_Exit")

GUISetOnEvent(-3, "fn_Exit")
GUISetState()

While 1
    Sleep(10000)
WEnd

Func fn_Run()
    for $i = 0 to $but_max
        if (@GUI_CtrlId = $Button[$i]) then
            Run($param[1][$i])
        endif
    next
EndFunc

Func fn_Exit()
    Exit
EndFunc


1) Запускаем вышеприведенный скрипт. Вместо надписи "CALC A & B" на кнопке видим "CALC A _B". Результат ожидаем.
2) Компилируем скрипт с настройками комилятора по умолчанию. Запускаем полученный exe. Вместо надписи "CALC A & B" на кнопке видим "CALC A B". Подчеркивания нет!

Парметры среды эксперимента:
AutoIt 3.3.12.0
SCiTE 3.4.1
Windows 8.1 x64 (так же проверено на Windows 7 x86).
 
Верх