Цитата 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 перед компиляцией их в файл.