Compartir archivos Excel meidante Dropbox

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
qpongo
Hacker del Foro
Mensajes: 110
Registrado: 10 Abr 2013, 15:53
Ubicación: Madrid

Compartir archivos Excel meidante Dropbox

Mensaje por qpongo »

Hola, ¿cómo estáis?

Yo sigo dándole al autoit y leyendo de vez en cuando lo que va surgiendo por aquí.

A ver si podéis orientarme un poco...

Necesito compartir un archivo Excel con varias personas y lo tengo que hacer a través de Dropbox.
El problema viene cuando 2 o más usuarios abren el mismo archivo, puesto que Dropbox lo permite (no bloquea el archivo a sólo lectura al abrirlo) y acabas con varias versiones del mismo archivo y teniendo que recomponerlo.

Como por narices de momento voy a tener que usar Dropbox, se me ocurre que podría cambiar el nombre del archivo a "en uso Nombre de archivo" cuando se abre usando Autoit o bloquearlo a sólo lectura". Pero antes de ponerme a ello quería comentarlo porque seguro que se os ocurre alguna idea mejor... yo sigo siendo novato!!! :smt009

Muchísimas gracias y saludos para todos,

qpongo :smt102
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Compartir archivos Excel meidante Dropbox

Mensaje por Chefito »

No entiendo muy bien que tiene que ver autoit con la apertura compartida de un archivo excel colgado en dropbox. Si explicas un poco mejor que hace o pretendes que haga el script, y el problema que presenta, puede que lo comprenda mejor.

Por cierto, que yo sepa, si abren más de una vez en una red un archivo excel, el único que lo puede modificar es el primero que lo ha abierto. A los demás se le abren en modo lectura.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
qpongo
Hacker del Foro
Mensajes: 110
Registrado: 10 Abr 2013, 15:53
Ubicación: Madrid

Re: Compartir archivos Excel meidante Dropbox

Mensaje por qpongo »

Gracias Chefito por tu respuesta...

Efectivamente en una red el archivo se marca como abierto y no se puede abrir salvo en solo lectura.
Sin embargo si lo tienes en Dropbox (fuera de la red) si te deja abrirlo en modo escritura.
Para evitarlo de momento lo que estoy haciendo es al abrir el archivo renombrarlo:

Código: Seleccionar todo

#include <GUIConstants.au3>
#include <Excel.au3>
;Elegir el archivo a abrir
Local $message = "Por favor" &@UserName &"elige un archivo"
$var=FileOpenDialog($message, "C:\Dropbox\","(*.xls)",1)
If @error Then
    MsgBox(4096,"","No se ha elegido el archivo")
Else
    $var = StringReplace($var, "|", @CRLF)
    MsgBox(4096,"","Has seleccionado: "&@CRLF &@CRLF& $var)
EndIf
FileMove($var,$var&" CUIDADO "&@UserName&" Lo está modificando.xls",0)
ShellExecute($var&" CUIDADO "&@UserName&" Lo está modificando.xls")
MsgBox(4096,"Atención","Modifica el archivo y cuando termines"&@CRLF &@CRLF & "VUELVE A PONER EL NOMBRE ORIGINAL")

;Hasta aquí lo hace bien todo y digamos que bien o mal el archivo cambia de nombre y avisa que está abierto.

;Pretendía más abajo hacer un bucle "infinito" y que el usuario pulsase Ok o similar al terminar de modificar...
;...para automáticamente guardar la hoja de cálculo, cerrarla y volver a llamarla con el nombre original. Está incompleto aún

While 1
	Sleep(100)

WEnd

Si se te ocurre alguna solución mejor y/o terminar el script para que grabe las modificaciones en excel, cierre el archivo y lo vuelva a renombrar me dices. Más que nada es el bucle infinito lo que no tengo claro como es, es decir dejar una ventanita con un Ok o Cerrar Actualizado Fin o como se quiera llamar que al pulsar termine grabando....

Gracias!!
qpongo
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Compartir archivos Excel meidante Dropbox

Mensaje por Chefito »

Mmmmmm.....es que el excel no está preparado para esas posibles situaciones.
Se me ocurre que una solución podría ser, antes de que se abra el archivo, comprobar si éste está abierto, por ejemplo, comprobando si se puede abrir en modo escritura. A partir de aquí, si está ejecutado (al abrirlo en modo escritura daría un error), mandar un mensaje al usuario de que en ese momento no se puede acceder al archivo porque está siendo usado por otro usuario, o algo así :smt003 . Si te lo quieres currar un poco más, podrías hacer que el script fuese comprobado cada poco tiempo cuando el archivo es cerrado (el archivo no está en uso). Una vez que no se encuentre ejecutada, puedes darle acceso.

El código sería con la función $file=FileOpen("nombre del archivo",1) . Mírala en la ayuda. Para comprobar si está o no abierto, utiliza una condición if. $file=-1 si está abierto, y 1 si está cerrado.

Supongo que quieras algo así. Yo es que nunca he utilizado el dropbox, asi que no se como funciona.

Saludos.
Última edición por Chefito el 24 Abr 2014, 12:18, editado 1 vez en total.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
qpongo
Hacker del Foro
Mensajes: 110
Registrado: 10 Abr 2013, 15:53
Ubicación: Madrid

Re: Compartir archivos Excel meidante Dropbox

Mensaje por qpongo »

Muchas gracias Chefito.
Me resultará muy útil tu idea no sé si para esta situación exactamente pero desde luego para problemas parecidos.

qpongo
Responder