¡Cómo evitar que se reinicie en lenguaje sencillo!
. Versión 2
. Subrutina __startup_window_created
.If (si el elemento registrado existe (4, "test") = false)
Escribe el elemento registrado (4, "test", "1" )
En caso contrario
Cuadro de mensaje ("El programa se ha ejecutado una vez y no puede volver a ejecutarlo (solo en esta computadora)", 0,)
fin. ()
.if end
El siguiente punto es que la computadora local y todas las computadoras no pueden ejecutar el código fuente nuevamente después de ejecutar el código fuente solo en su propia computadora ( ¡Escribir datos en sí mismo funciona en cualquier computadora)!
.Versión 2
.Especificación de biblioteca de soporte
. Biblioteca de shell de soporte
. Biblioteca de soporte dp1
Subrutina __startup_window_created
Línea de comandos de variables locales, texto, "0"
. . Variable local Ruta propia, tipo de texto
.Detector generado por variable local, conjunto de bytes
Obtener línea de comando (línea de comando)
. Si es verdadero (obtener miembros de la matriz (línea de comando) = 2 y línea de comando [1] = "Ejecutar")
Programa de prueba generado = generar conjunto de bytes de etiquetas (leer en el archivo (línea de comando [2]]) , a byteset ("una prueba"), a byteset ("una prueba"), a byteset ("una prueba"), a byteset ("una prueba"), a byteset ("una prueba"), a byteset ("una prueba") una prueba"), a byteset ("una prueba"), a byteset ("una prueba"), a byteset ("una prueba"), a byteset ("una prueba"), a byteset ("una prueba"), a byteset ("una prueba").byteset ("prueba"))
.determinar el encabezado del bucle (escribir en el archivo (línea de comando [2], programa de prueba generado) = falso)
p >Retraso (10)
Determinar el final del ciclo ()
Retorno ()
Finalizar si es verdadero
<. p> .If (leer etiqueta byteset (to byteset ("una prueba")) = false) ' Si es false, es la primera ejecuciónSelf-path = buscar directorio de ejecución () + "\" + buscar el nombre del ejecutable ()
.Copiar archivo (ruta propia, buscar el directorio específico (11) + buscar el nombre del ejecutable ())
Ejecutar (buscar el directorio específico (11) + buscar nombre ejecutable () + " ejecutar " + # comillas + ruta propia + # comillas, falso, )
Fin ()
' Escribe un marcador para la primera ejecución. Al ejecutar, la siguiente ejecución no devolverá falso, será la segunda ejecución
.
De lo contrario
cuadro de mensaje ("¡Esta es la segunda vez que ejecuta esto, no puede volver a ejecutarlo (no está permitido en ninguna computadora)!", 0, )
Fin ( )
.Si finaliza
. La subrutina Read Marker Byteset, Logical, Public, se utiliza para leer el conjunto de bytes pasado la marca. Los datos se pueden leer y devuelve verdadero; de lo contrario, devuelve falso
. Etiqueta de parámetro, conjunto de bytes, etiqueta creada en el lado del generador
. Variable de conjunto de bytes de recuperación de parámetros, conjunto de bytes, referencia anulable
Variable local Conjunto de bytes propio, conjunto de bytes
. .Etiqueta de cifrado de variable local, conjunto de bytes
. Byteset de búsqueda de etiqueta de variable local, byteset
Auto byteset = leer archivo (obtener directorio en ejecución () + "\" + obtener nombre de archivo ejecutable ())
encrypt-tag = cifrado data (mark, "Me encantan los tontos",) ' La contraseña de cifrado se puede cambiar a voluntad
Saque la marca byteset = Descifre los datos (saque el byteset y vaya a byteset (propio conjunto de bytes, cifrado marca, marca de cifrado + a byteset("end"),),"Amo a los tontos",)
. Si es verdadero (obtener el conjunto de bytes marcado ≠ { })
obtener la variable del conjunto de bytes = obtener el conjunto de bytes marcado
Devolver (verdadero)
. Si es verdadero, finalice
Devuelve (falso)
. Subrutina Generar conjunto de bytes etiquetados (generar conjunto de bytes etiquetados), conjunto de bytes, público, utilizado para generar conjuntos de bytes etiquetados para la persona que llama en el lado de producción
. Programa fuente de parámetros, byteset
La etiqueta de parámetro, byteset, es la misma que la etiqueta leída y no se deben crear etiquetas duplicadas; de lo contrario, se sobrescribirá el conjunto de bytes de la etiqueta anterior
.. Parámetros byteset para agregar, byteset, pasa un conjunto de bytes a la persona que llama para generar
. Conjunto de bytes de variable local, conjunto de bytes generado
Variable local Token cifrado, conjunto de bytes
Token cifrado = datos cifrados (token, "Me encantan los estúpidos",)
El conjunto de bytes que se agregará = datos cifrados (el conjunto de bytes que se agregará, "Me encantan los estúpidos")
El conjunto de bytes generado = programa fuente + marca de cifrado + el conjunto de bytes que se agregará + Token de cifrado + al conjunto de bytes ("fin")
Devolver (el conjunto de bytes resultante)
. La subrutina modifica la etiqueta conjunto de bytes, lógico, público, modifica los datos pasados desde los datos creados y devuelve el nuevo conjunto de bytes modificado
. Parámetros: programa fuente, conjunto de bytes
Etiqueta de parámetro, conjunto de bytes
Conjunto de bytes de parámetros a modificar, conjunto de bytes
. Parámetros El programa modificado generado, conjunto de bytes, referencia está vacío
. Variable local El conjunto de bytes generado, conjunto de bytes
. Token de cifrado de variable local, conjunto de bytes
.
La variable local lee el conjunto de bytes, conjunto de bytes
token cifrado = datos cifrados (token, "I Love Fools")
quiero modificar el conjunto de bytes = datos cifrados (quiere modificar el conjunto de bytes, "Amo a los tontos",
Leer conjunto de bytes = conjunto de bytes después de obtener el conjunto de bytes (código fuente, token de cifrado, token de cifrado + conjunto de secciones de caracteres ("fin"),) p>
Generar programa modificado = reemplazo del conjunto de subbytes (código fuente, conjunto de bytes leídos, conjunto de bytes a modificar)
Si es verdadero (texto (conjunto de bytes leídos) ≠"")
Devuelve (verdadero)
Si es verdadero final
Devuelve (falso)
.Subrutina Después de buscar conjunto de bytes a conjunto de bytes, conjunto de bytes, total, referencia antes de buscar byteset + después de buscar byteset
.Parámetro fuente byteset, byteset
Parámetros de byteset, byteset
.
Si el parámetro contiene el conjunto de bytes inicial, lógico, se puede dejar vacío
Contiene parámetros para byteset, valor lógico, nulo
Variable local Antes de byteset, byteset<. /p>
. Variable local Después del conjunto de bytes, conjunto de bytes
Antes de la sustitución del conjunto de bytes = conjunto de bytes de origen, entre conjuntos de bytes (conjunto de bytes de origen, conjunto de bytes invertido (conjunto de bytes de origen, a conjunto de bytes), longitud del conjunto de bytes. (conjunto de bytes de origen) + conjunto de bytes invertido (conjunto de bytes de origen, a conjunto de bytes, ), , , )
Después de la sustitución de conjunto de bytes = subconjunto de bytes (conjunto de bytes de origen, entre conjunto de bytes (conjunto de bytes de origen, a conjunto de bytes), , ) p>
Después de la sustitución de conjunto de bytes = subconjunto de bytes (conjunto de bytes entre (conjunto de bytes de origen, a conjunto de bytes,), ,) entre (obtener conjunto de bytes antes, a conjunto de bytes,), obtener longitud del conjunto de bytes (obtener conjunto de bytes antes) + conjunto de bytes inverso (obtener conjunto de bytes antes , a conjunto de bytes, )), de conjunto de bytes, , )
. Si es verdadero (si se debe incluir el conjunto de bytes inicial)
El conjunto de bytes obtenido posteriormente = el conjunto de bytes inicial + el conjunto de bytes obtenido posteriormente
. Si es verdadero final
. Si es verdadero (si se incluye el conjunto de bytes)
Después de buscar el conjunto de bytes = Después de buscar el conjunto de bytes + al conjunto de bytes
Si es verdadero, final
Regresar (después de buscar el conjunto de bytes).
.