Página 1 de 1

Esperando al escaner de red. Que graba en una carpeta.

Publicado: 02 Jun 2014, 09:38
por BasicOs
Muchas veces tenemos escaneres remotos y nos añaden en una carpeta los ficheros que comiencen por
DOC*.
En ese caso
1.- Nos avisa que nos ha entrado.
2.- Nos da la opción de cambiar el nombre
3.- Lo visualiza con su programa por defecto, con lo que podemos copiarlo, modificarlo o ver si se escaneó bien.

No gasta nada de recursos ni de memoria ni de procesador.
Aparece un icono al lado del reloj por si queremos cerrarlo.
Siempre tenemos que cambiar el nombre a los ficheros que empiecen por DOC*, con lo que no tendremos ningún archivo llamado "documentación"
:smt023 :smt024
Si alguien desea modificarlo o crear alguna mejora puede aportar, gracias. :smt025 :smt014

PD:
Versión 2:
  • Mejora para varios escaneres, y varias rutas, con varios patrones de ficheros producidos por el escaner.
  • Añadido fichero nuevoscanner.ini para guardar un patrón y una ruta (en pareja).
Salu22:)

Código: Seleccionar todo

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=nuevoscanner.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <MsgBoxConstants.au3>
;Credits Basicos at autoit.es
If not FileExists("nuevoscanner.ini") then
	IniWrite("nuevoscanner.ini","Configurar","Ruta","C:\escaner\")
	IniWrite("nuevoscanner.ini","Configurar","Patron_Nombres","DOC*.*")
EndIf

$sRuta= IniRead("nuevoscanner.ini","Configurar","Ruta","C:\escaner\")
$sPatron=IniRead("nuevoscanner.ini","Configurar","Patron_Nombres","DOC*.*")
Global $aRuta=StringSplit($sRuta,","), $i
Global $aPatron=StringSplit($sPatron,",")
$sTodasRutas=""
#include <MsgBoxConstants.au3>
#include <TrayConstants.au3>

For $i=1 to $aRuta[0]
 $sTodasRutas=$sTodasRutas&$aRuta[$i]&$aPatron[$i] & " y "
Next
$sTodasRutas=StringLeft($sTodasRutas,stringlen($sTodasRutas)-3)
TrayTip("Esperando escaners sin gastar recursos del PC", "En "&$sTodasRutas , 0, $TIP_ICONASTERISK)

While 1
For $i=1 to $aRuta[0]
	if FileExists($aRuta[$i]) then Nuevosescaner($aRuta[$i]&$aPatron[$i])
 Sleep(1000)
Next
sleep(3000)
WEnd

Func Nuevosescaner($Patron)
    ; Assign a Local variable the search handle of all files in the current directory.
    Local $hSearch = FileFindFirstFile($Patron)

    ; Check if the search was successful, if not display a message and return False.
    If $hSearch = -1 Then
       ; MsgBox($MB_SYSTEMMODAL, "", "Error: No files/directories matched the search pattern.")
        Return False
    EndIf

    ; Assign a Local variable the empty string which will contain the files names found.
    Local $sFileName = "", $iResult = 0

    While 1
        $sFileName = FileFindNextFile($hSearch)
        ; If there is no more file matching the search.
        If @error Then ExitLoop
        ; Display the file name.
        $iResult = MsgBox(BitOR($MB_SYSTEMMODAL, $MB_OKCANCEL), "Nuevo fichero desde el escaner", "Nombre: " & $sFileName)
         If $iResult <> $IDOK Then ExitLoop ; If the user clicks on the cancel/close button.
		ShellExecute($aRuta[$i]&$sFileName)
		$sFileName1=StringLeft($sFileName,StringInStr($sFileName,".")-1)
		$sFileName2=StringRight($sFileName,StringLen($sFileName)-StringInStr($sFileName,"."))
		 $sResult = InputBox("Cambiar de nombre escaneados","Escriba el nombre nuevo del "&$sFileName2,$sFileName1)
		 FileMove($aRuta[$i]&$sFileName,$aRuta[$i]&$sResult&"."&$sFileName2)
		 Sleep(500)
		 ShellExecute($aRuta[$i]&$sResult&"."&$sFileName2)
		 ;ShellExecute($sRuta&$sResult&"."&$sFileName2)
    WEnd

    ; Close the search handle.
    FileClose($hSearch)
EndFunc   ;==>Example


Re: Esperando nuevos escaneos en una carpeta.

Publicado: 02 Jun 2014, 15:29
por yasmany
Gracias por el aporte, en lo personal me sirve para estudiar el code y aprender algo que haya pasado por alto.
Por cierto como puedo conseguir los includes?
#include <MsgBoxConstants.au3>
#include <TrayConstants.au3>

Re: Esperando nuevos escaneos en una carpeta.

Publicado: 02 Jun 2014, 22:38
por Dany3j
@yasmany con la ultima versión de AutoIt.

saludos

Re: Esperando nuevos escaneos en una carpeta.

Publicado: 02 Jun 2014, 22:59
por yasmany
Ha yá gracias, por cierto la ultima version tiene una configuracion distinta, no tiene establecido los mismos colores al programar. :smt012
Pero bueno, gracias por responder :smt001
Saludos :smt024

Re: Esperando nuevos escaneos en una carpeta.

Publicado: 03 Jun 2014, 04:26
por PDF
Gracias por compartir tu programa BasicOs..
yasmany escribió:Ha yá gracias, por cierto la ultima version tiene una configuracion distinta, no tiene establecido los mismos colores al programar. :smt012
Pero bueno, gracias por responder :smt001
Saludos :smt024
Eso pasa porque se te ha desinstalado el SciTE, si has actualizado AutoIt se ha borrado con la version antigua y lo que tienes ahora es una version de editor por defecto de AutoIt, por lo que también es necesario descargarla, ya que se instalan por separado..

Saludos.

Re: Esperando nuevos escaneos en una carpeta.

Publicado: 06 Jun 2014, 14:44
por BasicOs
Aquí tienes la última versión con todo, y también la versión anterior de Autoit por si la necesitas puntualmente. :smt026 :smt017 :smt013

Ahora en la versión del AUTOITPORTABLE incluyo las dos versiones porque seguramente necesitamos la versión anterior para retocar algún programa que hemos hecho durante el último año. (Si tienes tiempo para actualizar el código a la nueva no lo necesitas).
AutoitPortable incluye Scite y más utiles

Salu22:)