Что нового

Создание скрипта с GUICtrlCreateInput и GUICtrlCreateCheckbox

Detre

Новичок
Сообщения
70
Репутация
0
Всем привет) Проблема такова, мне очень нужно сделать программку с полем введения хоста и с возможностью выбрать операции, которые необходимо произвести. Образец скорее как шаблонный, просто не совсем понимаю как это можно объединить. Пробовал найти нечто идентичное, но к сожалению остался ни с чем. Очень прошу вашей помощи)Всем хорошего времяпровождения)
Код:
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <ButtonConstants.au3>
#RequireAdmin
#NoTrayIcon

;Все что написано, посде ";" явлется комментарием и ни как не влияет на работу скрипта.

Global $rMyName, $rHostName, $Chack1 = False ;объявляем переменные, которые будут использоваться в цикле

$Main = GUICreate('Script', 362, 128, 318, 213) ;рисуем главное окно
GUISetBkColor(0x000000)
$iHostName = GUICtrlCreateInput("", 80, 50, 242, 21) ; создаем поле ввода для имени пк
$iConnect = GUICtrlCreateButton("GO", 28, 80, 267, 33, $BS_DEFPUSHBUTTON) ;создаем кнопку подключения
GUICtrlSetFont(-1, 8, 800, 0, "Tahoma") ;задаем стиль элементу выше
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x545454)
GUICtrlSetFont(-1, 8, 800, 0, "Tahoma") ;задаем стиль элементу выше
$Checkbox1 = GUICtrlCreateCheckbox("", 8, 25, 12, 12)
$Checkbox2 = GUICtrlCreateCheckbox("", 8, 55, 12, 12)
GUICtrlCreateLabel     ("SetBat", 28, 25, 32, 16)
GUICtrlSetColor        (-1, 0xffffff)
GUICtrlSetBkColor    (-1, 0x000000)
GUICtrlCreateLabel     ("HOST", 295, 35, 30, 11)
GUICtrlSetColor        (-1, 0xffffff)
GUICtrlSetBkColor    (-1, 0x000000)
GUICtrlCreateLabel     ("PING", 28, 55, 30, 14)
GUICtrlSetColor        (-1, 0xffffff)
GUICtrlSetBkColor    (-1, 0x000000)

GUISetState(@SW_SHOW)



While 1 ;создаем цикл, который работает постоянно и отслеживает нажатие кнопок
   Switch GUIGetMsg()
      Case $GUI_EVENT_CLOSE ;нажатие на "крестик"
         ExitLoop ;выходит из цикла и закрывает окно
      Case $iConnect ; нажиматие нашей единственной кнопки
         $rHostName = GUICtrlRead($iHostName) ;считывает поле ввода HostName, в переменную
            If $rHostName = "" Then ;защита от пустого поля логина
               MsgBox(16+8192+262144,"Error","Поле HostName - пустое")
            Else
                _hide() ;отключает все элементы ввода и кнопку
                RunWait(@ComSpec & ' /c C:\Windows\System32\Ping.exe ' & $rHostName & ' -t')
                RunWait(@ComSpec & ' /c \\' & $rHostName & '\C$\TestBat.cmd')
                _show() ;включает все элементы ввода и кнопку
         EndIf
   EndSwitch
WEnd

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Checkbox1
            If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
                $Chack1 = True
            Else
                $Chack1 = False
            EndIf
        Case $Checkbox1
            If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
                $Chack2 = True
            Else
                $Chack2 = False
            EndIf
        Case $iConnect
            If $Chack1 Then _1()
            If (Not $Chack1) And (Not $Chack2)
            Exit
            EndIf
    EndSwitch
WEnd
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
сколько операций? что за операции - команды, запросы и так далее
 
Автор
Detre

Detre

Новичок
Сообщения
70
Репутация
0
сколько операций? что за операции - команды, запросы и так далее
1)Пинг хоста($Checkbox1) по адресу ($rHostName)
2)Запуск батника с другого компа ($Checkbox2) по адресу ($rHostName)
Нужно сделать так, чтобы можно было выбрать одну из этих команд либо их одновременно по одному и тому же адресу, который будет указан в строке.
RunWait(@ComSpec & ' /c C:\Windows\System32\Ping.exe ' & $rHostName & ' -t')
RunWait(@ComSpec & ' /c \\' & $rHostName & '\C$\TestBat.cmd')
 
Последнее редактирование:

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Можно использовать нативную функцию
Код:
Ping

судя по ключу -t пинг будет постоянным, значит вторая функция не запустится
 
Автор
Detre

Detre

Новичок
Сообщения
70
Репутация
0
Можно использовать нативную функцию
Код:
Ping

судя по ключу -t пинг будет постоянным, значит вторая функция не запустится
Доброго утра,друже).Поясняю ещё раз,возможно я неправильно объяснил.
Мне нужны две галки и строка ввода,чтобы я мог выбрать какую из команд(checkbox) я хочу применить к хосту(input).На код не смотри,я знаю,что он не сработает,иначе и след мой здесь простыл.Построим пример по другому.У меня есть два батника,на разных шАрах.Запустив прогу я хочу выбрать из какой шАры я хочу применить батник(либо с 1 либо со 2 или оба)
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
в пример можно подставить свои команды или функции запуска
Код:
#include <GUIConstantsEx.au3>

Local $Form1 = GUICreate("Form1", 392, 149, 399, 202)
Local $Input1 = GUICtrlCreateInput("", 8, 8, 265, 21)
Local $Label1 = GUICtrlCreateLabel("Host", 280, 8, 92, 17)
Local $Checkbox1 = GUICtrlCreateCheckbox("Ping", 8, 40, 193, 17)
Local $Checkbox2 = GUICtrlCreateCheckbox("Start bat", 8, 72, 193, 17)
Local $Button1 = GUICtrlCreateButton("Button1", 8, 104, 75, 25)
GUISetState()
Local $rHostName

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            $rHostName = GUICtrlRead($Input1)
            If $rHostName <> '' Then
                If GUICtrlRead($Checkbox1) = 1 And GUICtrlRead($Checkbox2) = 1 Then ;отмечены оба чекбокса
                    RunWait(@ComSpec & ' /c C:\Windows\System32\Ping.exe ' & $rHostName & ' -t')
                    RunWait(@ComSpec & ' /c \\' & $rHostName & '\C$\TestBat.cmd')
                ElseIf GUICtrlRead($Checkbox1) = 1 And GUICtrlRead($Checkbox2) = 4 Then; отмечен только первый
                    RunWait(@ComSpec & ' /c C:\Windows\System32\Ping.exe ' & $rHostName & ' -t')
                ElseIf GUICtrlRead($Checkbox1) = 4 And GUICtrlRead($Checkbox2) = 1 Then; отмечен только второй
                    RunWait(@ComSpec & ' /c \\' & $rHostName & '\C$\TestBat.cmd')
                EndIf
            EndIf
    EndSwitch
WEnd
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Код:
Case $Button1
    $rHostName = GUICtrlRead($Input1)
    If $rHostName Then
        $Ch1 = GUICtrlRead($Checkbox1)
        $Ch2 = GUICtrlRead($Checkbox2)
        If $Ch1 = 1 Then RunWait(@ComSpec & ' /c C:\Windows\System32\Ping.exe ' & $rHostName & ' -t')
        If $Ch2 = 1 Then RunWait(@ComSpec & ' /c \\' & $rHostName & '\C$\TestBat.cmd')
    EndIf
 
Автор
Detre

Detre

Новичок
Сообщения
70
Репутация
0
Низкий вам всем поклон)
 
Верх