|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как задать действие для кнопки |
|
|
[решено] Как задать действие для кнопки
|
Ветеран Сообщения: 862 |
Профиль | Сайт | Отправить PM | Цитировать
Добрый день. Есть небольшой вопрос по синтаксису AutoIT. Создал форму: несколько лэйблов, несколько текстбоксов и одна кнопка. КАждому элементу (текстбоксы и кнопка) присвоил имена переменных. Вопрос в следующем: как можно сделать так, чтобы при нажатии на кнопку открывалася процесс cmd.exe (нужна ли ryjgrt в этом случае вообще переменная) и как можно передать команде SEND для командной строки текст, вводимый в текстбоксах (указываю "SEND("some text" & $myvar)", а в командной строке прописывается только текст до переменной и ID самой переменной). Можно ли вообще передать командной строке текст из текстбоксов?
Заранее спасибо за помощь P.S. С вызовом командной строки при нажатии на кнопку уже разобрался. Теперь помогите с обработкой текста в текстбоксах |
|
------- Отправлено: 17:26, 04-02-2009 |
Пользователь Сообщения: 67
|
Профиль | Отправить PM | Цитировать SEND(guictrlread($указатель_на_текстбокс) & $myvar)
|
------- Отправлено: 19:43, 04-02-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
D_Master
Сообщения: n/a |
Цитата DImaN!:
#include <GUIConstants.au3> #Region ### START Koda GUI section ### Form= Opt("GUIOnEventMode", 1) ; Подключаем режим OnEvent $Form1 = GUICreate("Form1", 249, 113) GUICtrlCreateInput("", 16, 16, 201, 21) $Checkbox1 = GUICtrlCreateCheckbox("Чекбокс", 16, 48, 105, 17) $Button1 = GUICtrlCreateButton("Кнопка", 16, 72, 73, 25, 0) GUISetOnEvent($GUI_EVENT_CLOSE, "Close") GUICtrlSetOnEvent($Button1, "RunCMD") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 Sleep(100) WEnd Func RunCMD() Run("cmd.exe") EndFunc Func Close() Exit EndFunc |
|
Отправлено: 22:26, 04-02-2009 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 22:31, 04-02-2009 | #4 |
Ветеран Сообщения: 862
|
Профиль | Сайт | Отправить PM | Цитировать Огромное спасибо за помощь!
Еще один наводящий вопрос.. Можно ли как-то запустить от имени администратора коммандную строку под ОС Windows Vista? Можно ли как-то сделать так, чтобы при нажатии на кнопку открытия командной строки (во время выполнения скрипта) все действия выполнялись только в командной строке и нельзя было перейти в другое прложение . Помогите пжл |
|
------- Последний раз редактировалось DImaN!, 05-02-2009 в 15:06. Отправлено: 11:19, 05-02-2009 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата DImaN!:
Цитата DImaN!:
|
||
------- Отправлено: 15:48, 05-02-2009 | #6 |
Ветеран Сообщения: 862
|
Профиль | Сайт | Отправить PM | Цитировать Для того, чтобы было нагляднее: мне нужно создать скрипт, который будет автоматом при помощи командной строки отправлять сообщения. ВОт код моего скрипта:
#include <GUIConstants.au3> #include <Date.au3> #RequireAdmin GUICreate("TelnetForm", 360, 490) GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) GUICtrlCreateTabItem("") GUICtrlCreateLabel("Программа для отправки писем при помощи Telnet", 50, 10) GUICtrlCreateLabel("POP Сервер", 5, 50) GUICtrlCreateLabel("Отправитель", 5, 80) GUICtrlCreateLabel("Получатель", 5, 110) GUICtrlCreateLabel("Тема письма", 5, 140) $srv = GUICtrlCreateInput ("", 105, 50, 250) $from = GUICtrlCreateInput ("", 105, 80, 250) $to = GUICtrlCreateInput ("", 105, 110, 250) $subj = GUICtrlCreateInput ("", 105, 140, 250) GUICtrlCreateLabel("Тело письма", 5, 190) $body = GUICtrlCreateEdit("", 20, 230, 320, 210, $ES_AUTOVSCROLL+$WS_VSCROLL) $button = GUICtrlCreateButton("Отправка сообщения", 105, 450) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $button ButtonClick() EndSwitch WEnd Func ButtonClick() Run("cmd.exe") ProcessWait("cmd.exe") SEND("telnet") SEND("{ENTER}") Sleep(200) $sRead = GUICtrlRead($srv) SEND("o " & $sRead & " 25") Sleep(200) Send("{ENTER}") Sleep(3000) SEND("HELO W" & "{ENTER}") $sRead2 = GUICtrlRead($from) SEND("MAIL FROM: " & "<" & $sRead2 & ">" & "{ENTER}") Sleep(300) $sRead3 = GUICtrlRead($to) SEND("RCPT TO: " & "<" & $sRead3 & ">" & "{ENTER}") Sleep(300) Send("DATA" & "{ENTER}") Sleep(300) SEND("From: " & "<" & $sRead2 & ">" & "{ENTER}") SEND("To: " & "<" & $sRead3 & ">" & "{ENTER}") $sRead5 = GUICtrlRead($subj) SEND("Subject: " & $sRead5 & "{ENTER}") $sShortDayName = _DateDayOfWeek( @WDAY, 1 ) $sNewDate = _DateAdd( 'n',0, _NowCalc()) SEND("Date: " & $sShortDayName & ", " & $sNewDate & " " & "{+}0200" & "{ENTER}") SEND("MIME-Version: 1.0" & "{ENTER}") SEND("Content-Language: ru") SEND("{ENTER}" & "{ENTER}") $sRead4 = GUICtrlRead($body) SEND($sRead4 & "{ENTER}") SEND("{ENTER}") SEND(".") SEND("{ENTER}") Sleep(200) SEND("quit" & "{ENTER}") Sleep(700) SEND("{ENTER}" & "{ENTER}") Sleep(1000) SEND("quit" & "{ENTER}") Sleep(500) SEND("exit" & "{ENTER}") endFunc |
------- Последний раз редактировалось DImaN!, 05-02-2009 в 16:08. Отправлено: 15:55, 05-02-2009 | #7 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата DImaN!:
P.S И вообще, все эти Send... это очень не надёжно, я бы делал всё через StdInWrite/Read и в скрытом положении, отображая данные в GUI (ведь как я понимаю, на то и был создан GUI для telnet ). |
|
------- Отправлено: 16:13, 05-02-2009 | #8 |
Ветеран Сообщения: 862
|
Профиль | Сайт | Отправить PM | Цитировать Спасибо, возможно переделаю используя StdInWrite/Read, но на данном этапе, все равно, после того, как поменял cmd.exe на telnet.exe открывается не окно телнета, а вторая копия программы. В чем может быть причина?
|
------- Последний раз редактировалось DImaN!, 05-02-2009 в 16:28. Отправлено: 16:17, 05-02-2009 | #9 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата DImaN!:
|
|
------- Отправлено: 16:29, 05-02-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Как задать программы (ассоциации файлов) по умолчанию? | Vadikan | Microsoft Windows 7 | 173 | 04-03-2023 01:34 | |
Debian/Ubuntu - Неправильно работает Numpad: кнопки '+50,' работают как кнопки мыши | Viktorr | Общий по Linux | 0 | 29-04-2009 20:40 | |
Интерфейс - [решено] Как задать разное разрешение экрана для разных юзеров в ХР? | sfes | Microsoft Windows 2000/XP | 15 | 06-09-2008 22:57 | |
назначить действие для файлов в firefox | graverman | Программное обеспечение Linux и FreeBSD | 1 | 26-11-2007 17:00 | |
[решено] Как назначить 2-м кнопкам на форме разное действие | vagner_HATE | Вебмастеру | 8 | 15-10-2007 17:03 |
|