Что нового

Программа шифрования

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
AZJIO
я выше приводил скрины. то есть при компиляции в х86 скин основной есть, а другие выбрать невозможно, так как меню интерфейса и языка пустые. при компиляции в х64 эти меню уже с содержанием, но нет основного стиля да и другие не назначаются. меню выбора языка работает - язык меняется. зато первая вкладка меню становится пустой.
вобщем, нужна доработка программы. не все пользуются системами х86. точнее большинство даже хр не пользуется. я про новые компы и ноуты.
 

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
joiner
Кривость была не в ModernMenuRaw.
OffTopic:
Нашёл ту тему http://autoit-script.ru/index.php/topic,5180.15.html
Можно продолжить.
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
AZJIO [?]
Кривость была не в ModernMenuRaw.
это я уже понял. проблема в применении стилей. они идут отдельными файлами. возможно включаемая dll не работает с х64


Добавлено:
Сообщение автоматически объединено:

покопался и нашел собственно баг - проблема с пустыми меню возникала из-за стиля Letter
достаточно в пустом окне стилей выбрать наугад строчку и стиль меняется. вместе с этим появляются названия стилей
 
Автор
MnM

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Программу обновил:
Обновление сказал(а):
  • Удалил всплывающие окна(Отпадение необходимости в avi файлах)
  • Заменил окна на статус бар с прогресс баром и текстом(Изменение размеров окна убрал из-за прогресс бара)
  • Установил другой стиль окна по умолчанию
  • Увеличил элементы в окне для ввода пароля
  • Исправил баг в команде "Скрыть\показать пароль"(установил элемент Edit из библиотеки, чтобы сработало изменение требуется произвести действия с полем пароля(ткнуть\ввести туда что ни будь))
Что не смог реализовать сказал(а):
  • Русско-английскую локализацию через файл()
Код:
$puth=@ScriptDir&"\language.lng"
FileWrite($puth,'')
IniWrite($puth,"Russian","Progress","Выполнение операции на: |Операция выполнена")
IniWrite($puth,"Russian","Edit","Здравствуйте, вам требуется сюда ввести ваши произвольные данные подготовленные вами для шифрования. Также вы можете бросить текстовый файл в это поле!")
IniWrite($puth,"Russian","Edit2","Здесь будут зашифрованные данные представленные в бинарном виде")
IniWrite($puth,"Russian","Menu","Меню|Открыть|Сохранить|Справка|Выход|Стили оформления")
IniWrite($puth,"Russian","Button","Расшифровать|Зашифровать|Выход|Открыть|Сохранить|Сгенерировать ключи|Стереть нормальные текстовые данные|Стереть зашифрованные бинарные данные")
IniWrite($puth,"Russian","CheckBox","Снять защиту на ключах и зашифорванных данных|Установить защиту")
IniWrite($puth,"Russian","TitleMsgBox","Внимание|Успех|Ошибка|Непредвиденная ошибка")
IniWrite($puth,"Russian","TextMsgBox","'Вы открыли файл через ассоциацию, следует указать файл ключа!'&@CRLF&'Нажмите Ок чтобы выбрать файл и Отмена чтобы выбрать позже'|"& _
				"Сгенерированы новые ключи|"& _
				"Вы не ввели пароль для шифрования\расшифрования|"& _
				"'Вы не сгенерировали ключи! программа не может шифровать без ключей и модуля'&@CRLF&'Сгенерируйте ключ и модуль'|"& _
				"Вы не ввели стандартные данные! программе нечего шифровать|"& _
				"Данные зашифрованы|"& _
				"Данные расшифрованы|"& _
				"'Для обеспечения дополнительной безопасности вам предлогается ввести собственный пароль!'&@CRLF&'Этот пароль потребуется для открытия файла, поэтому рекомендуется запомнить его!'|"& _
				"Файл сохранен|"& _
				"Файл с ключами открыт|"& _
				"Файл открыт|"& _
				"'Ключи не введены! программа не сможет расшифровать данные без ключей!'&@CRLF&'Если вы открывали данные через ассоциацию, нажмите кнопку Открыть для указания ключей'|"& _
				"Зашифрованных данных нет, программе нечего расшифровывать")
IniWrite($puth,"Russian","AviLabel","Пожалуйста подождите, идет расшифровка\зашифровка")
IniWrite($puth,"Russian","OpenSaveFile","Выбирите зашифрованный файл|Зашифрованные ключи|Введите имя сохраняемого файла|Зашифрованные файлы|Выбирите зашифрованный ключ")
IniWrite($puth,"Russian","LanguageMenu","Язык интерфейса")
IniWrite($puth,"Russian","Group","Стандартные текстовые данные|Зашифрованные бинарные данные")
IniWrite($puth,"Russian","GUIpassText","Пароль|Введите пароль|Выйти из программы|Показать пароль|Скрыть пароль")
IniWrite($puth,"Russian","Context","Копировать|Вставить|Удалить|Выделить все")
#cs
----------------------------------------------------------------------------------------------------------------------
Select Language Text
#ce
IniWrite($puth,"English","Progress", "The operation on: |Operation completed")
IniWrite($puth,"English","Edit", "Hello, here you need to enter your custom data you have prepared for encryption. Alternatively, you can drop a text file in this field!")
IniWrite($puth,"English","Edit2", "Here, the encrypted data will be presented in the form of a binary")
IniWrite($puth,"English","Menu","Menu|Open|Save|Help|Exit|Style")
IniWrite($puth,"English","Button","Decrypt|Encrypt|Exit|Open|Save|Generate key|Delete normal text data|Delete encrypt binaty data")
IniWrite($puth,"English","CheckBox","Remove protection for keys and data crypt|Set protect")
IniWrite($puth,"English","TitleMsgBox","Caution|Sucess|Error|Unexpected error")
IniWrite($puth,"English","TextMsgBox","'You have opened a file through an association, you must specify the key file!'&@CRLF&'Press OK to select the file, or Cancel to choose later'|" & _
				"Generate new keys|" & _
				"You did not enter a password for encryption \ decryption|" & _
				"'You do not have generated the keys! Program can encrypt without the keys and the module'&@CRLF&'Generate the key and the module'|" & _
				"You have not entered the standard data! Nothing to encrypt program|" & _
				"The data is encrypted|" & _
				"The data decoded|" & _
				"'For extra security, offers you to enter your own password!'&@CRLF&'This password is required to open the file, so it is advisable to remember it!'|" & _
				"The file is saved|" & _
				"The file is opened with keys|" & _
				"File open|" & _
				"'The key is not entered! Program will not be able to decrypt the data without the keys!'&@CRLF&'If you open the data through the association, click the Open button to specify the key'|" & _
				"The encrypted data is not present, the program has nothing to decrypt")
IniWrite($puth,"English","AviLabel","Please wait, decrypt \ encryption")
IniWrite($puth,"English","OpenSaveFile","Please select an encrypted file|Encrypted keys|Enter the name of the file to be saved|Encrypted files|Select the encrypted key")
IniWrite($puth,"English","LanguageMenu","Language interface")
IniWrite($puth,"English","Group","Standart text data|Crypt binary data")
IniWrite($puth,"English","GUIpassText","Password|Enter Password|Exit from programm|Show password|Hide password")
IniWrite($puth,"English","Context","Copy|Set|Delete|Select all")
EXE(x86);EXE(x64);AU3(Пока что только чистый исходник(без Include и ресурсов, потому что в основном почти одинаково))
EXE - portable(без установщика, исчезновение ассоциаци с файлами)
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
стиль Letter все также глючит. пустые вкладки меню. остальные стили работают как надо
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
поставь по умолчанию другой стиль. а этот пометь, что работает только на ХР..пока не разберешься в проблеме.
 

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
MnM
1. Можно проверить @OSVersion и в зависимости от этого разруливать со стилями и прочими несовместимостями.
2. MnM [?]
Что не смог реализовать
я же дал лучшую наработку, то что ты пробуешь я это уже проходил. Объясняю: Ты хочешь в один файл внести все языки, теперь посмотри как делают в других программах. Обычно около EXE-файла есть папка Lang и в ней файлы Ru.lng. Я например сразу удаляю лишние файлы оставляя свой язык или по принципу скачать свой языковой файл, или по принципу при установке выбрать какие языки извлечь. Английский встроен, поэтому достаточно извлечь свой язык. Кроме того в коллекции языков англ. яз. должен быть отдельным файлом ради возможности его править под себя или использовать как шаблон другого языка.
Далее внутри ini-файла конструкция "Progress=Выполнение операции на: |Операция выполнена", по сути именованный параметр "Progress" никакой полезности не несёт, потому что значение параметра (Выполнение операции на: |Операция выполнена) определяет его назначение, в крайнем случае можно вставить комментарии в ini для групп, например:
; Здесь тексты для окна прогресса.
Какие проблемы несут именованные параметры: их придётся считывать по именам, а если и в скрипте создавать именованные переменные с помощью Assign то добавится проблемы с обфускацией, придётся писать исключения на переменные, а на Assign выдача предупреждений, и смотреть записку при компиляции что данный исходник должен выдать 3 предупреждения, это чтобы контролировать себя и не напрягаться опять просматривать эти предупреждения.
Тот способ что я предложил не имеет проблем, так как нумерованные параметры являются индексами массива, а массив в отличии от Assign при обфускации не создаёт проблем. Нарушить массив не удастся потому что номера индексов сверяются по размерности внутреннего массива, то есть лишка или недостаток не скажутся ни как, лишка игнорируется, а недостаток остаётся внутренним языком, просто недопереведутся фразы и будут английскими.
Именованные переменные в сокращенном виде всё равно не являются понятными, а если указывать полное имя, то слишком длинные, а скрипт с длинными переменными интерпретируется дольше. И если уж так важно по скрипту иметь представление что находится в неименованной переменной, то есть элемент массива типа $aLang[4], то её содержимое можно прокомментировать в этой же строке и будет также читабельный скрипт, а комментарии в скомпилированный скрипт не попадают.
 
Автор
MnM

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Обновление сказал(а):
  • Добавил локализацию из ini файлов(вылезают при запуске, но можно и редактировать)(Спасибо AZJIO)
  • Удалил текст из RichEdit элементов, причина: многовато было действий для них
  • Установил ToolTip для скина Letter(Появится в меню при наведении)
  • Исправил появление значка который имел иконку программы, теперь в трее появляется только та иконка которая требуется
Ссылки: EXE(x86); EXE(x64); AU3
OffTopic:
Снова выложил на www.box.com потому что показалось сложным сохранять файлы тут, в прошлый раз не разобравшись вообще закинул в зону тестирования :smile:
 

xklx

Новичок
Сообщения
50
Репутация
3
из ru.lng
5=Выбирите зашифрованный файл|Зашифрованные ключи|Введите имя сохраняемого файла|Зашифрованные файлы|Выбирите зашифрованный ключ

В меню выбора файлов правый вертикальный бегунок почему-то не работает(работает только без стиля окна), только стрелочками перемещается.

В окне ввода пароля при сохранении файла там есть показать/скрыть пароль, так вот он скрывается/показывается только после того как фокус переместишь на строку ввода.
 
Автор
MnM

MnM

Post-Hardcore
Сообщения
679
Репутация
90
xklx сказал(а):
Ну так выбирать не одно и тоже=) если хотите можете поправить(Пока файл существует программа его не заменит родным)
xklx сказал(а):
вертикальный бегунок не работает
Да, в некоторых стилях некоторые элементы отсутствуют. Не я делал стили поэтому не могу поправить.
xklx сказал(а):
В окне ввода пароля при сохранении файла там есть показать/скрыть пароль, так вот он скрывается/показывается только после того как фокус переместишь на строку ввода.
Поправил(Использовалась функция API для смены отображаемых символов)
  • Изменил функцию для смены отображаемых символов в поле для пароля
  • Добавил функцию поиска файлов .lng в папке Lang(Добавил к файлам ресурсов файл локализации немецкого языка(За правильность перевода не отвечаю, все делал google :smile:), что бы проверить функцию поиска.)
  • Добавил функцию поиска файлов .skf(Стили) в папке Skin
  • Прилепил к файлам ресурсов скриптик для изменения данных в файлах имеющих структуру .ini(Интерфейс наверное не очень будет понятен особенно в разделеителях, но думаю как нибудь можно будет редактировать более быстрей нежели самим ковыряться в них)
  • Добавил функцию сворачивания окна(через системную кнопку) при расшивровке\зашифровке\открытия\сохранения что бы можно было работать с другими делами, по окончании работы иконка трея выведет оповещение)(Сворачивает даже при работе каких либо функций)
 

xklx

Новичок
Сообщения
50
Репутация
3

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
InnaS, к чему на всем форуме поднимать старые темы?
 
Верх