PDA

Показать полную графическую версию : [решено] Диалог открытия файла + добавление текста в существующий лейбл


D_Master
13-02-2009, 19:27
Всем привет!

Имеется скрипт:
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Выбор картинки", 377, 110)
$ImgPath = GUICtrlCreateInput("", 120, 16, 161, 21)
$Button1 = GUICtrlCreateButton("Обзор...", 288, 13, 65, 25, 0)
$Label1 = GUICtrlCreateLabel("Выберите картинку", 8, 19, 103, 17)
$Button2 = GUICtrlCreateButton("Отправить", 144, 64, 81, 25, 0)
GUISetOnEvent($GUI_EVENT_CLOSE, "Close")
GUICtrlSetOnEvent($Button1, "GetImgPath")
GUICtrlSetOnEvent($Button2, "Submit")
GUISetState(@SW_SHOW)

While 1
Sleep(100)
WEnd

Func GetImgPath()
$imgFullPath = FileOpenDialog("Выберите картинку", @MyDocumentsDir, "Изображения (*.jpg;*.gif;*.png)", 1)
MsgBox(64, "Путь к картинке", $imgFullPath)
EndFunc

Func Submit()
Exit
EndFunc

Func Close()
Exit
EndFunc
При нажатии на кнопку "Обзор..." открывается окно выбора картинки. Как обычно в таком случае бывает, путь к картинке сразу же после выбора файла записывается в поле ввода. Как бы тут такое же реализовать?

Чтобы не плодить темы: запускаю второй au3-скрипт такой командой:
Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @ScriptDir & '\Video.au3"')
А как остановить выполнение второго скрипта?

Creat0R
13-02-2009, 19:53
Как обычно в таком случае бывает, путь к картинке сразу же после выбора файла записывается в поле ввода. Как бы тут такое же реализовать? »
Имеется в виду после нажатия на ОК? тогда через GUICtrlSetData($ImgPath, $ImgFullPath). Но перед этим нужно проверять небыла ли нажата кнопка «Отмена», чтобы не записалась пустая строка, т.е так: If Not @error Then GUICtrlSetData($ImgPath, $ImgFullPath)

Чтобы не плодить темы »
А по твоему лучше плодить оффтопик? :)

как остановить выполнение второго скрипта? »
Закрыть его процесс?

$iVideo_PID = Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @ScriptDir & '\Video.au3"')

;...

ProcessClose($iVideo_PID)

D_Master
13-02-2009, 20:11
Закрыть его процесс? »
Не получается :(

Creat0R
13-02-2009, 20:14
Не получается »
Что делает этот процесс (скрипт Video.au3)?

D_Master
13-02-2009, 20:15
Что делает этот процесс »
Это скрипт, приведенный в шапке :) Коряво просто обозвал имя скрипта :)

Creat0R
13-02-2009, 20:39
Это скрипт, приведенный в шапке »
А как он запускается, из самого скрипта? покажи полный пример того, как/где скрипт запускается и как убивается.

D_Master
13-02-2009, 20:43
Так и запускается :)
#NoTrayIcon
Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @ScriptDir & '\Video.au3"')
Sleep(5000)
$iVideo_PID = Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @ScriptDir & '\Video.au3"')
ProcessClose($iVideo_PID)

Creat0R
13-02-2009, 21:30
Так и запускается »
Так он же 2 раза запускается, зачем?

D_Master
13-02-2009, 22:16
Так он же 2 раза запускается, зачем? »
Ух ты, вот я дурак :) Я почему-то подумал, что $iVideo_PID получает ID процесса :) Разумеется, так всё работает:
#NoTrayIcon
$iVideo_PID = Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @ScriptDir & '\Video.au3"')
Sleep(5000)
ProcessClose($iVideo_PID)




© OSzone.net 2001-2012