¿Cómo utilizar el procesamiento por lotes para completar la actualización con la misma función que "actualizar el escritorio con clic derecho"?
¿Necesito llamarlo si quiero agregar una función de actualización automática?
¿Deberíamos crear xxx.bat primero? Luego, ¿cuál es el propósito de hacer esto? ¿Es esto innecesario? De hecho, muchas personas no entienden por qué necesitan preocuparse por la actualización automática al presionar la tecla F5. De hecho, la persona que hizo esta pregunta es muy inteligente. Déjame contarte sobre la función de actualización automática de vbs.
En primer lugar, después de ejecutar una serie de comandos, es posible que algunas cosas no surtan efecto visualmente en tiempo real. Sin embargo, para garantizar que la siguiente serie de comandos 100 se ejecute sin problemas, debemos hacerlo. Actualizar automáticamente para resolver el problema. Por supuesto, todo este script debe ocultar la ventana de comando para que la actualización automática tenga efecto, porque debemos asegurarnos de que el puntero del mouse esté en el escritorio en este momento. escritorio, significa que ya está en el escritorio. Si se ejecuta en una ventana de visualización, el código de actualización se ejecutará vacío. Además, el comando de actualización también tiene otra función. Por ejemplo, estoy ejecutando una ventana de comunicación. no se actualiza en tiempo real (esta ventana de comunicación debe ser compatible con la actualización física de la tecla F5). Cada vez que dos personas intercambian información, la ventana debe actualizarse manualmente. Luego, mientras estemos en la ventana de comunicación, podemos abrir un script vbs. eso se actualiza cada x segundos; además, si enviamos un mensaje a un determinado servicio después de que el cliente envía los datos de comunicación, es necesario actualizarlo para verificar si el resultado de la retroalimentación es exitoso. También puede aplicar este procesamiento por lotes. Función de actualización automática. Por ejemplo, ahora quiero enviar un mensaje a un servidor cada 3 minutos. Después de cada envío, espere 3 segundos para actualizar la ventana de comunicación para evitar que el enlace se interrumpa o que la otra parte no pueda responder. se actualizará en nuestra ventana de conversación, escribiré una lista de envío fija y estableceré un temporizador para cada envío. Luego, combinado con la actualización automática, será: un contenido de información cronometrado que se actualiza periódicamente. Por lo tanto, no subestimes una simple oración de actualización automática. Tiene una amplia gama de escenarios de aplicación, solo depende de si puedes usarla de manera flexible. ¿La idea o intención del cartel original de aplicar esta función es lo que dije?
Aquí tienes una frase: Set?Shell=WScript.CreateObject("WScript.Shell")?
WScript.Sleep?0
Shell. SendKeys? "{F5}"
La primera línea: llama al botón analógico
La segunda línea: temporizador, cada 1000 = 1 segundo, 0 = sin tiempo, puedes eliminar esto directamente. para tiempos irregulares Una línea
La tercera línea: simula presionar la tecla F5
Por cierto: la declaración @ECHO?OFF no se puede usar en VBS, se puede informar un error. y VBS por defecto no ejecuta ningún fotograma.
La mejor respuesta es ocultar la llamada por lotes de bat en ejecución y actualizar automáticamente el archivo vbs. Dado que vbs puede implementarlo directamente, ¿por qué no compilarlo directamente con vbs? Luego, si necesita ejecutar muchos archivos, es mejor llamar a bat a través de vbs, porque los comandos de bat son relativamente casuales, pero hay muchas cosas necesarias que no se pueden implementar en bat. Por ejemplo, si finalmente desea utilizar bat y vbs para combinar una pequeña herramienta y luego empaquetarla en un EXE para su ejecución, tome el paquete autoextraíble Haozhi como ejemplo. Luego, lo que debe hacer es ocultar la ventana de comandos, pero una vez que la ventana de comandos está oculta, esto significa que todos los cuadros de diálogo que escribió en bat dejarán de ser válidos. Los cuadros de diálogo y las ventanas emergentes creados a través de vbs no se ocultarán, por lo que se recomienda usar vbs para llamar a bat para escribir cosas. Por supuesto, este es solo un punto, y hay más diferencias en las que no entraré. aquí.
Daré un ejemplo de la siguiente manera:
Llame a bat a través de vbs y luego empaquetelo en exe
El código de muestra de vbs es el siguiente: msgbox "Hola a todos, soy Zha". Zhahui", título, " ¡Tanwanlanye! "
msgbox?"El equipo depende de la lucha",título,"Reciclaje con un clic"
msgbox?"¡Ven conmigo!" ¡Listo! "
Set?ws?=?CreateObject("Wscript.Shell")?
ws.run?"cmd?/c?Cout1.bat", vbhide, True?
Set?Shell=WScript.CreateObject("WScript.Shell")?
WScript.Sleep?3000
Shell.SendKeys?" {F5}"
msgbox?"Mata al gran BOSS", título, "¡Recupera sangre rápidamente!"
Set?ws?=?CreateObject("Wscript.Shell")?
p >ws.run?"cmd?/c?Cout2.bat",vbhide,True?
Set?Shell=WScript.CreateObject("WScript.Shell")?
WScript.Sleep?3000
Shell.SendKeys?"{F5}"
msgbox?"¡Finalmente listo!", título, "¿Estás emocionado?"
p>CreateObject("scripting.filesystemobject").deletefile?wscript.scriptfullname
"True" significa que el comando llamado en la misma línea se cierra antes de la ejecución si desea ejecutar varios bat. Si los comandos se ejecutan al mismo tiempo, podemos eliminarlos directamente, entonces se abrirán varios scripts bat para su ejecución al mismo tiempo. Sin embargo, si se ejecutan dos o más comandos bat en un archivo al mismo tiempo, se producirá un error. ocurrirá inevitablemente.
La última oración es que el programa se suicida después de que el usuario lo descomprime y ejecuta, lo cual es igual a la oración "del?0" en bat
Contenido complementario: use buena presión o winrar para empaquetar el procesamiento por lotes en el método Exe
En primer lugar, debemos comprender antes de realizar el paquete que no importa cuál sea el contenido del exe autoextraíble, siempre que el ícono esté personalizado, está fuera del alcance de seguridad de los estándares de eliminación del software de seguridad. Casi todos los programas antivirus no reconocen la seguridad de los archivos ejecutables empaquetados autoextraíbles. Si realmente no le importa este molesto mensaje, siga el método a continuación. Si no desea verificarlo y eliminarlo con el software de seguridad primero, debe usar la interfaz generada por la herramienta de libro electrónico exe. y luego empaquete todos los archivos por lotes en libros electrónicos en el archivo adjunto y luego vincule el archivo adjunto a través del botón, no se informará del virus. Si el icono no se modifica durante la compresión, no se informará del virus. Además de estos dos métodos, también puede usar Yi Language u otras herramientas de programación simples para crear una interfaz simple, luego colocar todos los archivos por lotes en formato original (bat/vbs) en la misma carpeta y luego simplemente llamarlos a través del botón.
A continuación solo se enumeran los métodos de empaquetado tomando a Haoyao como ejemplo:
La siguiente es una captura de pantalla del contenido del archivo de un simple gadget de combinación vbs bat
Puedes notar dos lugares, uno es La segunda declaración de autoeliminación mencionada anteriormente es la declaración de ping utilizada en el archivo bat. En realidad, se puede usar aquí. La razón por la que se hace ping a cada comando durante 1 segundo es para evitar que la ventana se bloquee. En este caso, ni siquiera la ventana atascada se puede ver, pero una vez que se atasca, ocupará los recursos de la memoria del sistema instantáneamente. Aunque los comandos se ejecutan de arriba a abajo, si no hace ping, aparecerán un montón de ventanas. Aparecerá en un instante, principalmente porque el intervalo de ejecución del comando cmd es muy corto. Además de esto, también podemos usar la declaración de espera de ejecución "True" en vbs para resolver el problema. Luego tenemos que convertir cada comando bat en un archivo por lotes bat. Podemos crear tantos archivos como comandos haya y llamarlos. en vbs. , sigue siendo el siguiente comando: Set?ws?=?CreateObject("Wscript.Shell")?
ws.run?cmd?/c?El prefijo de tal y- tal archivo Tal y cual archivo El sufijo ", vbhide, True
Obviamente, esto parece muy engorroso, así que usemos PING. Por supuesto, las personas expertas en procesamiento por lotes pueden pensar en un archivo más. solución razonable. Sin embargo, las dos soluciones anteriores son relativamente fáciles de usar para los principiantes.
A continuación, comprimiré y empaquetaré estos dos archivos en exe:
El siguiente paso es seleccionar la primera página del plan de configuración:
Luego es la configuración de la opción autoextraíble. En el módulo del asistente de instalación, seleccione la interfaz gráfica autoextraíble (que se puede ocultar mediante configuraciones posteriores) para configurar las pestañas seleccionadas en la siguiente imagen:
Por favor, consulte la. tres pestañas:
Luego haga clic en Aceptar, cierre la pestaña e inicie la compresión. El resultado se muestra a continuación:
Luego, probemos si el archivo exe se ejecuta correctamente:
Entonces el gadget producido esta vez es exitoso. Por cierto, publicaré los dos códigos de archivo del ejemplo aquí y los guardaré con el sufijo vbs/bat en el Bloc de notas. ¡Los amigos que estén interesados pueden probarlo!
xxx.vbsmsgbox?"Los problemas que esta herramienta puede solucionar incluyen:" chr(13) "1. El puntero del mouse no responde durante mucho tiempo;" chr(13) "2. El mouse el doble clic falla;" chr( 13) "3. Haga clic con el botón izquierdo del mouse para que aparezcan las propiedades;" chr(13) "4. El portapapeles falla;" chr(13) "5.
", título,"¡Gracias por usarlo! "
msgbox?" solucionará el problema del mouse pronto. ¡Haga clic en Aceptar para continuar! ", título, "Recordatorio cálido"
msgbox?" ¡Haga clic en "Aceptar" cada vez que aparezca el cuadro de diálogo! ", título, "Recordatorio cálido"
Set?ws?=?CreateObject("Wscript.Shell")?
ws.run?"cmd?/c?Cut.bat ", vbhide, ¿Verdadero?
msgbox?" ¡El trabajo de reparación está completo! ¡Intente más tarde para ver si el problema se resuelve! ", título, "Reparación completada"
msgbox?" Si el problema no se ha resuelto, comuníquese conmigo y envíeme sus comentarios para obtener ayuda gratuita. ", título, "Qué hacer si falla la reparación"
CreateObject("scripting.filesystemobject").deletefile?wscript.scriptfullname
xxx.batregsvr32?urlmon.dll p>
ping?-n?1?127.0.0.1?
regsvr32?actxprxy.dll
ping?-n?1?127.0.0.1
regsvr32?oleaut32.dll?
ping?-n?1?127.0.0.1?
regsvr32?shell32.dll
ping?-n? 1?127.0.0.1?
regsvr32?jscript.dll
ping?-n?1?127.0.0.1
regsvr32?msi.dll
ping?-n?1?127.0.0.1
cd?C:/Progra~1/Common~1/System/Ole?DB/regsvr32?oledb32.dll
ping?-n?1?127.0.0.1
regsvr32?C:/Progra~1/Common~1/System/ado/msado15.dll?
del?0 p>
En cuanto a este problema:
Tanto el lenguaje de script bat como el vbs solo pueden simular las teclas del teclado, pero a diferencia del mouse, la posición del cursor es incierta si queremos. lograr Para simular la función de clic derecho del mouse, la premisa es que debemos obtener las coordenadas actuales del mouse y luego cambiar el mouse a la ventana o escritorio especificado que necesita ser actualizado. En otras palabras, si estamos. Simulando la tecla F5 o la actualización con el botón derecho del mouse, todos debemos asegurarnos de que la interfaz de trabajo esté en la interfaz donde debemos realizar la acción de actualización. Preste atención a la oración anterior: "Obtenga las coordenadas actuales. cursor". Esto requiere que creemos un marco de estructura de transferencia de datos para obtener información de coordenadas en tiempo real antes de que podamos juzgar. Se muestra la posición del elemento del menú correspondiente y el menú contextual del mouse tiene otra característica, es decir , el usuario puede agregar o reducir las teclas de acceso directo del menú contextual, pero el usuario no puede controlar la posición de clasificación de las teclas de acceso directo agregadas por él mismo. El elemento del menú de actualización puede eliminarse. Por supuesto, generalmente no afecta. La posición de clasificación del botón de actualización, porque ocupa el tercer lugar y es relativamente alta, incluso si podemos obtener las coordenadas precisas del mouse, si opera el mouse al mismo tiempo, entonces la posición es incorrecta. En teoría, vbs y bat simples no pueden simular la actualización del botón derecho del mouse, ¡al menos yo no puedo! Sin embargo, en otros lenguajes, como C#/C/VB/DELPHI y otros lenguajes de programación, es posible bloquear el mouse muy brevemente - leer coordenadas - actualizar - desbloquear.
Luego, según sus deseos, puede utilizar el formulario de llamada anterior para escribir la acción de actualización en un archivo ejecutable exe o msi a través de otros lenguajes de programación de alto nivel. Es relativamente complicado, pero puede descargar una acción de actualización creada por otros. Luego se llama al archivo ejecutable desde el lenguaje de secuencia de comandos. ¡No es fácil codificar! Soy una persona que no acepta recompensas porque ya las has aceptado, y porque también prefiero trastear con estas cosas en mi tiempo libre. ¡Se puede considerar como un hobby!