Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для AZJIO

Старожил


Сообщения: 265
Благодарности: 126

Профиль | Отправить PM | Цитировать


Цитата Vadikan:
А зачем нужен этот разделитель? »
При вставке в комбо нативная функция GUICtrlCreateCombo использует разделитель данных, который не должен встречаться в самих строках иначе он будет расцениваться как разделитель, а не как текст. Даже если использовать функции из UDF, пример ниже
читать дальше »
Код: Выделить весь код
#include <GuiComboBox.au3>

Global $hCombo, $sText

$hGUI = GUICreate("(UDF) ComboBox Create", 450, 396)
$hCombo = GUICtrlCreateCombo("", 5, 4, 440, 296)
; $hCombo = GUICtrlGetHandle($iCombo)

$iDummy = GUICtrlCreateDummy()

Dim $AccelKeys[1][2] = [["{Enter}", $iDummy]]
GUISetAccelerators($AccelKeys)

GUISetState()

_GUICtrlComboBox_BeginUpdate($hCombo)
For $i = 1 To 10
    _GUICtrlComboBox_AddString($hCombo, $i & ' строка')
Next
_GUICtrlComboBox_EndUpdate($hCombo)

While 1
    Switch GUIGetMsg()
        Case $hCombo
            $iIndex = _GUICtrlComboBox_GetCurSel($hCombo)
            _GUICtrlComboBox_GetLBText($hCombo, $iIndex, $sText)
            _GUICtrlComboBox_DeleteString($hCombo, $iIndex)
            _GUICtrlComboBox_InsertString($hCombo, $sText, 0)
            _GUICtrlComboBox_SetCurSel($hCombo, 0)
        Case $iDummy
            $sText = _GUICtrlComboBox_GetEditText($hCombo)
            $iIndex = _GUICtrlComboBox_FindStringExact($hCombo, $sText)
            If $iIndex = -1 Then
                $iCount = _GUICtrlComboBox_GetCount($hCombo)
                If $iCount > 12 Then _GUICtrlComboBox_DeleteString($hCombo, $iCount - 1)
                _GUICtrlComboBox_InsertString($hCombo, $sText, 0)
            Else
                ; _GUICtrlComboBox_GetLBText($hCombo, $iIndex, $sText)
                _GUICtrlComboBox_DeleteString($hCombo, $iIndex)
                _GUICtrlComboBox_InsertString($hCombo, $sText, 0)
            EndIf
        Case -3
            Exit
    EndSwitch
WEnd

то всё равно желательно использовать какой либо символ разделителя (не из бинарных), чтобы записывать историю в реестр одной строкой. Вообщем пока нет желания изменять, так как случай маловероятный, 1 на 10000
Цитата:
Это что-то для гиков. Нужно быть проще
Нет, просто реестра допускает использование символа в названи раздела. Например в названии файлов запрещены символы ^/:*?"<>| значит я их могу использовать для разметки, делении строки на участки, символ можно удалить/заменить, при этом путь не пострадает. Просто редкий случай, а тестировать заново все функции нет желания, тем более в регулярных выражениях он используется закомментированным. То есть я уже сделал тестовый вариант и проверил, но как всегда утилитой нужно неделю пользоваться, чтоб быть уверенным.

Цитата:
Я считаю, что надо обходиться без сжатия UPX во избежание ложных срабатываний антивирусов.
Эту версию UPX вроде ни кто не ругал, отрицательных отзывов не было. На одном копьютере правда зонтик сработал при мне.

Цитата:
Предлагаю допилить текущий вариант, обновить посты по первым трем ссылкам в шапке и скомпилировать. После чего я соберу набор для софт-портала и обновлю там утилиту.
Что именно допилить? Если есть предложения по текстам или ещё что, меня на данном этапе устраивает. На счёт компиляции в принципе исходник содержит всё необходимое, но если что могу скомпилировать без UPX, а у себя я пока буду выкладывать пожатым. Единственное желательно компилировать используя AutoIt3Wrapper + Obfuscator, потому что я в предыдущих версиях выкладывал обфуцированный вариант, а теперь если не обфуцировать то размер exe-файла может заметно возрасти за счёт #include.
читать дальше »
#include <WindowsConstants.au3>
#include <ForJumpReg.au3>
#include <GUIConstantsEx.au3>
#include <File.au3>
#include <GuiComboBox.au3>
Обфускатор удалит неиспользуемые функции из UDF перед компиляцией их в файл.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:41, 29-05-2012 | #155