Lights Out (o Flip Tiles) es un juego de puzles electrónico que consiste en una cuadrícula de cuadrados iluminados (a veces con bombillas o interruptores) o numerados (originalmente de 5x5). El objetivo es apagar todas las luces de la cuadrícula.
Al principio del juego, se ilumina un patrón de cuadrados (en diferentes estados). Al pulsar uno de los cuadrados, se activa un interruptor, cambiando su estado (de encendido a apagado, de apagado a encendido o de color), al igual que los cuatro cuadrados adyacentes (superiores, derecho, inferior e izquierdo).
El objetivo del juego es apagar (o encender) todas las luces, preferiblemente pulsando el menor número de cuadrados posible.
Este tipo de rompecabezas se puede encontrar en diversas formas pasando desapercibido en muchos video juegos actuales...
La siguiente imagen muestra un rompecabezas tipo 'Lights Out' en el survival horror 'Tormented Souls 2', donde hay un panel/grilla cuadrada de 3x3 cuyas piezas/celdas tienen dos posiciones: vertical y horizontal, y hay que ponerlas todas en vertical para solucionar el rompecabezas:
La siguiente clase contiene:
- La función principal para resolver un rompecabezas. - Una función auxiliar para formatear visualmente un rompecabezas. - Una función auxiliar para formatear textualmente los pasos a seguir para resolver un rompecabezas.
''' <remarks> ''' Provides utility methods related with 'Lights Out' puzzles. ''' <para></para> ''' Lights Out (or Flip Tiles) is an electronic puzzle game consisting of a grid of illuminated ''' (sometimes with light bulbs or switches) or numbered (originally 5x5) squares. ''' The goal is to turn off all the lights in the grid. ''' <para></para> ''' At the start of the game, a pattern of squares is illuminated (in different states). ''' Pressing one of the squares activates a switch, changing its state ''' (from on to off, from off to on, or to a different color), ''' as well as the four adjacent squares (up, right, down, and left). ''' <para></para> ''' The goal of the game is to turn off (or on) all the lights, ''' preferably by pressing as few squares as possible. ''' </remarks> Public NotInheritable Class UtilLightsOut
#Region " Constructors "
''' <summary> ''' Prevents a default instance of the <see cref="UtilLightsOut"/> class from being created. ''' </summary> Private Sub New() End Sub
#End Region
#Region " Public Methods "
''' <summary> ''' Solves a 'Lights Out' puzzle board. ''' <para></para> ''' However, note that not all board configurations have a solution. ''' If all rows have a solution except the last one—and this option can be disabled ''' by clicking only on the last row—the configuration has a solution; ''' otherwise, it is unsolvable. ''' <para></para> ''' Mathematically, solvability depends on the image of the matrix "A". ''' <para></para> ''' This is a visual representation of an unsolvable 3x3 board: ''' <para></para>◼◻◻ 100 ''' <para></para>◻◼◻ 010 ''' <para></para>◻◻◼ 001 ''' </summary> ''' ''' <param name="board"> ''' A two-dimensional <see cref="Byte(,)"/> array representing the initial configuration of the 'Lights Out' board grid. ''' <para></para> ''' Each element corresponds to a cell, where a value of zero indicates the cell is "off", ''' and non-zero indicates the cell is "on". ''' <para></para> ''' For example: ''' <code> ''' Dim board5x5 As Byte(,) = { ''' {1, 1, 0, 1, 1}, ' ◼ ◼ ◻ ◼ ◼ ''' {1, 1, 0, 0, 0}, ' ◼ ◼ ◻ ◻ ◻ ''' {1, 0, 0, 1, 1}, ' ◼ ◻ ◻ ◼ ◼ ''' {0, 1, 1, 0, 0}, ' ◻ ◼ ◼ ◻ ◻ ''' {0, 0, 1, 0, 1} ' ◻ ◻ ◼ ◻ ◼ ''' } ''' </code> ''' </param> ''' ''' <returns> ''' A two-dimensional <see cref="Byte(,)"/> array of the same dimensions as the input board. ''' <para></para> ''' Each element indicates whether the corresponding cell should be pressed to solve the puzzle: ''' 0 means the cell does not need to be pressed, 1 means it should be pressed once. ''' <para></para> ''' The order of pressing does not matter to solve the puzzle. ''' <para></para> ''' Example: ''' <code> ''' ' Input board (1 = on, 0 = off) ''' Dim board5x5 As Byte(,) = { ''' {1, 1, 0, 1, 1}, ' ◼ ◼ ◻ ◼ ◼ ''' {1, 1, 0, 0, 0}, ' ◼ ◼ ◻ ◻ ◻ ''' {1, 0, 0, 1, 1}, ' ◼ ◻ ◻ ◼ ◼ ''' {0, 1, 1, 0, 0}, ' ◻ ◼ ◼ ◻ ◻ ''' {0, 0, 1, 0, 1} ' ◻ ◻ ◼ ◻ ◼ ''' } ''' ''' ' Solution returned by this function ''' Dim solution5x5 As Byte(,) = { ''' {0, 1, 1, 1, 0}, ' ◻ ◼ ◼ ◼ ◻ ''' {0, 1, 1, 1, 0}, ' ◻ ◼ ◼ ◼ ◻ ''' {0, 0, 0, 1, 1}, ' ◻ ◻ ◻ ◼ ◼ ''' {1, 1, 0, 0, 1}, ' ◼ ◼ ◻ ◻ ◼ ''' {0, 1, 0, 0, 0} ' ◻ ◼ ◻ ◻ ◻ ''' } ' ◼ = press once, ''' ' ◻ = do not press ''' </code> ''' </returns> <DebuggerStepperBoundary> Public Shared Function SolveLightsOutPuzzle(board As Byte(,)) As Byte(,)
' Get board dimensions Dim rows As Integer = board.GetLength(0) Dim cols As Integer = board.GetLength(1) Dim cells As Integer = rows * cols ' total number of cells.
' --- 1) Build the influence matrix "A". ' Each row represents the effect of pressing a single cell: ' toggling itself and its immediate neighbors (up, down, left, right). Dim A As BitArray() = Enumerable.Range(0, cells).Select( Function(i) Dim r As Integer = i \ cols Dim c As Integer = i Mod cols Dim row As New BitArray(cells)
' Pressing the cell toggles itself. row(i) = True
' Define neighbor offsets: up, down, left, right. Dim dr As Integer() = {-1, 1, 0, 0} Dim dc As Integer() = {0, 0, -1, 1}
' Toggle neighbors if are inside board bounds. For k As Integer = 0 To 3 Dim nr As Integer = r + dr(k) Dim nc As Integer = c + dc(k) If nr >= 0 AndAlso nr < rows AndAlso nc >= 0 AndAlso nc < cols Then row(nr * cols + nc) = True End If Next k
Return row End Function).ToArray()
' --- 2) Build the initial state vector "b". ' b(i) = True if the cell is "on" (non-zero), False if "off" (0). Dim b As New BitArray(cells) For r As Integer = 0 To rows - 1 For c As Integer = 0 To cols - 1 b(r * cols + c) = (board(r, c) <> 0) Next c Next r
' --- 3) Forward elimination (Gaussian elimination mod 2). ' Solve the linear system: "A * x = b" (mod 2). For i As Integer = 0 To cells - 1 ' If diagonal is zero, try to swap with a row below. If Not A(i)(i) Then For k As Integer = i + 1 To cells - 1 If A(k)(i) Then A(i).Xor(A(k)) ' XOR rows (addition mod 2). b(i) = b(i) Xor b(k) ' XOR corresponding element in "b". Exit For End If Next End If
' Eliminate current column for all rows below. For j As Integer = i + 1 To cells - 1 If A(j)(i) Then A(j).Xor(A(i)) b(j) = b(j) Xor b(i) End If Next j Next i
' --- 4) Back substitution. ' Solve for x starting from bottom row. Dim x As New BitArray(cells) For i As Integer = cells - 1 To 0 Step -1 ' Start with right-hand side value. Dim sum As Boolean = b(i)
' Subtract contributions from already solved variables (XOR is subtraction mod 2). For j As Integer = i + 1 To cells - 1 sum = sum Xor (A(i)(j) AndAlso x(j)) Next
' Assign solution for cell "i". x(i) = sum Next
' --- 5) Build result board (Integer(,)) of 1-based indices to press. Dim result(rows - 1, cols - 1) As Byte For i As Integer = 0 To cells - 1 Dim r As Byte = CByte(i \ cols) Dim c As Byte = CByte(i Mod cols) result(r, c) = CByte(If(x(i), 1, 0)) ' 1 = press, 0 = don't press. Next
Return result End Function
''' <summary> ''' Returns a visual representation of a 'Lights Out' board using custom characters for ON and OFF states. ''' </summary> ''' ''' <param name="board"> ''' A two-dimensional <see cref="Byte"/> array representing the 'Lights Out' board grid. ''' <para></para> ''' Each element corresponds to a cell, where a value of zero indicates the cell is "off", ''' and non-zero indicates the cell is "on". ''' <para></para> ''' For example: ''' <code> ''' Dim board5x5 As Byte(,) = { ''' {1, 1, 0, 1, 1}, ' ◼ ◼ ◻ ◼ ◼ ''' {1, 1, 0, 0, 0}, ' ◼ ◼ ◻ ◻ ◻ ''' {1, 0, 0, 1, 1}, ' ◼ ◻ ◻ ◼ ◼ ''' {0, 1, 1, 0, 0}, ' ◻ ◼ ◼ ◻ ◻ ''' {0, 0, 1, 0, 1} ' ◻ ◻ ◼ ◻ ◼ ''' } ''' </code> ''' </param> ''' ''' <param name="onChar"> ''' Optional.The character used to represent an ON (active) light. ''' <para></para> ''' Default is "◼" ''' </param> ''' ''' <param name="offChar"> ''' Optional. The character used to represent an OFF (inactive) light. ''' <para></para> ''' Default is "◻" ''' </param> ''' ''' <returns> ''' A formatted <see cref="String"/> that visually represents the current 'Lights Out' board. ''' <para></para> ''' Example: ''' <code> ''' ' Input board (1 = on, 0 = off) ''' Dim board5x5 As Byte(,) = { ''' {1, 1, 0, 1, 1}, ''' {1, 1, 0, 0, 0}, ''' {1, 0, 0, 1, 1}, ''' {0, 1, 1, 0, 0}, ''' {0, 0, 1, 0, 1} ''' } ''' ''' Format returned (◼ = on, ◻ = off): ''' ''' ◼ ◼ ◻ ◼ ◼ ''' ◼ ◼ ◻ ◻ ◻ ''' ◼ ◻ ◻ ◼ ◼ ''' ◻ ◼ ◼ ◻ ◻ ''' ◻ ◻ ◼ ◻ ◼ ''' </code> ''' </returns> <DebuggerStepperBoundary> Public Shared Function FormatLightsOutBoard(board As Byte(,), Optional onChar As Char = "◼"c, Optional offChar As Char = "◻"c) As String
Dim rows As Integer = board.GetLength(0) Dim cols As Integer = board.GetLength(1) Dim maxCapacity As Integer = (rows * (cols * 2)) + rows ' (cells + white-spaces + line breaks)
Dim sb As New StringBuilder(capacity:=maxCapacity, maxCapacity:=maxCapacity)
For r As Integer = 0 To rows - 1 For c As Integer = 0 To cols - 1 sb.Append(If(board(r, c) <> 0, onChar, offChar)) If c < (cols - 1) Then sb.Append(" "c) End If Next If r < (rows - 1) Then sb.AppendLine() End If Next
Return sb.ToString() End Function
''' <summary> ''' Returns a human-readable list of steps required to solve a 'Lights Out' puzzle board. ''' </summary> ''' ''' <param name="board"> ''' A two-dimensional <see cref="Byte"/> array representing the 'Lights Out' solution grid. ''' <para></para> ''' Each non-zero cell indicates that the corresponding cell should be pressed once. ''' <para></para> ''' For example: ''' <code> ''' Dim solution5x5 As Byte(,) = { ''' {0, 1, 1, 1, 0}, ' ◻ ◼ ◼ ◼ ◻ ''' {0, 1, 1, 1, 0}, ' ◻ ◼ ◼ ◼ ◻ ''' {0, 0, 0, 1, 1}, ' ◻ ◻ ◻ ◼ ◼ ''' {1, 1, 0, 0, 1}, ' ◼ ◼ ◻ ◻ ◼ ''' {0, 1, 0, 0, 0} ' ◻ ◼ ◻ ◻ ◻ ''' } ' 1/◼ = press once, ''' ' 0/◻ = do not press ''' </code> ''' </param> ''' ''' <returns> ''' A formatted <see cref="String"/> describing which cells to press, grouped by row. ''' <para></para> ''' Includes a total count of all required presses. ''' <para></para> ''' Example: ''' <code> ''' ' Input solution board. ''' Dim solution5x5 As Byte(,) = { ''' {0, 1, 1, 1, 0}, ' ◻ ◼ ◼ ◼ ◻ ''' {0, 1, 1, 1, 0}, ' ◻ ◼ ◼ ◼ ◻ ''' {0, 0, 0, 1, 1}, ' ◻ ◻ ◻ ◼ ◼ ''' {1, 1, 0, 0, 1}, ' ◼ ◼ ◻ ◻ ◼ ''' {0, 1, 0, 0, 0} ' ◻ ◼ ◻ ◻ ◻ ''' } ' 1/◼ = press once, ''' ' 0/◻ = do not press ''' ''' ' Example output: ''' Row 1, Cells: 2, 3, 4 ''' Row 2, Cells: 2, 3, 4 ''' Row 3, Cells: 4, 5 ''' Row 4, Cells: 1, 2, 5 ''' Row 5, Cell: 2 ''' ''' Total presses: 12 ''' </code> ''' </returns> <DebuggerStepperBoundary> Public Shared Function FormatLightsOutSolutionSteps(board As Byte(,)) As String
Dim rows As Integer = board.GetLength(0) Dim cols As Integer = board.GetLength(1)
Dim sb As New StringBuilder() Dim totalPresses As Integer = 0
For r As Integer = 0 To rows - 1 Dim pressedCells As New List(Of Integer)
For c As Integer = 0 To cols - 1 If board(r, c) <> 0 Then pressedCells.Add(c + 1) totalPresses += 1 End If Next
If pressedCells.Count > 0 Then sb.AppendLine($"Row {r + 1}, Cells: {String.Join(", ", pressedCells)}") End If Next
If totalPresses = 0 Then sb.AppendLine("No presses needed — all lights are already off.") Else sb.AppendLine().AppendLine($"Total presses: {totalPresses}") End If
Return sb.ToString() End Function
#End Region
End Class
End Namespace
#End Region
Este código funciona con rompecabezas tradicionales Lights Out que utilizan dos estados binarios: encendido (on) y apagado (off). Tanto cuadrados, como rectangulares.
PD: La implementación matemática subyacente fue generada en su totalidad por ChatGPT.
Dim solvedBoard As Byte(,) = UtilLightsOut.SolveLightsOutPuzzle(board5x5)
Dim formattedSolution As String = UtilLightsOut.FormatLightsOutBoard(solvedBoard) formattedSolution &= String.Concat(Enumerable.Repeat(Environment.NewLine, 2)) & "◼ = Press once" & Environment.NewLine & "◻ = Do not press"
MessageBox.Show(formattedSolution)
Cita de: MessageBox.Show(formattedSolution)
O con un formato más textual, coherente con el estilo técnico de un informe de solución:
Código:
... Dim solvedBoard As Byte(,) = UtilLightsOut.SolveLightsOutPuzzle(board5x5) Dim formattedSolution As String = UtilLightsOut.FormatLightsOutSolutionSteps(solvedBoard)
Si deseas extraer y unir el contenido (pista de audio y video) de un DVD y hacerlo sin pérdida de calidad (lossless) para guardarlo en un formato de contenedor de video estándar como sería MKV (Matroska Video), entonces te recomiendo utilizar cualquiera de los siguientes programas:
Ambos son gratuitos y fáciles de usar. En realidad MakeMKV es freemium pero para lo que tú lo quieres es completamente gratuito y funcional, y, además, es la opción preferible y la más sofisticada entre estos dos programas.
Opcionalmente también podrías utilizar ciertos programas para llevar a cabo un proceso de codificación de video, para convertir de MPEG2 (DVD), al estándar AVC/MPEG4, como por ejemplo Handbrake o FarmatFactory, sin embargo, este proceso implica la recomprensión del video, lo que conlleva una pérdida de calidad cuya perceptibilidad dependerá de los parámetros que utilices durante la codificación. Está claro que no tienes experiencia, así que no te lo recomiendo... a menos que realmente no te importase perder calidad de imagen del DVD. Pero lo que yo te he propuesto no implica ningún procedimiento de conversión de video, simplemente es un proceso de remultiplexación.
Vaya por delante que en temas relacionados con la privacidad y ciber seguridad tengo muchas flaquezas y puedo cometer errores, pero creo que puedo ofrecerte una respuesta que te sirva de mucha utilidad a falta de ninguna respuesta profesional por el momento...
Primero vamos a separar conceptos, por un lado están las VPN, que terminan enmascarando tu IP pública y por ende los servicios y sitios web te ubican en función de la IP de la región del servidor VPN (país/ciudad aproximada). Y por otro lado está el "GPS spoofing" o simulación de ubicación de GPS, que directamente altera las coordenadas que se reciben del hardware GPS para falsear tu ubicación por GPS.
Aquí el problema principal radica en que los PCs convencionales no tienen un dispositivo GPS integrado. Microsoft determina tu ubicación física en función de la IP y redes Wi-Fi cercanas, como se explica en el siguiente artículo oficial:
En el artículo además se dan indicaciones para explicarte como puedes modificar la ubicación predeterminada en la configuración de Windows. En teoría esa ubicación predeterminada solamente se utilizará cuando no sea posible determinar tu ubicación con mayor precisión.
Sin embargo, puedes conectar un GPS externo por USB a tu PC, y entonces tal vez si, podrías utilizar alguna aplicación de GPS spoofing como por ejemplo esta: https://apps.microsoft.com/detail/9p5rqldq3ln4 - No lo he probado ya que no tengo dispositivo GPS.
FakeGPS -g get current status FakeGPS -s <lat,long> set latitude and longitude
Probablemente este driver le sirva a cualquiera como forma definitiva para falsificar la ubicación GPS.
Ahora bien, lo que he mencionado sobre el GPS estaba relacionado con llevar a cabo una falsificación de ubicación GPS a nivel global de sistema/hardware. Si tu única intención es engañar a la API de geolocalización de Google dentro del navegador actual, que es el servicio que la mayoría de sitios webs utilizan para determinar tu ubicación por "GPS", esto resulta más sencillo usando la API de javascript que forma parte del propio navegador...
Para Firefox y Chrome puedes instalar la extensión 'Spoof Geolocation':
(existen otras alternativas de pago, como 'Location Guard')
Después de instalar la extensión, la activas (no desactives los permisos de acceso a todos los sitios web, o dejará de funcionar), te diriges a esta página web: https://webbrowsertools.com/geolocation/ y por último introduces las coordenadas que quieras.
Para ubicarte en el Estadio Olímpico de Monjuic deberías introducir las siguientes coordenadas: 41.365194,2.155611,17z
Y esto será lo que Reportará la API de geolocalización de Google:
Si alguna vez necesitas modificar la geolocalización en esta extensión, no he encontrado una forma sencilla, ni eliminando cookies ni preferencias. Lo único que me ha funcionado es desinstalar y reinstalar la extensión, o directamente eliminar manualmente los archivos de la extensión, que en mi caso se encuentran ubicados en:
1) No entiendo muy bien eso de : Descargas el CCleaner por un lado, lo instalas, descargas el CCenhancer y lo colocas en el directorio donde hayas instalado CCleaner, ejecutas el CCenhancer -solamente una única vez- y le das al botoncito en el programa para descargar/generar el archivo WinApp2.Ini, y ya puedes empezar a usar el CCleaner mejorado
2) Ccleaner permite modificar una vez descargado al español ?
Llegados a este punto lo mejor es que mires un tutorial en Youtube, como por ejemplo:
Ccleaner y Ccenhacer detallado
How to use CCEnhancer with CCleaner to Remove More Junk Files
Te agradezco mucho compañero Elektro por la información actualizada, el Argente Registry Cleaner lo he usado por última vez en el año 2017 ya ves tu hace cuánto tiempo, por eso no sabía que versiones actuales eran de pago ni que habían cambiado su interfaz gráfica, que por cirrto la que tenía antes era mucho mejor, más intuitiva y mejor diseño.
Es comprensible y era obvio, de repente hacen un cambio drástico en la interfaz gráfica y no hay por qué saberlo, no hay de qué preocuparse. Además en la mayoría de imágenes que aparecen en Google son de esas versiones antiguas, a mi también me confundió un poco al principio xD.
Y sí, menudo mojón de interfaz gráfica tiene ahora, siendo honestos, es demasiado abstracto todo, antes todos los detalles estaban al alcance de la vista, haciéndolo más fácil y productivo, mucho mejor en general.
1) los 2 son gratis ? 2) descargando los 2 no tengo que "fusionarlos" para que como dijiste "usar CCleaner con CCEnhancer (WinApp2.Ini) y adicionalmente reglas personales definidas" ? 3) a que te refieres con reglas personales definidas ?
1. CCleaner no es completamente gratis, es freemium. Pero para lo que lo necesitas te sirve la versión "gratis" (freemium) sin pasar por caja. 💰
2. El procedimiento es el siguiente: Descargas el CCleaner por un lado, lo instalas, descargas el CCenhancer y lo colocas en el directorio donde hayas instalado CCleaner, ejecutas el CCenhancer -solamente una única vez- y le das al botoncito en el programa para descargar/generar el archivo WinApp2.Ini, y ya puedes empezar a usar el CCleaner mejorado.
3. CCleaner permite especificar reglas de limpieza personalizadas, por ejemplo: 'Quiero borrar todos los archivos *.txt en el directorio "C:\basura temporal\"'.
es mejor que me quede con el Wise Registry Cleaner y utilice si es facil la combinacion de CCleaner con CCEnhancer (WinApp2.Ini) y adicionalmente reglas personales definidas.
Sí, para limpiar el registro Wise Registry Cleaner es mejor que CCleaner. El Argente también. Usa el que te parezca más fácil. Y no tienes por qué complicarte la vida con reglas personales definidas en el CCLeaner, es algo opcional.
Gracias por el aporte, y también por el aviso de archivos PE que tengan un certificado digital puedan corromperse
Gracias a ti por el comentario.
He actualizado el script para identificar archivos PE que contienen una tabla de certificados y abortar la operación de inmediato, evitando así la posible corrupción del ejecutable.
El problema radica en que el certificado digital de un archivo PE se ubica (o debería ubicarse) al final del flujo de datos del archivo. En un PE firmado, la tabla de certificados tiene un tamaño fijo que se define dentro del propio PE, y la firma puede incluir un hash del archivo (llamémosle digest o 'image hash'): https://learn.microsoft.com/es-es/windows/win32/debug/pe-format#certificate-data - que se calcula tomando en cuenta las partes del PE excepto la zona ocupada por el certificado.
Por ese motivo, cualquier byte de relleno que se agregue al final del archivo se considerará parte de la zona excluida del certificado, y esto provoca que el digest (image hash) calculado del PE ya no coincida con el almacenado en la firma, lo que hace que Windows muestre un error genérico al intentar ejecutar el archivo: "No se puede ejecutar esta aplicación en el equipo."
Para hacerlo correctamente con archivos PE firmados habría que añadir una cantidad de padding al final de la tabla de certificados (al final del archivo) pero manteniendo una alineación de 8 bytes, es decir, añadir entre 1 a 8 bytes hasta alinear la tabla, y asignar un nuevo tamaño de la tabla de certificados dentro del PE para incluir este padding y que así los bytes de relleno se excluyan del cálculo del digest o image hash y Windows no lance un error al intentar ejecutar el archivo.
Eso me resultaría tedioso implementarlo con PowerShell. Sin embargo, y por si te sirve de algo a ti o alguna otra persona interesada, compartí un código en VB.NET que precisamente sirve para hacer todo esto, permitiendo adjuntar cualquier cosa (como bytes de relleno) al final de la tabla de certificado de un archivo PE.
Con ese código en VB.NET se puede alterar el cálculo del file checksum de un archivo PE firmado digitalmente, sin corromperlo. Se usaría de la siguiente manera para añadir, por ejemplo, dos bytes de relleno a la tabla de certificados (sin contar los bytes de relleno que se añadirán automáticamente para mantener la tabla de certificados alineada):
Código
Dim inputFilePath AsString=".\executable.exe"
Dim outputFilePath AsString=".\executable_patched.exe"
me he topado con software comercial de terceros que parecen hacer sus propias comprobaciones de integridad del archivo ejecutable, por lo que al modificar el PE, dan un error genérico al intentar iniciar el programa. En conclusión, hay que verificar que el archivo ejecutable modificado funcione correctamente, sin asumir nada.
quieres decir que wise disk es mejor CCleaner con CCEnhancer (WinApp2.Ini) ? es que no se que queire decir porque yo solo conozco el ccleaner.
CCEnhancer es un complemento no oficial para CCleaner, que añade miles de nuevas reglas, ampliando así la cantidad de programas y elementos que pueden ser detectados y limpiados. Y lo que quise decir es que, en mi opinión personal, no hay nada comparable a CCleaneren combinación con ese complemento, es decir, es la mejor opción para la limpieza de archivos temporales. Puedes descargar CCEnhancer desde aquí:
Uf, ni me acordaba del Argente. Me ha sorprendido que siga existiendo, en el buen sentido.
Lo he descargado del sitio web oficial y puedo decirte que no es completamente gratuito (antes sí que lo era, por eso el compañero Daniel pensó eso, como es razonable), sino que en realidad opera bajo un modelo freemium. Es decir, puede usarse sin coste inicial, pero con ciertas restricciones a menos que realices una "donación" (de al menos 5 €, según parece). Entre esas limitaciones se incluye el bloqueo de algunas funcionalidades de mantenimiento automático, y limitar la lista de resultados de la limpieza a un máximo de 50 entradas. En teoría eso no impide la limpieza de más de 50 claves del registro (no lo he comprobado, la verdad), pero en la versión freemium NO es posible listar más de 50 entradas para comprobar qué es lo que se va a eliminar.
Por cierto, la imagen que compartió el compañero Daniel corresponde a la interfaz gráfica de versiones anteriores del programa. Actualmente la interfaz del programa, de la versión 4.x, es totalmente diferente:
Lo comento para evitar confusiones. La interfaz gráfica antigua me parece muchísimo mejor.
EDITO:
Hay sitios web donde al parecer conservan una copia de la versión 3.1.2.0 (la última versión conocida antes de la versión 4.x, y que corresponde a la interfaz gráfica de la imagen del compañero Daniel) en descarga directa:
Pero ten mucho cuidado si vas a descargar algo de cualquiera de esos enlaces. No he comprobado la integridad de ninguno de esos archivos (tampoco he comprobado que los enlaces sigan vivos), así que no puedo saber con seguridad si alguno contiene malware. Algunos podrían ser instaladores con adware. Si descargas algo, es bajo tu propia responsabilidad. Especial cuidado con cualquier instalador descargado de softonic.com (por eso está el último lugar de la lista), tienen un historial de actividades muy cuestionables a sus espaldas.
La versión 4.x es actual. La versión 3.1.2.0 al parecer se lanzó sobre el año 2016 (aquí una captura de Wayback Machine), y la versión 3.0.x es del año 2013 o anterior. Pequeño recordatorio: Windows 10 se lanzó en el año 2015, y Windows 11 en 2021. No utilices un software más antiguo que tu sistema operativo, ya que no estará preparado para los cambios de ruptura (breaking changes) y nuevas claves añadidas al registro de Windows.
el wise risk cleaner tambien lo conoces y es igual de bueno para ti ?
Querrás decir Wise 'Disk' Cleaner. Tal vez lo habré usado una vez en toda mi vida y nunca más, la verdad es que no lo recuerdo. Pero de todas formas para mi no hay nada mejor que usar CCleaner con CCEnhancer (WinApp2.Ini) y adicionalmente reglas personales definidas. No creo que exista un limpiador que abarque tal abrumadora cantidad de productos de software de terceros para hacer detecciones de sus archivos temporales (y no tan temporales).
Wise Registry Cleaner, que hay que marcar o desmarcar para que sea lo mas efectivo posible ?
En las opciones del programa puedes marcar todas las áreas de análisis del registro de Windows sin preocuparte. Así como lo tengo yo. Ten especial cuidado con marcar el área "Image File Execution" en caso de que tengas algún hijack benigno activado (un reemplazo del notepad.exe, o del taskmgr.exe, etc). Siempre puedes añadir la clave que quieras a la lista de exclusiones para que el programa la ignore.
La mayoría de conflictos al limpiar el registro suelen ser por claves vacías o que apuntan a datos huérfanos, valores que apuntan a cosas que ya no están presentes en el PC o en el registro de Windows, como por ejemplo un archivo de fuente de texto eliminada, o asociaciones a identificadores de clase (CLSIDS) que ya no están definidas en el registro tras la desinstalación de un software. Así que en general no hay que revisar ni preocuparse mucho por lo que el programa vaya a borrar, pero es una buena práctica hacer una pequeña revisión antes de borrar nada.
En torno al resto de opciones del limpiador del registro, como las copias de seguridad automáticas y/o el punto de restauración antes de modificar el registro para limpiarlo, y la lista de exclusiones, eso ya depende del uso que le quieras dar al programa, pero no afecta a su efectividad.
Si lo que me estás preguntando es qué marcar en las casillas disponibles dentro de la pestaña "System Tuneup", es complicado decirte, ya que depende de lo que tú quieras y no quieras tener activado. Yo tengo mi propio sistema para optimizar todo eso, así que este apartado o funcionalidad del programa no lo utilizo.
No te pongas a activar casillas si no entiendes lo que se va a "optimizar". Ni siquiera utilices la configuración recomendada por el Wise Registry Cleaner. Hay cosas que a mi me me resulta indispensables dejarlas de cierta forma, como por ejemplo no hacer un reinicio automático al producirse un blue-screen, no iniciar varias instancias del explorer.exe al mismo tiempo, y no matar automáticamente aplicaciones que no respondan, entre otras cosas, pero el Wise Registry Cleaner considera que tener todas esas cosas así, es una configuración "no óptima".
Por lo general en el Wise Registry Cleaner siempre deberías querer "optimizar" todas las casillas de las secciones "SSD Optimize" y "Network SpeedUp", pero en general recomiendo alejarse o al menos utilizar con mucha consciencia y cuidado cualquier funcionalidad de tweaking y system fine-tuning en este tipo de programas. Incluso entre este tipo de programas hay conflictos por que un programa considera que algo es óptimo y otros programas consideran lo contrario. Y es que la mayoría de "optimizaciones" simplemente consisten en preferencias personales para activar y desactivar características del sistema operativo.
Como alternativa gratuita (de código abierto) para tweking del sistema, enfocado a características de privacidad y seguridad, te sugiero PrivacySexy: https://github.com/undergroundwires/privacy.sexy El programa genera un script (híbrido de batch y powershell), por lo que puedes examinar las modificaciones exactas del registro de Windows que se realizarían en tu sistema antes de aplicar los cambios.
Para un tweking de aspectos estéticos (y no tan estéticos) sobre Windows, te sugeriría Winaero Tweaker: https://winaero.com/winaero-tweaker/#download Lo recomiendo tanto por el nivel de personalización que ofrece para cada tweak o ajuste estético, como también por la previsualización para muchos de esos tweaks, así sabes como quedaría el aspecto de algo antes de aplicar la modificación.
Hola en algún sitio de internet la puedo encontrar?
eBay, Vinted, Milanuncios, Wallapop... por menos de 50€ -y que no estén ya vendidas o reservadas- solo he encontrado consolas totalmente inoperativas (para piezas de repuesto), o sin la tapa de atrás donde se insertan las pilas, o con ralladuras gigantes en la pantalla que parecen zarpazos de la madre de Pikachu, o con colores defectuosos en la pantalla, o con otros defectos de imagen o sonido o imperfecciones estéticas muy severas como para tener que vender la consola a ese precio reducido...
Piensa que en el mundo del coleccionismo de consolas y video juegos retro siempre va a haber particulares (gente corriente, además de frikis y especuladores) y empresas de reventa al acecho de las mejores ofertas, durante las 24 horas, todos los días del año. Los hay que se pasan el día refrescando las páginas de los comercios online de compra-venta de 2ª mano en busca de gangas en perfecto estado, y se te adelantarán, y los hay que tienen sistemas de software automatizados para buscar, identificar y alertar cuando encuentren una ganga, y se te adelantarán mucho más rápido...
Puedes tener un golpe de suerte buscando y finalmente ser tú el que se adelante a los frikis y especuladores y a los sistemas automatizados, pero seamos realistas, las probabilidades son muy escasas. Yo en tu lugar asumiría el coste promedio de la consola, de una GBC en buen estado... si realmente te interesa adquirirla. Es lo que hay. Pero igualmente hay que mirar al milímetro las descripciones de los productos, por que incluso a 80€ he visto que se venden GBCs con la pantalla defectuosa.
Por si te sirve de algo, utilizo Wise Registry Cleaner desde hace una década y pico, ya que el limpiador del registro de CCleaner se queda muy limitado en comparación.
La empresa es legítima y totalmente confiable. Llevan en activo desde el año 2006, al menos.
A lo largo de mi vida he probado muchos programas especializados en limpiar el registro de Windows. Suelo descargar software pirata reciente para ver si descubro algún nuevo producto interesante y que tal vez sea mejor que algún software de los que ya tengo, y en ocasiones me topo con limpiadores de este estilo. Sin embargo, ninguno me ha convencido lo suficiente hasta la fecha como para reemplazar a Wise Registry Cleaner. La mayoría de programas, e incluyo a CCLeaner, no analizan ni la sexta parte de las claves que analiza Wise Registry Cleaner, o dicho de otra forma, carecen de algoritmos que se acerquen al mismo nivel de sofisticación para identificar posibles problemas y conflictos. Otros programas son suites al estilo CCleaner pero demasiado gigantescas y aparatosas tanto en diseño como en funcionalidad... cuando uno lo uno que quiere es un software que limpie el registro y ya está. Otros programas apenas ofrecen detalles sobre el tipo de problema e incluso algunos ni siquiera te indican cual es la clave afectada, están orientados para un uso muy básico, intuitivo pero haciendo una limpieza a ciegas sin saber exactamente lo que borra o modifica el programa en cuestión.
En definitiva, como Wise Registry Cleaner, para mí no hay otro.
Sin pretender que esto parezca publicidad, ya que obviamente no trabajo para ellos. Solo soy un usuario muy satisfecho con este programa y que comparte su opinión con alguien que ha pregunta acerca del programa.
Habrá gente con otras preferencias, y que Wise Registry Cleaner le parezca un mojón o que le parezca peor que otros software, claro está. No es mi caso.