Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Sanja Alone

Цитата:
Можешь еще попробовать побороться с буфером обмена
Как не странно, но к такому (подбному) решению я пришёл до затеи использовать параметры командной строки, для записи текста в файл - в скрипте я писал так:

Код: Выделить весь код
$Text = ClipGet()

If $CmdLine[0] <> 0 Then

$Url = $CmdLine[1]

FileWrite(@ScriptDir & "\File.txt", "Скопированный текст: " & $Text & @CRLF & "Текст скопирован с документа: " & $Url)

EndIf
А команду в браузере писал так:

Код: Выделить весь код
Copy & Execute program, "Script.exe", "%u"
Таким образом, до вызова самого скрипта, выделенный текст в документе, помещается в буффер обмена, и скрипт “берёт” из буффера полный текст в переменную, и вписывает в файл. Это решение в принципе не имеет проблем, но причина по которой я хотел узнать как передавать два значения (ключа) скрипту, являлась обходом помещения текста в буффер обмена, т.е чтобы не занимать лишни раз буффер обмена.

Ещё раз спасибо за помощь!
-------------------------------------

У меня тут появилась проблема с другой сферы...

Я сделал немного примитивный (пробный) гуи интерфейс (см. код ниже), и есть пару вопросов по этому поводу:

А) Как можно сделать, чтобы после зажатия галки у надписи “Опция”, окно (MsgBox) появлялось только после зажатия, а не каждый раз. Т.е в данный момент, если я зажму галку, то сообщение появляется, если отожму, то тоже появляется - как сделать чтобы появлялось только после зажатия?

Б) У меня в гуи (GUI), есть две кнопки (кроме прочих) - Одна для отмечивания всех галок ("Выбрать все"), а другая для их снятия ("Очистить все") - Вопрос: Как сделать чтобы была такая одна кнопка, а ещё лучше тоже чекбокс, после нажатия которого\ой, выделялись бы все чекбоксы, а если отжать эту\от кнопку\чекбокс, то чтобы также и отжимались все остальные чекбоксы?

Г) Это самая большая прблема, и она у меня имеет наивысшый приоритет для решения - Я поместил в гуи прогресс бар (progressbar), и хотел бы добиться такого результата, чтобы в то время, как происходит копирование определённых файлов, этот прогресс бар был задйствован. Т.е если я копирую например большой файл (фильм к примеру), то чтобы пока он копировался, ползунок бегал в прогрес баре. Мне в принципе не нужно чтобы происходил там какого то рода подсчёт размера файла (хотя думаю в этом и заключается достижение моей задачки), и на основе чего и делался прогресс, а чтобы просто было видно что копирование в прогрессе (и не важно в каком этапе оно находится ).

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


Скрипт:

Код: Выделить весь код
#include <GUIConstants.au3>

$Form1 = GUICreate("Test", 450, 370, 214, 126)

$Opt = GUICtrlCreateCheckbox("Опция", 230, 50, 300, 20)

$File = GUICtrlCreateCheckbox("Файл", 70, 50, 97, 17)
$Edit = GUICtrlCreateCheckbox("Правка", 70, 70, 97, 17)
$View = GUICtrlCreateCheckbox("Вид", 70, 95, 97, 17)
$Bookmarks = GUICtrlCreateCheckbox("Закладки", 70, 120, 97, 17)
$Session = GUICtrlCreateCheckbox("Сеансы", 70, 145, 97, 17)

$progressbar1 = GUICtrlCreateProgress (10,10,200,20)
GUICtrlSetColor(-1,32250)

$All1 = GUICtrlCreateButton("Выбрать все", 70, 330, 90, 23)
$All2 = GUICtrlCreateButton("Очистить все", 70, 300, 90, 23)

$Start = GUICtrlCreateButton("Выполнить", 260, 330, 93, 25)
$Close = GUICtrlCreateButton("Выход", 360, 330, 70, 25)

Dim $radioval1

$group_1 = GUICtrlCreateGroup ("Группа", 255, 190, 140, 110, 100)
GUIStartGroup()
$radio_1 = GUICtrlCreateRadio ("Вариант 1", 285, 220, 90, 20)
GUICtrlSetState ($radio_1,$GUI_CHECKED)
$radio_2 = GUICtrlCreateRadio ("Вариант 2", 285, 270, 90, 20)

GUISetState(@SW_SHOW)
GUISetState ()

	While 1

; Здесь по идее, хотелось бы чтобы прогресс бар начал крутится, а остановится пусть в конце скрипта (перед wend)

$msg = GuiGetMsg()
	
	If $msg = $Opt Then MsgBox(48, "Atantion", "This is a test")
	
If $msg = $All1 Then

	GUICtrlSetState ($File,$GUI_CHECKED)
	GUICtrlSetState ($Edit,$GUI_CHECKED)
	GUICtrlSetState ($View,$GUI_CHECKED)
	GUICtrlSetState ($Bookmarks,$GUI_CHECKED)
	GUICtrlSetState ($Session,$GUI_CHECKED)
	
EndIf

If $msg = $All2 Then

	GUICtrlSetState ($File,$GUI_UNCHECKED)
	GUICtrlSetState ($Edit,$GUI_UNCHECKED)
	GUICtrlSetState ($View,$GUI_UNCHECKED)
	GUICtrlSetState ($Bookmarks,$GUI_UNCHECKED)
	GUICtrlSetState ($Session,$GUI_UNCHECKED)

EndIf
	
If $msg = $GUI_EVENT_CLOSE  Or $msg = $Close Then Exit

Select
	
	Case $msg >= $radio_1 AND $msg <= $radio_2
         $radioval1 = $msg - $radio_1

	Case $msg = $Start

If $radioval1 = 0 Then

		If GUICtrlRead($Opt) = 1 Then

EndIf

		If GUICtrlRead($File) = 1 Then


EndIf
	
		If GUICtrlRead($Edit) = 1 Then

		
EndIf

		If GUICtrlRead($View) = 1 Then


EndIf

		If GUICtrlRead($Bookmarks) = 1 Then


EndIf

		If GUICtrlRead($Session) = 1 Then

			
EndIf

If GUICtrlRead($File) <> 1 and GUICtrlRead($Edit) <> 1 and GUICtrlRead($View) <> 1 and GUICtrlRead($Bookmarks) <> 1 and GUICtrlRead($Session) <> 1 and GUICtrlRead($Opt) <> 1 Then

		MsgBox(48, "Error", "Выберите как минимум один чекбокс")
	ContinueLoop
EndIf

	MsgBox(64, "Finishing...", "Финито 1", 15)

	GUICtrlSetState ($Opt,$GUI_UNCHECKED)	
	GUICtrlSetState ($File,$GUI_UNCHECKED)
	GUICtrlSetState ($Edit,$GUI_UNCHECKED)
	GUICtrlSetState ($View,$GUI_UNCHECKED)
	GUICtrlSetState ($Bookmarks,$GUI_UNCHECKED)
	GUICtrlSetState ($Session,$GUI_UNCHECKED)
	
EndIf

If $radioval1 = 1 Then

		If GUICtrlRead($Opt) = 1 Then

EndIf

		If GUICtrlRead($File) = 1 Then

EndIf
	
		If GUICtrlRead($Edit) = 1 Then
			
EndIf

		If GUICtrlRead($View) = 1 Then

EndIf

		If GUICtrlRead($Bookmarks) = 1 Then

EndIf

		If GUICtrlRead($Session) = 1 Then
	
EndIf


If GUICtrlRead($File) <> 1 and GUICtrlRead($Edit) <> 1 and GUICtrlRead($View) <> 1 and GUICtrlRead($Bookmarks) <> 1 and GUICtrlRead($Session) <> 1 and GUICtrlRead($Opt) <> 1 Then

		MsgBox(48, "Error", "Выберите как минимум один чекбокс")
	ContinueLoop
EndIf


	MsgBox(64, "Finishing...", "Финито 2", 15)

	GUICtrlSetState ($Opt,$GUI_UNCHECKED)
	GUICtrlSetState ($File,$GUI_UNCHECKED)
	GUICtrlSetState ($Edit,$GUI_UNCHECKED)
	GUICtrlSetState ($View,$GUI_UNCHECKED)
	GUICtrlSetState ($Bookmarks,$GUI_UNCHECKED)
	GUICtrlSetState ($Session,$GUI_UNCHECKED)

EndIf
	EndSelect
		WEnd

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 09:55, 01-09-2006 | #341