Что нового

Запуск .bat скриптов из экзешника

paulomyaulo

Новичок
Сообщения
5
Репутация
0
Версия AutoIt: 3.3.12.0

Описание:
Запуск .bat скриптов из приложения

Примечания:
Суть такова. Запускаем .exe - там окно, например с 10 подписанными кнопками.
Нужно чтобы при нажатии определенной кнопки запускался нужный скрипт .bat (Если это можно скомпилировать без внешних файлов - то тоже пойдет).

Вот нашел как окно создать

[box title=Окно с кнопками]
Код:
#include <GUIConstantsEx.au3>

$hGUI = GUICreate("GUI с кнопкой", 140, 480) ; Создаёт окно

$Button_1 = GUICtrlCreateButton("Кнопка 1", 10, 10, 120, 25)
$Button_2 = GUICtrlCreateButton("Кнопка 2", 10, 40, 120, 25) ;  координаты
$Button_1 = GUICtrlCreateButton("Кнопка 3", 10, 70, 120, 25)
$Button_2 = GUICtrlCreateButton("Кнопка 4", 10, 100, 120, 25)
$Button_2 = GUICtrlCreateButton("Кнопка 5", 10, 130, 120, 25)
$Button_2 = GUICtrlCreateButton("Кнопка 6", 10, 160, 120, 25)

GUISetState() ; показывает созданное окно

; Запускается цикл опроса GUI
While 1
     Switch GUIGetMsg()
         Case $GUI_EVENT_CLOSE
             ExitLoop
         Case $Button_1
             MsgBox(0,""," Нажата кнопка 1")
             ;Код для кнопки
         Case $Button_2
             MsgBox(0,""," Нажата кнопка 2")
             ;Код для кнопки
     EndSwitch
WEnd
[/box]

Теперь нужен запуск по нажатию

Используйте для AutoIt кода тег [autoit]
autoit.gif

madmasles.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
#Include <GUIConstants.au3>

Global $ID, $Button[10]

GUICreate('MyGUI', 130, 334)
For $i = 0 To 9
	$Button[$i] = GUICtrlCreateButton('Button ' & $i, 20, 20 + 30 * $i, 90, 24)
Next
GUISetState()

While 1
	$ID = GUIGetMsg()
	Switch $ID
		Case 0
			ContinueLoop
		Case $GUI_EVENT_CLOSE
			Exit
		Case Else
			For $i = 0 To 9
				If $ID = $Button[$i] Then
					ConsoleWrite('Запуск .bat файла ' & $i & @CRLF)
;					ShellExecute(...)
					ExitLoop
				EndIf
			Next
	EndSwitch

WEnd
 
Автор
P

paulomyaulo

Новичок
Сообщения
5
Репутация
0
почти, только нужны уникальные названия кнопок - типа Москва Солома)
на счет тега понял!
а вот как свои батники для каждой кнопки указать - не понял(((
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
#Include <GUIConstants.au3>

Global $ID
Global $Button[10][3] = [ _
		[0, 'Абакан',          'Абакан.bat'], _
		[0, 'Архангельск',     'Архангельск.bat'], _
		[0, 'Барнаул',         'Барнаул.bat'], _
		[0, 'Брянск',          'Брянск.bat'], _
		[0, 'Волгоград',       'Волгоград.bat'], _
		[0, 'Казань',          'Казань.bat'], _
		[0, 'Москва',          'Москва.bat'], _
		[0, 'Новосибирск',     'Новосибирск.bat'], _
		[0, 'Оренбург',        'Оренбург.bat'], _
		[0, 'Санкт-Петербург', 'Санкт-Петербург.bat']  _
		]

GUICreate('MyGUI', 170, 334)
For $i = 0 To 9
    $Button[$i][0] = GUICtrlCreateButton($Button[$i][1], 20, 20 + 30 * $i, 130, 24)
Next
GUISetState()

While 1
    $ID = GUIGetMsg()
    Switch $ID
        Case 0
            ContinueLoop
        Case $GUI_EVENT_CLOSE
            Exit
        Case Else
            For $i = 0 To 9
                If $ID = $Button[$i][0] Then
                   ShellExecute($Button[$i][2])
                    ExitLoop
                EndIf
            Next
    EndSwitch

WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
paulomyaulo,
[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Автор
P

paulomyaulo

Новичок
Сообщения
5
Репутация
0
И ещё, если есть время у вас, ребята. Такой момент.

Например, нужно чтобы при нажатии (одной) кнопки определенный текст (из скомпилированного .exe) копировался в определенный файл с заменой того текста который есть там.
Как батником и повершелом сделать знаю, а тут пока затык))

Заранее спасибо
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
paulomyaulo,
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


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