Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Диалог открытия файла + добавление текста в существующий лейбл (http://forum.oszone.net/showthread.php?t=131917)

D_Master 13-02-2009 19:27 1037651

Диалог открытия файла + добавление текста в существующий лейбл
 
Всем привет!

Имеется скрипт:
Код:

#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 1037672

Цитата:

Цитата D_Master
Как обычно в таком случае бывает, путь к картинке сразу же после выбора файла записывается в поле ввода. Как бы тут такое же реализовать? »

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

Цитата:

Цитата D_Master
Чтобы не плодить темы »

А по твоему лучше плодить оффтопик? :)

Цитата:

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

Закрыть его процесс?

Код:

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

;...

ProcessClose($iVideo_PID)


D_Master 13-02-2009 20:11 1037689

Цитата:

Цитата Creat0R
Закрыть его процесс? »

Не получается :(

Creat0R 13-02-2009 20:14 1037692

Цитата:

Цитата D_Master
Не получается »

Что делает этот процесс (скрипт Video.au3)?

D_Master 13-02-2009 20:15 1037693

Цитата:

Цитата Creat0R
Что делает этот процесс »

Это скрипт, приведенный в шапке :) Коряво просто обозвал имя скрипта :)

Creat0R 13-02-2009 20:39 1037722

Цитата:

Цитата D_Master
Это скрипт, приведенный в шапке »

А как он запускается, из самого скрипта? покажи полный пример того, как/где скрипт запускается и как убивается.

D_Master 13-02-2009 20:43 1037727

Так и запускается :)
Код:

#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 1037774

Цитата:

Цитата D_Master
Так и запускается »

Так он же 2 раза запускается, зачем?

D_Master 13-02-2009 22:16 1037815

Цитата:

Цитата Creat0R
Так он же 2 раза запускается, зачем? »

Ух ты, вот я дурак :) Я почему-то подумал, что $iVideo_PID получает ID процесса :) Разумеется, так всё работает:
Код:

#NoTrayIcon
$iVideo_PID = Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @ScriptDir & '\Video.au3"')
Sleep(5000)
ProcessClose($iVideo_PID)



Время: 17:20.

Время: 17:20.
© OSzone.net 2001-