ghosty
Цитата:
Имеется выделенный текст. При нажатии определенного сочетания кнопок этот текст необходимо сохранить в виде отдельного *.txt файла
|
Ну, можно вот так, например:
Код:
;предотвращение возможности множественного запуска скрипта
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
;устанавливаем хоткей (в данном сл. это Ctrl+Alt+Z; выбор за тобой)
HotKeySet("^!z", "SaveToFile")
;определение каталога для сохранения файлов
Global $DestinationDir = "c:\working folder"
;запуск основного бесконечного цикла
While 1
Wend
Func SaveToFile()
;заносим выделенный текст в буфер обмена
Send ('^c')
;режим записи: 1 - дописывание данных; 2 - перезапись файла
$mode = 1
;имя файла (в данном сл. будет иметь вид ГодМесяцДень-ЧасыМинутыСекунды.txt, например 20051211-053438.txt)
$Destination = $DestinationDir & '\' & @YEAR & @MON & @MDAY & '-' & @HOUR & @MIN & @SEC & '.txt'
;если каталог назначения не существует - создаем его
If Not FileExists($DestinationDir) Then DirCreate($DestinationDir)
;берем данные из буфера обмена
$Data = ClipGet()
;запись данных в файл (совмещена с проверкой и выводом сообщения в сл. неудачи)
If WriteArrayToFile($Destination, $Data, $mode)<>1 Then MsgBox(16,'Error','Unable to write data to destination file',8)
EndFunc
;функция записи массива в файл
Func WriteArrayToFile($sFilePath, $Array, $writemode)
Local $hOpenFile
Local $hWriteFile
$hOpenFile = FileOpen($sFilePath, $writemode)
If $hOpenFile = -1 Then
SetError(1)
Return 0
EndIf
$hWriteFile = FileWrite($hOpenFile, $Array)
If $hWriteFile = -1 Then
SetError(2)
Return 0
EndIf
FileClose($hOpenFile)
Return 1
EndFunc
Цитата:
- либо соответствующим первым трем словам первой строки текста;
- либо просто порядковым номером
|
Можно и так, и так, но это сложнее и неудобнее.
selanec555
Цитата:
как это отловить/недопустить/корректно обработать?
|
MultiSet тут явно не поможет
Нужно писать скрипты для этих приложений и обрабатывать данную ситуацию - либо ключами тихой установки с отменой перезагрузки, либо установкой клацаньем по окнам с отрицательным ответом на вопрос о перезагрузке.