Версия AutoIt: 3.
Описание: Утилита создает текстовый файл и копирует в него выделенный мышкой текст из любых приложений. С этим она справляется. Но не правильно копирует тексты на казахском языке. На русском и английском все стабильно. Вместо таких специфичных казахских букв как ә і ң ғ ү ұ қ ө, появляются вопросительные знаки (?).
И еще такая ситуация с китайским, арабским, и др., но они не сильно важны.
Вот например: Саумал желі ?ара?ай басын ыр?а?ан сал?ын т?н.
вместо Саумал желі қарағай басын ырғаған салқын түн.
-------------------------------------------------------------------------
Вот сайт с которого нужно к примеру скопировать текст с Monitor Text Selection http://ikitap.kz/book/koishybek_mybarak_kybyzhyk/files/assets/basic-html/page2.html
------------------------------------------------------------------------
Сама программа с исходниками http://autoit-script.ru/index.php?action=downloads;sa=view;down=17
Спасибо всем за помощь чайнику.
Примечания:
Описание: Утилита создает текстовый файл и копирует в него выделенный мышкой текст из любых приложений. С этим она справляется. Но не правильно копирует тексты на казахском языке. На русском и английском все стабильно. Вместо таких специфичных казахских букв как ә і ң ғ ү ұ қ ө, появляются вопросительные знаки (?).
И еще такая ситуация с китайским, арабским, и др., но они не сильно важны.
Вот например: Саумал желі ?ара?ай басын ыр?а?ан сал?ын т?н.
вместо Саумал желі қарағай басын ырғаған салқын түн.
-------------------------------------------------------------------------
Вот сайт с которого нужно к примеру скопировать текст с Monitor Text Selection http://ikitap.kz/book/koishybek_mybarak_kybyzhyk/files/assets/basic-html/page2.html
------------------------------------------------------------------------
Сама программа с исходниками http://autoit-script.ru/index.php?action=downloads;sa=view;down=17
Спасибо всем за помощь чайнику.
Примечания:
Код:
#NoTrayIcon
#include <Constants.au3>
#include <Misc.au3>
#include <MouseSetOnEvent_UDF.au3>
;
Opt("TrayMenuMode", 1)
TraySetIcon("shell32.dll", -135)
TraySetClick(16)
TraySetState()
$CopyUseSelection_TrayItem = TrayCreateItem("Копировать по выделению")
TrayItemSetState(-1, $TRAY_CHECKED)
$SwitchMonitoring_TrayItem = TrayCreateItem("Мониторинг выделения включён")
TrayItemSetState(-1, $TRAY_CHECKED)
TrayCreateItem("")
$Exit_TrayItem = TrayCreateItem("Выход")
Global $sCopy_HotKey = "^+c"
Global $sToggleScriptPause_HotKey = "^+p"
Global $sExit_HotKey = "^+e"
Global $iMouse_X_Position = MouseGetPos(0)
Global $iSelected = False
Global $iPaused = True
Global $sFile = @ScriptDir & "\SelectedText.txt"
HotKeySet($sExit_HotKey, "_Quit")
HotKeySet($sToggleScriptPause_HotKey, "_SwitchMonitoring_Proc")
_SwitchMonitoring_Proc()
While 1
Switch TrayGetMsg()
Case $TRAY_EVENT_PRIMARYUP, $SwitchMonitoring_TrayItem
_SwitchMonitoring_Proc()
Case $CopyUseSelection_TrayItem
If TrayItemGetState($CopyUseSelection_TrayItem) = 65 Then
_SetMouseEvent_Proc(1)
HotKeySet($sCopy_HotKey)
Else
_SetMouseEvent_Proc(0)
HotKeySet($sCopy_HotKey, "_CopyUseHotkey_Proc")
EndIf
Case $Exit_TrayItem
_Quit()
EndSwitch
If $iSelected Then
$iSelected = False
$sSelection = _GetSelectedText()
If $sSelection <> "" Then FileWriteLine($sFile, $sSelection & @CRLF & @CRLF)
EndIf
WEnd
Func MousePrimaryDown_Event()
$iMouse_X_Position = MouseGetPos(0)
EndFunc
Func MousePrimaryUp_Event()
If $iMouse_X_Position <> MouseGetPos(0) Then $iSelected = True
EndFunc
Func _GetSelectedText()
Local $sSelected_Data
;This one is crashing the script :(
;~ Local $hWnd = WinGetHandle("")
;~ Local $sCtrlClass = ControlGetFocus($hWnd)
;~
;~ If Not StringInStr($sCtrlClass, "Scintilla") Then
;~ $sSelected_Data = ControlCommand($hWnd, "", $sCtrlClass, "GetSelected")
;~ If IsString($sSelected_Data) Then Return $sSelected_Data
;~ EndIf
Local $sOld_Clipboard_Data = ClipGet()
ClipPut("")
Send("^{INS}")
$sSelected_Data = ClipGet()
ClipPut($sOld_Clipboard_Data)
Return $sSelected_Data
EndFunc
Func _CopyUseHotkey_Proc()
$iSelected = True
EndFunc
Func _SwitchMonitoring_Proc()
$iPaused = Not $iPaused
If $iPaused Then
TrayItemSetText($SwitchMonitoring_TrayItem, "Мониторинг выделения выключен")
TrayItemSetState($SwitchMonitoring_TrayItem, $TRAY_UNCHECKED)
TraySetIcon("shell32.dll", -66)
_SetMouseEvent_Proc(0)
Else
TrayItemSetText($SwitchMonitoring_TrayItem, "Мониторинг выделения включен")
TrayItemSetState($SwitchMonitoring_TrayItem, $TRAY_CHECKED)
TraySetIcon("shell32.dll", -135)
_SetMouseEvent_Proc(1)
EndIf
EndFunc
Func _SetMouseEvent_Proc($iSet = 1)
If $iSet = 1 And TrayItemGetState($CopyUseSelection_TrayItem) = 68 Then Return 0
Switch $iSet
Case 1
_MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "MousePrimaryDown_Event", "", "", 0, 0)
_MouseSetOnEvent($MOUSE_PRIMARYUP_EVENT, "MousePrimaryUp_Event", "", "", 0, 0)
Case Else
_MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT)
_MouseSetOnEvent($MOUSE_PRIMARYUP_EVENT)
EndSwitch
EndFunc
Func _Quit()
_SetMouseEvent_Proc(0)
Exit
EndFunc