Что нового

Запись значенения при выборе его в chetbox

Статус
Закрыто для дальнейших ответов.

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Ребят подскажите как реализовать следущее:
Есть скрипт с GUI в котором 3 chetbox'a, необходимо сделать так что бы при нажатии одного из них или всех выполнялся код например эти:
Код:
FileWrite($abri, StringToBinary("Пример-1"))
Код:
FileWrite($abri, StringToBinary("Пример-2"))
Код:
FileWrite($abri, StringToBinary("Пример-3"))

Тоесть фактически нужно назначить каждой строчки свой chetbox. если нечего не выбрано то данный строк как бы нет в скрипте а если выбрали то стал активен.



Пример:
Код:
Func Encrypt()  
If GuiCtrlRead($Input1) = "" Then Return    

$Document= FileOpen(@ScriptDir & "\Document.exe", 16) 
$File = FileOpen(GuiCtrlRead($Input1), 16) 

$s = FileRead($Document)
$f = FileRead($File)

$f = _RC4($f, "0oK0hFQ8dkuh92SDGZqy9WrzFIiUo3G5Q")

$abri = FileOpen(FileSaveDialog("Сохранить как...", @DesktopDir, "Расширение(*.doc)") & ".doc", 18)

FileWrite($abri, $s)
FileWrite($abri, StringToBinary("Fociranazy-Nufiladiza-Nizyxoqove"))
FileWrite($abri, $f)

FileWrite($abri, StringToBinary("пример-1")) // при выборе первого chetbox

FileWrite($abri, StringToBinary("пример-2")) // при выборе второго chetbox

FileWrite($abri, StringToBinary("пример-3")) // при выборе третьего chetbox

MsgBox(64, "Готово", "Успешно зашифровано!") 
EndFunc


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

Как я понял нужно что-то типа этого:

If GUICtrlRead ($Checkbox1) = $GUI_CHECKED Then
FileWrite($abri, StringToBinary("Пример-1"))
EndIf

но не работает.
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
xDESTROYx сказал(а):
Как я понял нужно что-то типа этого:
Если вам требуется выполнять эти функции по факту нажатия(и как я понял по условию последнему - установленной галочки), то вам нужно вывести эти условия:
Код:
If GUICtrlRead ($Checkbox1) = $GUI_CHECKED Then
FileWrite($abri, StringToBinary("Пример-1"))
EndIf

Из функции Encrypt в цикл на роверку нажатий\реагирования элементов(попросту в условие GUIGetMsg)
Лучше вам изменить тэги в которых вы держите код с [соде][/соде] на [аутоит][/аутоит]
OffTopic:
Корпорация Microsoft начала отказываться от алгоритма RC4 рекомендуя переходить на пока что более криптостойкие
 
Автор
xDESTROYx

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Предположим:
- Есть скрипт с GUI, в нем три checkboxa.
- В скрипте есть 3 функции которые активируються при нажатии только сheckboxa заданого именно этой функции.
- Если же нечего не выбранно то функции не используються.
-----------------
Код:
If GUICtrlRead ($Checkbox1) = $GUI_CHECKED Then
FileWrite($abri, StringToBinary("Пример-1"))
EndIf
Данный код не работает.
Без этого
Код:
Opt("GuiOnEventMode", 1)
работает.


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

Насчет RC4, что посоветуете? XOR - ?
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
:rofl:ESTROYx
Что то с утра смутно понимаю, может так в виде примера
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 295, 66, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 24, 16, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 24, 40, 97, 17)
$Button1 = GUICtrlCreateButton("Написать в консоль", 136, 16, 115, 25)
GUISetState(@SW_SHOW)
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $Button1
			__Function()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
Func __Function()
	ConsoleWrite("start---------" & @LF)
	If BitAND(GUICtrlRead($Checkbox1),$gui_checked)=$gui_checked Then
		ConsoleWrite("CheckBox1" & @LF)
	EndIf
	If BitAND(GUICtrlRead($Checkbox2),$gui_checked)=$gui_checked Then
		ConsoleWrite("CheckBox2" & @LF)
	EndIf
	ConsoleWrite("End-----------" & @LF&@LF)
EndFunc


:rofl:ESTROYx
Насчет RC4, что посоветуете? XOR - ?
AES-256, 3DES FuncCrypt
 
Автор
xDESTROYx

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Спасибо, реализовал но немного подругому.
И тут снова проблема можно ли как то значение которое присваиваеться при выборе Checkbox
вывести в другое место в скрипте?

Код:
Func Checkbox()
    If BitAND(GUICtrlRead($Checkbox1),$gui_checked)=$gui_checked Then
     Отсюда берем текст
	EndIf
EndFunc


Код:
FileWrite($abri, $s)
FileWrite($abri, StringToBinary("Сюда вставляем"))
FileWrite($abri, $f)


        MsgBox(64, "Red faction", "Успешно зашифровано!")
    EndIf

FileClose($Stub)
fileclose($File)
Fileclose($abri)


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

Хотя нет не то...

Функцию в функцию не вставиш...

нужно вот это:
Код:
Func Checkbox()
    If BitAND(GUICtrlRead($Checkbox1),$gui_checked)=$gui_checked Then
     FileWrite($abri, StringToBinary("Fociranazy-Nufiladiza-Nizyxoqove"))
   EndIf
EndFunc


Func Encrypt()
If GuiCtrlRead($Input1) = "" Then Return

$Document= FileOpen(@ScriptDir & "\Document.exe", 16)
$File = FileOpen(GuiCtrlRead($Input1), 16)

$s = FileRead($Document)
$f = FileRead($File)

$f = _RC4($f, "0oK0hFQ8dkuh92SDGZqy9WrzFIiUo3G5Q")

$abri = FileOpen(FileSaveDialog("Сохранить как...", @DesktopDir, "Расширение(*.doc)") & ".doc", 18)

FileWrite($abri, $s)
вставить сюда
FileWrite($abri, $f)

MsgBox(64, "Готово", "Успешно зашифровано!")
EndFunc


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

Но так как и то и то являеться функцией я в замещательстве....
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
:rofl:ESTROYx

Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
:rofl:ESTROYx,
Тему закрыть?
 
Автор
xDESTROYx

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Да закрывайте, решения так и не нашел.
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
xDESTROYx сказал(а):
Да закрывайте, решения так и не нашел.
Зря, форумчане бы помогли. Просто они ждут пока вы исправите ваши сообщения в соответствии с предупреждениями
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
:rofl:ESTROYx,
Раз Вы игнорируете предупреждение, тема закрыта.
 
Статус
Закрыто для дальнейших ответов.
Верх