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