[VBS] Denegar acceso a una carpeta o archivo o pedir una Password

Iniciado por EddyW, 6 Mayo 2009, 18:08 PM

0 Miembros y 1 Visitante están viendo este tema.

EddyW

Cita de: Novlucker en  8 Mayo 2009, 18:05 PM
El problema es que si abro muchas veces las ventanas, me genera un proceso de wscript.exe por cada vez, y por ende me salen MUCHOS mensajes preguntando si quiero ingresar la contraseña :-X

Por otra parte, cuando dije que ibas a tener problemas y quería ver como lo implementabas, lo decía porque me adelanté y cree un script funcional :P
Si quieres luego de que tengas listo el tuyo lo publico ;)

Saludos
Lo de las ventanas lo puedo solucionar edito despues..
SaluDOS!!!

Novlucker

Ok, esperemos entonces

Un comentario, veo que en tus codes utilizas Do while y comparas el valor contra una variable que NUNCA vas a modificar, y esto no es necesario, en este caso sería mejor hacerlo con un do simple, de modo que te evitas una variable y la correspondiente verificación/comparación  :P, para que se entienda más fácil:

Código (vb) [Seleccionar]
do while x=0
msgbox "Test"
loop


Código (vb) [Seleccionar]
do
msgbox "Test"
loop


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

SmartGenius

Espero a ver que gran code nos trae el amigo Novlucker, ya mas o menos tengo una idea de como hacer esto en batch puro, ero pues seria mejor implementarlo en VBS.

Saludos.


EddyW

Ok, ahora no puedo si PC sigue mal y no se si los codes que hago esta bien todos..
de aqui ha..., creo un mes recien le conprare una nueva tarjeta de video y asi no tendre que ingresar a modo a prueba de fallos, no pudo usar ni MSN..
Espero tu code NovLucker, yo no podre postear el mio ahora, en modo apreuba de fallos todo me sale bien..
y en modo normal tengo varios errores..
Ha y gracias por la aclaracion de Do, no sabia usarlo de esa forma..
SaluDOS!!!
PD: Ha y con algo de Batch tambien tengo algo en mente pero lo posteare de aqui a unas semanitas cuando arregle mi problema.., espero el tuyo SMARTGENIUS

Novlucker

#14
Cita de: :: SmartGenius :: en 11 Mayo 2009, 05:45 AM
Espero a ver que gran code nos trae el amigo Novlucker, ya mas o menos tengo una idea de como hacer esto en batch puro, ero pues seria mejor implementarlo en VBS.

Naaaa, es un code bastante sencillito fácil de entender ya que además lo he recortado un poco haciendolo más "básico", la principal variante con respecto al de 3D1 es la manera en la que se implementa partiendo del funcionamiento del resto del script  :P

Código (vb) [Seleccionar]
'by Novlucker
Set objshell = createobject("wscript.shell")
Window = "Mis documentos"
ScriptSign = "by Novlucker"
Pass = "ThePass"
wscript.sleep 300

Do
If objshell.appactivate(Window) = True then
If objshell.appactivate(ScriptSign) = True then
objshell.appactivate(Window)
Do until objshell.appactivate(Window) = True
wscript.sleep 100
Loop
objshell.sendkeys "%{F4}"
objshell.appactivate(ScriptSign)
Else
Set SecScript = objshell.exec("wscript.exe """ & wscript.scriptfullname & """")
Quest = Inputbox("Ingrese contraseña para desbloquear archivo o carpeta",ScriptSign)
If Quest = Pass then
On error resume next
SecScript.terminate
Msgbox "La contraseña ingresada es correcta" & vbnewline & _
vbnewline & "Ya puede acceder" , 64, "Info"
End if
wscript.quit
End if
End if
wscript.sleep 100
Loop


Como se ve, este bloquea el acceso a Mis documentos, así que para probarlo con otra carpeta solo hay que modificar el valor de la variable "Window", y tener en cuenta también la variable "ScriptSign", la cual juega un papel importante en el code, ya que de no estar entraríamos en un bucle infinito de ejecución de wscript.exe

Espero se entienda y sino lo comento  :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

EddyW

A mi me funciono mal..
Me sale el InputBox parpadeando, se cierra y luego se abre y asi sucesivamente..
Haber que tal les va a los demas.., no se si es por mi win..
SaluDOS!!!

Novlucker

#16
Que características tiene tu pc?

Intenta cambiando las primeras líneas:
Código (vb) [Seleccionar]
Pass = "ThePass"
wscript.sleep 300


Extiende el sleep a 1500 por ejemplo, no va a funcionar como debe, pero tengo mis dudas si el problema no es por la velocidad de tu pc.  :-\
También puedes probar con un sleep luego del F4

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

EddyW

No es eso.., es que estoy en Modo a Prueba de Fallos desde hace dias lo estoy usando asi..
Por esa razon creo que es...
Bueno no importa lo probare en otro PC cuando pueda..
Esta muy bien el code..
SaluDOS!!!

Novlucker

Puede ser, porque lo he probado en una Celeron 2.66 con 512 Mb de Ram y me ha funcionado sin problemas  :-X

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

FranciskoAsdf

hola!, estuve probando el code para denegar el acceso a una carpeta o archivo y pedir una pass, y cuando ejecuto el .exe o la carpeta, me abre al ventana de que esta bloqueado y si quiero desbloquearlo :xD, pero entra en un bucle infinito, y empieza a repetir la ventana donde pregunta lo anterior, escribiendo "&percent" en cada ventana, primero pense que estaba mal el nombre de la carpeta, pero no, la carpeta se llamaba "hola"  :-\..... eso queria aportar :xD!, nose porke sera porke no se casi nada de vbs.....

saludos el code esta muy bueno, pero si funcionara bien seria mucho mejor (no es que este exjiendo nada), solo digo que puede ser muy util para mucho de nosotros =)

saludos
Asdf debería ser algún tipo de función.