TextReader - Lector de texto

y programas personales para otros como tu, puede que te corrijan ;)

TextReader - Lector de texto

Notapor yasmany » 21 Oct 2015, 17:34

Dejo por aquí un lector de textos (codigo fuente para que lo compilen en casita), funcional desde Windows 8, win8.1, w10.
Fácil uso, solo activan el programa y proceden a copiar cualquier texto legible, igualmente esto lo pueden detener al volver al pulsar el botón.
Espero que a mas de uno le sirva.

Imagen

Codigo fuente - adjunto archivos utilizados
Código: Seleccionar todo
#NoTrayIcon

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=iconoTextReaderYasmany.ico
#AutoIt3Wrapper_Outfile=TextReader.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=Software yasmanycurimilma@gmail.com
#AutoIt3Wrapper_Res_Description=Lector de texto - w8 o superior
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=Yasmany Curimilma
#AutoIt3Wrapper_Res_Language=1033
#AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7
#Au3Stripper_Parameters=/sf /sv
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <Misc.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPISys.au3>

Opt("GUICloseOnESC", 0)
Opt("GUIOnEventMode", 1)

_Singleton('TextReaderYas')

Global $statusButton
Global $statusActivacion
Global $o_speech = 0
Global $data1, $data2

FileInstall('.\btn1texReader.png', @TempDir & '\', 1)
FileInstall('.\btn3texReader.png', @TempDir & '\', 1)
FileInstall('.\btnResplandorTexReader.png', @TempDir & '\', 1)
FileInstall('.\btnSombraTexReader.png', @TempDir & '\', 1)
FileInstall('.\PNG-mini-TextReader.png', @TempDir & '\', 1)

Global $hMainGUI = GUICreate("TextReaderYasmanyCurimilma", 403, 218, -1, -1, $WS_POPUPWINDOW)
GUISetBkColor(0x424242)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
GUISetIcon('iconoTextReaderYasmany.ico')
GUICtrlCreateLabel('       TextReader', 0, 0, 370, 30, $ss_centerimage, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetBkColor(-1, 0X303030)
GUICtrlSetColor(-1, 0Xcccccc)
GUICtrlSetFont(-1, 13)

GUICtrlCreateLabel("", 0, 31, 404, 1)
GUICtrlSetBkColor(-1, 0X6e6c6c)
GUICtrlSetState(-1, $gui_disable)

Global $btnCerrar = GUICtrlCreateLabel("X", 370, 0, 33, 30, $SS_CENTER + $SS_CENTERIMAGE)
GUICtrlSetTip($btnCerrar, 'Cierra el programa')
GUICtrlSetOnEvent($btnCerrar, "_exit")
GUICtrlSetCursor($btnCerrar, 0)
GUICtrlSetBkColor($btnCerrar, 0Xcc3333)
GUICtrlSetColor($btnCerrar, 0XFFFFFF)
GUICtrlSetFont($btnCerrar, 13)

_GUICtrlPic_Create(@TempDir & '\PNG-mini-TextReader.png', 2, 3)

Global $btnAzul = _GUICtrlPic_Create(@TempDir & '\btn1texReader.png', 30, 50);, 100, 100)
GUICtrlSetOnEvent($btnAzul, 'clicLogo1')
GUICtrlSetCursor($btnAzul, 0)

Global $sombra = _GUICtrlPic_Create(@TempDir & '\btnSombraTexReader.png', 30, 50);, 100, 100)
GUICtrlSetCursor($sombra, 0)
GUICtrlSetState($sombra, $GUI_HIDE)

Global $btnVerde = _GUICtrlPic_Create(@TempDir & '\btn3texReader.png', 30, 50);, 100, 100)
GUICtrlSetCursor($btnVerde, 0)
GUICtrlSetState($btnVerde, $GUI_HIDE)
GUICtrlSetTip($btnVerde, 'Desactivar la lectura')

Global $resplandor = _GUICtrlPic_Create(@TempDir & '\btnResplandorTexReader.png', 30, 50);, 100, 100)
GUICtrlSetCursor($resplandor, 0)
GUICtrlSetState($resplandor, $GUI_HIDE)

Global $lblIniciar = GUICtrlCreateLabel("Iniciar", 165, 65, 215, 30)
GUICtrlSetColor(-1, 0Xcccccc)
GUICtrlSetFont(-1, 15, 600)

Global $textoAyuda = GUICtrlCreateLabel("Al pulsar sobre el botón, activará el programa y empezará a detectar cada vez que copie " & _
      "un texto y procederá a leerlo, válido para Windows 8 o superior.", 165, 100, 215, 70)
GUICtrlSetColor(-1, 0XFFFFFF)

GUICtrlCreateLabel("Status: ", 20, 195, 40, 20)
GUICtrlSetColor(-1, 0x868686)
Global $status = GUICtrlCreateLabel("Detenido", 60, 195, 150, 20)
GUICtrlSetColor($status, 0x868686)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")

Global $btnInfo = GUICtrlCreateLabel("I n f o", 355, 195, 40, 20)
GUICtrlSetColor($btnInfo, 0x99ccff)
GUICtrlSetTip($btnInfo, 'Información acerca' & @CRLF & 'de TextReader')
GUICtrlSetCursor($btnInfo, 0)
GUICtrlSetOnEvent($btnInfo, 'mostrarInfo')

Local $tRID = DllStructCreate($tagRAWINPUTDEVICE)
DllStructSetData($tRID, 'UsagePage', 0x01) ; Generic Desktop Controls
DllStructSetData($tRID, 'Usage', 0x02) ; Mouse
DllStructSetData($tRID, 'Flags', $RIDEV_INPUTSINK)
DllStructSetData($tRID, 'hTarget', $hMainGUI)

_WinAPI_RegisterRawInputDevices($tRID)
GUIRegisterMsg($WM_INPUT, 'WM_INPUT')

GUICtrlSetTip($btnAzul, 'Iniciar')
GUISetState(@SW_SHOW)

While 1
   Sleep(100)
WEnd

Func _detectando()
   If ClipGet() <> '' And StringRight(StringLeft(ClipGet(), 3), 2) <> ':\' Then
      _TalkOBJ(ClipGet())
      ClipPut('')
   EndIf
EndFunc   ;==>_detectando

Func clicLogo1()
EndFunc   ;==>clicLogo1

Func _TalkOBJ($s_text)
   _Voice_Stop()
   $o_speech = ObjCreate("SAPI.SpVoice");$o_speech.Volume = 100
   $o_speech.Speak($s_text, 1)
EndFunc   ;==>_TalkOBJ

Func _Voice_Stop() ; COLABORACION DE DANIEL RIVERO (Venezuela)
   If IsObj($o_speech) Then ; AGREGUÉ ESTA LINEA
      $o_speech.Pause()
      $o_speech = 0
   EndIf
EndFunc   ;==>_Voice_Stop

Func _exit()
   FileDelete(@TempDir & '\btn1texReader.png')
   FileDelete(@TempDir & '\btn3texReader.png')
   FileDelete(@TempDir & '\btnResplandorTexReader.png')
   FileDelete(@TempDir & '\btnSombraTexReader.png')
   FileDelete(@TempDir & '\PNG-mini-TextReader.png')
   Exit
EndFunc   ;==>_exit

Func mostrarInfo()
   If GUICtrlRead($btnInfo) = 'I n f o' Then
      $data1 = GUICtrlRead($lblIniciar)
      $data2 = GUICtrlRead($textoAyuda)
      GUICtrlSetData($lblIniciar, 'Acerca de...')
      GUICtrlSetData($textoAyuda, 'Desarrollador: ' & @CRLF & 'Yasmany Curimilma (Ecuador)' & @CRLF & 'facebook.com\yasmanycurimilma' & @CRLF & @CRLF & 'Agradecimiento: Daniel Rivero (Venezuela)')
      GUICtrlSetData($btnInfo, 'No Info')
   ElseIf GUICtrlRead($btnInfo) = 'No Info' Then
      GUICtrlSetData($lblIniciar, $data1)
      GUICtrlSetData($textoAyuda, $data2)
      GUICtrlSetData($btnInfo, 'I n f o')
      $data1 = ''
      $data2 = ''
   EndIf
EndFunc   ;==>mostrarInfo

Func _GUICtrlPic_Create($sFilename, $iLeft, $iTop, $iWidth = -1, $iHeight = -1, $iStyle = -1, $iExStyle = -1)
   _GDIPlus_Startup()
   Local $idPic = GUICtrlCreatePic("", $iLeft, $iTop, $iWidth, $iHeight, $iStyle, $iExStyle)
   Local $hBitmap = _GDIPlus_BitmapCreateFromFile($sFilename)
   If $iWidth = -1 Then $iWidth = _GDIPlus_ImageGetWidth($hBitmap)
   If $iHeight = -1 Then $iHeight = _GDIPlus_ImageGetHeight($hBitmap)
   Local $hBitmap_Resized = _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight)
   Local $hBMP_Ctxt = _GDIPlus_ImageGetGraphicsContext($hBitmap_Resized)
   _GDIPlus_GraphicsSetInterpolationMode($hBMP_Ctxt, $GDIP_INTERPOLATIONMODE_HIGHQUALITYBICUBIC)
   _GDIPlus_GraphicsDrawImageRect($hBMP_Ctxt, $hBitmap, 0, 0, $iWidth, $iHeight)
   Local $hHBitmap = _GDIPlus_BitmapCreateDIBFromBitmap($hBitmap_Resized)
   Local $hPrevImage = GUICtrlSendMsg($idPic, $STM_SETIMAGE, 0, $hHBitmap) ; $STM_SETIMAGE = 0x0172
   _WinAPI_DeleteObject($hPrevImage); Delete Prev image if any
   _GDIPlus_BitmapDispose($hBitmap)
   _GDIPlus_BitmapDispose($hBitmap_Resized)
   _GDIPlus_GraphicsDispose($hBMP_Ctxt)
   _WinAPI_DeleteObject($hHBitmap)
   _GDIPlus_Shutdown()
   Return $idPic
EndFunc   ;==>_GUICtrlPic_Create

Func WM_INPUT($hWnd, $iMsg, $wParam, $lParam)
   #forceref $iMsg, $wParam
   Local $tPoint
   Local $pos = ControlGetPos('TextReaderYasmanyCurimilma', 'TextReader', $btnAzul);~    ConsoleWrite($pos[0] & "," & $pos[1] & " SIZE: " & $pos[2] & "," & $pos[3] & @CRLF)
   If WinActive('TextReaderYasmanyCurimilma') Then
      Switch $hWnd
         Case $hMainGUI
            Local $tRIM = DllStructCreate($tagRAWINPUTMOUSE)
            If _WinAPI_GetRawInputData($lParam, $tRIM, DllStructGetSize($tRIM), $RID_INPUT) Then
               Local $iFlags = DllStructGetData($tRIM, 'Flags')

               $iFlags = DllStructGetData($tRIM, 'ButtonFlags')
               If BitAND($iFlags, BitOR($RI_MOUSE_LEFT_BUTTON_DOWN, $RI_MOUSE_LEFT_BUTTON_UP)) Then
                  Select

                     Case BitAND($iFlags, $RI_MOUSE_LEFT_BUTTON_DOWN);PRESIONADO ConsoleWrite("CLIC IZQUIERDO PRESIONADO" & @CRLF)
                        ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                        $tPoint = _WinAPI_GetMousePos(True, $hMainGUI)
                        If DllStructGetData($tPoint, "Y") > $pos[1] And DllStructGetData($tPoint, "Y") <= $pos[1] + $pos[3] And DllStructGetData($tPoint, "X") > $pos[0] And DllStructGetData($tPoint, "X") <= $pos[0] + $pos[2] Then
                           $statusButton = 1
                           If GUICtrlGetState($sombra) = 96 Then
                              If GUICtrlGetState($resplandor) = 80 Then
                                 GUICtrlSetState($resplandor, $GUI_HIDE)
                              EndIf
                              GUICtrlSetState($sombra, $GUI_HIDE)
                              Sleep(50)
                              GUICtrlSetState($sombra, $GUI_SHOW)
                           EndIf
                        EndIf
                        ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

                     Case BitAND($iFlags, $RI_MOUSE_LEFT_BUTTON_UP);LIBERADO ConsoleWrite("CLIC IZQUIERDO LIBERADO" & @CRLF)
                        ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                        $tPoint = _WinAPI_GetMousePos(True, $hMainGUI)
                        If DllStructGetData($tPoint, "Y") > $pos[1] And DllStructGetData($tPoint, "Y") <= $pos[1] + $pos[3] And DllStructGetData($tPoint, "X") > $pos[0] And DllStructGetData($tPoint, "X") <= $pos[0] + $pos[2] Then
                           If $statusButton = 1 Then
                              $statusButton = ''
                              If GUICtrlGetState($btnVerde) = 96 Then
                                 GUICtrlSetState($btnVerde, $GUI_SHOW)
                                 GUICtrlSetData($status, 'Ejecutándose...')
                                 GUICtrlSetData($lblIniciar, 'Iniciado...')
                                 GUICtrlSetData($textoAyuda, 'El programa se ha iniciado, proceda a copiar cualquier texto legible para que TextReader dé lectura de ello.')
                                 GUICtrlSetTip($btnAzul, 'Terminar')
                                 GUICtrlSetColor($status, 0xa4f350)

                                 If GUICtrlRead($btnInfo) = 'No Info' Then
                                    GUICtrlSetData($btnInfo, 'I n f o')
                                    $data1 = ''
                                    $data2 = ''
                                 EndIf

                                 AdlibRegister('_detectando', 1000)
                              ElseIf GUICtrlGetState($btnVerde) = 80 Then
                                 GUICtrlSetState($btnVerde, $GUI_HIDE)
                                 GUICtrlSetData($status, 'Detenido')
                                 GUICtrlSetColor($status, 0x868686)
                                 AdlibUnRegister('_detectando')
                                 _Voice_Stop()
                                 GUICtrlSetData($lblIniciar, 'Finalizado')
                                 GUICtrlSetData($textoAyuda, 'Se a terminado la ejecución.' & @CRLF & 'Para iniciar vuelva a presionar el botón de activación')
                                 GUICtrlSetTip($btnAzul, 'Iniciar')
                                 If GUICtrlRead($btnInfo) = 'No Info' Then
                                    GUICtrlSetData($btnInfo, 'I n f o')
                                    $data1 = ''
                                    $data2 = ''
                                 EndIf
                              EndIf
                           EndIf
                        Else
                           $statusButton = ''
                           If GUICtrlGetState($btnVerde) = 80 Then
;~                                  GUICtrlSetState($btnVerde, $GUI_HIDE)
                           EndIf
                        EndIf
                        GUICtrlSetState($sombra, $GUI_HIDE)
                        ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                  EndSelect
               EndIf

               $tPoint = _WinAPI_GetMousePos(True, $hMainGUI)
               If DllStructGetData($tPoint, "Y") > $pos[1] And DllStructGetData($tPoint, "Y") <= $pos[1] + $pos[3] And DllStructGetData($tPoint, "X") > $pos[0] And DllStructGetData($tPoint, "X") <= $pos[0] + $pos[2] Then
                  If GUICtrlGetState($resplandor) = 96 Then
                     If GUICtrlGetState($sombra) = 96 Then GUICtrlSetState($resplandor, $GUI_SHOW)
                  EndIf
               Else
                  If GUICtrlGetState($resplandor) = 80 Then
                     GUICtrlSetState($resplandor, $GUI_HIDE)
                  EndIf

                  If $statusButton = '' Then
                     If GUICtrlGetState($sombra) = 80 Then
                        GUICtrlSetState($sombra, $GUI_HIDE)
                     EndIf
                  EndIf
               EndIf
            EndIf
      EndSwitch
      Return $GUI_RUNDEFMSG
   EndIf
EndFunc   ;==>WM_INPUT



Saludos... :smt024
Adjuntos
Source_TextRead-by_Yasmany.rar
DESCARGAR
(128.63 KiB) 58 veces
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
yasmany
Hacker del Foro
 
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: TextReader - Lector de texto

Notapor Dany » 21 Oct 2015, 18:37

Excelente Aporte Gracias Yasmany. Saludos :smt027
    ............................................Imagen
    ......................................Imagen
Avatar de Usuario
Dany
Profesional del Autoit
 
Mensajes: 643
Registrado: 28 Mar 2012, 22:49

Re: TextReader - Lector de texto

Notapor yasmany » 21 Oct 2015, 21:18

Cuando pueda y mientras pueda :smt002 :smt024
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
yasmany
Hacker del Foro
 
Mensajes: 249
Registrado: 06 Sep 2011, 21:30


Volver a esScripts - Programas - Abre tus creaciones maravillosas

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron