elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 ... 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 [49] 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 ... 80
481  Programación / .NET (C#, VB.NET, ASP) / Re: Listar ficheros en: 23 Septiembre 2016, 13:32 pm
Hay dos tipos de error el de la unidad que no está disponible como un DVD-ROM, una disquetera. Y otro es carpetas que no se pueden abrir por estar protegidas por el sistema.

Puedes usar Try/Catch para saltar el error o también, pero te van a regañar,  "On Error Resume Next"

Código
  1.  
  2.  
  3.        Task.Factory.StartNew(Sub()
  4.                                  Me.Invoke(Sub() Me.Cursor = Cursors.WaitCursor)
  5.  
  6.                                  For Each vUnidad As String In Directory.GetLogicalDrives()
  7.  
  8.  
  9.                                      ListBox1.Invoke(DirectCast(Sub() ListBox1.Items.Add(vUnidad), MethodInvoker))
  10.                                  Next vUnidad
  11.  
  12.                                  ''Recorrer las unidades detectadas
  13.                                  Dim Pdisco As String
  14.                                  For i As Integer = 0 To Me.ListBox1.Items.Count - 1
  15.                                      Pdisco = CStr(ListBox1.Items(i))
  16.  
  17.                                      'Obtener los ficheros de las unidades
  18.                                      Try
  19.                                          Dim DirInfo As New DirectoryInfo(Pdisco)
  20.                                          For Each Files As System.IO.FileInfo In DirInfo.GetFiles("*", SearchOption.TopDirectoryOnly)
  21.                                              ListBox2.Invoke(DirectCast(Sub() ListBox2.Items.Add(Pdisco & Files.ToString), MethodInvoker))
  22.                                          Next
  23.                                      Catch ex As Exception
  24.                                      End Try
  25.                                  Next
  26.                              End Sub).ContinueWith(Sub()
  27.                                                        Me.Invoke(Sub() Me.Cursor = Cursors.Arrow)
  28.                                                    End Sub)
  29.  



De todos modos solo te va a listar los archivos inmediatos de un directorio pero no todos los archivos únicos de cada directorio y subdirectorios como carpetas y demás. Ni tampoco archivos ocultos. Por no decir que ese código no está bien implementado para ese objetivo.

Te lo he metido dentro de Task.Factory.StartNew(Sub() End Sub) para evitar que el programa se quede bloqueado mientras busca.

Ahora mismo no tengo nada para listar absolutamente todos los archivos y archivos ocultos. Tendría que mirármelo, porque nunca lo he hecho, por lo menos con VB.NET

chau

 

he estado mirándome el tema y esto sería creo más o menos lo que buscas pero..... como digo no lista todos los archivos, en este caso los de un directorio y sus subdirectorios.


Código
  1.        Dim strDirPath As String = "C:\"
  2.  
  3.        Dim astrSubDirectories As String() = Directory.GetDirectories(strDirPath)
  4.        Dim strSubDirectory As String
  5.        For Each strSubDirectory In astrSubDirectories
  6.            Dim direct As String = strSubDirectory.Remove(0, strSubDirectory.LastIndexOf("\") + 1)
  7.  
  8.            Try
  9.                Dim astrFiles As String() = Directory.GetFiles(strDirPath & direct)
  10.                ListBox1.Items.Add(strSubDirectory)
  11.                For Each strFileName In astrFiles
  12.                    ListBox1.Items.Add(strFileName)
  13.                Next
  14.  
  15.            Catch exc As Exception
  16.  
  17.            End Try
  18.        Next
  19.  
  20.        Try
  21.            Dim DirInfo As New DirectoryInfo(strDirPath)
  22.            For Each Files As System.IO.FileInfo In DirInfo.GetFiles("*", SearchOption.TopDirectoryOnly)
  23.                ListBox1.Items.Add(strDirPath & Files.ToString)
  24.            Next
  25.        Catch ex As Exception
  26.        End Try

El error de Acceso denegado, es porque hay carpetas protegidas por el sistema como Document and Settings que no deja que sean abiertas.




Código
  1.       Dim allDrives() As DriveInfo = DriveInfo.GetDrives()
  2.        For Each [Drive] In allDrives
  3.            Try
  4.                Dim astrSubDirectories As String() = Directory.GetDirectories([Drive].ToString)
  5.                Dim strSubDirectory As String
  6.                For Each strSubDirectory In astrSubDirectories
  7.                    Dim direct As String = strSubDirectory.Remove(0, strSubDirectory.LastIndexOf("\") + 1)
  8.  
  9.                    Try
  10.                        Dim astrFiles As String() = Directory.GetFiles([Drive].ToString & direct)
  11.                        ListBox1.Items.Add(strSubDirectory)
  12.                        For Each strFileName In astrFiles
  13.                            ListBox1.Items.Add(strFileName)
  14.                        Next
  15.  
  16.                    Catch exc As Exception
  17.  
  18.                    End Try
  19.                Next
  20.  
  21.                Try
  22.                    Dim DirInfo As New DirectoryInfo([Drive].ToString)
  23.                    For Each Files As System.IO.FileInfo In DirInfo.GetFiles("*", SearchOption.TopDirectoryOnly)
  24.                        ListBox1.Items.Add([Drive].ToString & Files.ToString)
  25.                    Next
  26.                Catch ex As Exception
  27.               'MessageBox.Show(ex.Message)
  28.                End Try
  29.            Catch ex As Exception
  30.              'MessageBox.Show(ex.Message)
  31.            End Try
  32.  
  33.        Next




Pues finalmente creo que di con la solución. Bastaba con añadir esto ,
Código:
"*", SearchOption.AllDirectories
a al código anterior:

Código:
Dim astrFiles As String() = Directory.GetFiles("C:\" & direct, "*", SearchOption.AllDirectories)


Aquí te muestra todos los archivos de un directorio (con la ruta completa)[/size]

Código
  1.             Dim strDrive As String = "D:\" '[Drive].ToString
  2.        Dim DriveSubDirectories As String() = Directory.GetDirectories(strDrive)
  3.        For Each strSubDirectory As String In DriveSubDirectories
  4.            Dim strFolder As String = strSubDirectory.Remove(0, strSubDirectory.LastIndexOf("\") + 1)
  5.            ListBox1.Items.Add(strSubDirectory) '<---Carpeta
  6.            Try
  7.                Dim strFiles As String() = Directory.GetFiles(strDrive & strFolder, "*", SearchOption.AllDirectories)
  8.                For Each strFileName In strFiles
  9.                    ListBox1.Items.Add(strFileName) '<--Archivo con ruta completa
  10.                Next
  11.            Catch ex As Exception
  12.                '   MessageBox.Show(ex.Message)
  13.            End Try 'strFiles
  14.        Next   'strSubDirectory
  15.        Try
  16.            Dim DirInfo As New DirectoryInfo(strDrive)
  17.            For Each Files As System.IO.FileInfo In DirInfo.GetFiles("*", SearchOption.TopDirectoryOnly)
  18.                ListBox1.Items.Add(strDrive & Files.ToString)
  19.            Next
  20.        Catch ex As Exception
  21.        End Try 'DirInfo


Pero tarda bastante... según el número de archivos y subdirectorios...

Para obtener todos de todas las unidades

Código
  1.  
  2.           Dim allDrives() As DriveInfo = DriveInfo.GetDrives()
  3.        For Each [Drive] In allDrives
  4.            Try
  5.                Dim strDrive As String = [Drive].ToString
  6.                Dim DriveSubDirectories As String() = Directory.GetDirectories(strDrive)
  7.                For Each strSubDirectory As String In DriveSubDirectories
  8.                    Dim strFolder As String = strSubDirectory.Remove(0, strSubDirectory.LastIndexOf("\") + 1)
  9.                    ListBox1.Items.Add(strSubDirectory) '<---Carpeta
  10.                    Try
  11.                        Dim strFiles As String() = Directory.GetFiles(strDrive &
  12.                                                                      strFolder,
  13.                                                                      "*",
  14.                                                                      SearchOption.AllDirectories)
  15.                        For Each strFileName In strFiles
  16.                            ListBox1.Items.Add(strFileName) '<--Archivo con ruta completa
  17.                        Next 'strFileName
  18.                    Catch ex As Exception
  19.                        '   MessageBox.Show(ex.Message)
  20.                    End Try 'strFiles
  21.                Next  'strSubDirectory
  22.  
  23.                Try
  24.                    Dim DirInfo As New DirectoryInfo(strDrive)
  25.                    For Each Files As System.IO.FileInfo In DirInfo.GetFiles("*", SearchOption.TopDirectoryOnly)
  26.                        ListBox1.Items.Add(strDrive & Files.ToString)
  27.                    Next 'Files
  28.                Catch ex As Exception
  29.                    '   MessageBox.Show(ex.Message)
  30.                End Try 'DirInfo
  31.  
  32.            Catch ex As Exception
  33.                MessageBox.Show(ex.Message)
  34.            End Try 'Drives
  35.        Next '[Drive]
  36.  


Pero te va a tardar un guevo  :xD

**Se me olvidaba, para ver los archivos ocultos y otros protegidos del sistema basta con ejecutar la aplicación con privilegios de administrador.
482  Programación / Programación General / Re: Ocultar icono del area de notificacion en: 23 Septiembre 2016, 01:59 am
¿es un icono con tetas o algo así o que? XD

Lo típico sería dar con el botón derecho al reloj de la barra de tareas. Y haces clic en 'Personalizar iconos de notificación'  Busca el que no quieres que se vea y cambias a 'Ocultar icono y notificación'. Pero esto no lo quita realmente, solo lo oculta, per si le das para extender los iconos de notificación, se verá igualmente.

Desde consola o modificando algo del registro no se me ocurre como. Tan solo modificando el propio programa.

Para modificarlo puedes usar Resource Hacker.

Haz una copia del EXE del programa y después abres el EXE del programa con Resource Hacker. RH mostrará un árbol de carpetas y debería  haber una carpetita llamada Icon Group que contiene iconos. Los puedes eliminar o bien sustituirlo por iconos nulos sin imagen. Yo los eliminaría directamente, selecciona un icono o grupo de iconos, clic con el botón derecho y selecciona 'Delete Resource'. Deberías borrar el que se ve en el área de notificación.

Luego guardas y al hacerlo RH creará una copia automática del EXE original y el modificado. Si ejecutas el EXE (el modificado) ya no debería mostrar ningún icono de notificación.

No te preocupes si  el icono del  EXE cambia. Si el programa usa un icono para todo el área de notificación, el EXE, la ventana, etc. Al borrarlo Windows le pone uno general pero no mostrará ninguno en el área de notificación.


va olvídalo he probado lo de borrar el icono y no funciona. Debería pero no.

Quizás con otro tipo de modificación, accediendo al código binario.






483  Foros Generales / Foro Libre / Re: Sobre las leyes de la robotica de Isaac Asimov en: 23 Septiembre 2016, 01:21 am
Un dron es técnicamente un robot y ya estamos viendo como con este bicho no se cumplen esas leyes con los drones de combate.

Yo creo que esas leyes están más pensadas para la 'inteligencia artificial' propia de los robots de la ficción de Asimov.

Si se va a crear un robot con inteligencia artificial capaz de tomar decisiones (no programadas) por sí mismo, sería muy peligroso que se tornasen en contra de cualquier ser humano. Sobre todo y especialmente con robots de combate y armados.
484  Programación / .NET (C#, VB.NET, ASP) / Re: Problema ocultando Form1 y liberando sus controles en: 22 Septiembre 2016, 22:06 pm
Bueno gracias funciona.

Sin embargo no es problema así usar Show. Funciona ponga Show que Visible=true. Pero de forma directa sin usar NEW

Código
  1.  
  2. Private Sub FormA_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
  3.        '  FormA.Visible = True
  4.        FormA.Show()
  5.    End Sub
  6.  


(Esto todo en un formulario)

Código
  1. Public NotInheritable Class FormA : Inherits Form
  2.  
  3.    Friend ButtonShowFormB As Button
  4.  
  5.    Public Sub New()
  6.        MyClass.InitializeComponent()
  7.        Me.Text = "FormA"
  8.    End Sub
  9.  
  10.    Private Sub FormA_VisibleChanged(sender As Object, e As EventArgs) Handles Me.VisibleChanged
  11.  
  12.        If DirectCast(sender, Form).Visible Then
  13.            Me.ButtonShowFormB = New Button With
  14.       {
  15.         .Text = "Show FormB",
  16. .Location = New Point(10, 10)
  17.       }
  18.            Me.Controls.Add(Me.ButtonShowFormB)
  19.            AddHandler Me.ButtonShowFormB.Click, AddressOf ButtonShowFormB_Click
  20.  
  21.        End If
  22.    End Sub
  23.  
  24.  
  25.    Private Sub FormMain_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  26.        Me.Controls.Add(Me.ButtonShowFormB)
  27.    End Sub
  28.  
  29.    Private Sub ButtonShowFormB_Click(ByVal sender As Object, ByVal e As EventArgs)
  30.        RemoveHandler Me.ButtonShowFormB.Click, AddressOf ButtonShowFormB_Click
  31.        Me.ButtonShowFormB.Dispose()
  32.        Me.ButtonShowFormB = Nothing
  33.        Me.Hide()
  34.        FormB.Show()
  35.    End Sub
  36.  
  37.  
  38. End Class
  39.  
  40. Public NotInheritable Class FormB : Inherits Form
  41.    Friend ButtonShowFormB As Button
  42.    Public Sub New()
  43.        Me.Text = "FormB"
  44.        Me.ButtonShowFormB = New Button With
  45.            {
  46.              .Text = "Show FormA",
  47.              .Location = New Point(10, 10)
  48.            }
  49.        AddHandler Me.ButtonShowFormB.Click, AddressOf ButtonShowFormB_Click
  50.    End Sub
  51.  
  52.    Private Sub FormA_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
  53.        '  FormA.Visible = True
  54.        FormA.Show()
  55.    End Sub
  56.  
  57.    Private Sub FormMain_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  58.        Me.Controls.Add(Me.ButtonShowFormB)
  59.    End Sub
  60.  
  61.    Private Sub ButtonShowFormB_Click(ByVal sender As Object, ByVal e As EventArgs)
  62.        Me.Close()
  63.    End Sub
  64. End Class


Esto ya lo contemple y crear un proceso que cargue los controles desde el Closing del Form2. Pero pensé que no era la forma correcta de hacerlo. Supongo que si el número de controles y eventos del formulario principal no es muy grande, no pasa nada que no se eliminen los eventos y los controles.

485  Foros Generales / Foro Libre / Re: USB Killer ¿Qué opinas? en: 22 Septiembre 2016, 17:21 pm
Yo que sepa solo he visto uno y me lo regaló un amigo diciendo que dentro tenía pelis, cuando no estaba en el cuarto se lo metí en su ordenador para ver que películas eran  >:D

XD el efecto búmeran.

No se si lo que cuentas es cierto o es para dar ideas...

teniendo amigos así quien necesita enemigos
486  Programación / .NET (C#, VB.NET, ASP) / Re: Problema ocultando Form1 y liberando sus controles en: 22 Septiembre 2016, 16:41 pm
Realmente no quería hacer un formulario Dialog, lo que pasa es que lo puse así para diferenciar el principal del que no lo es y al otro le puse dialog.


Para explicar voy a cambiar: tengo dos formularios FormA (principal) y FormB (secundario)

Lo que quiero es iniciar el segundo formulario y  FormA ocultarlo mediante 'HIDE". Pero al ocultar el principal realmente sigue en memoria y para liberar memoria quería eliminar todos los eventos y controles del FormA , al mostrar el FormB

Cuando cierro FormB todo se libera así que aquí no tengo que usar dispose ni nada, no se porqué lo puse ahí.

Pero cuando vuelvo a mostrar el formulario FormA usando Visible = True, como eliminé todos los controles, ya no aparecen. Así que uso Show.   Así que uso:

Código
  1.  
  2. Dim frmMain As New FormA
  3.        frmMain.Show()
  4.  

(hay varias maneras, lo se)

Y todos los controles se carga de nuevo, PERO , cuando cierro FormA no se cierra.

Esta es la cosa.


DEMOSTRACIÓN:

FORMA
Código
  1. Public NotInheritable Class FormA : Inherits Form
  2.  
  3.    Friend ButtonShowFormB As Button
  4.  
  5.    Public Sub New()
  6.        MyClass.InitializeComponent()
  7.        Me.Text = "FormA"
  8.        Me.ButtonShowFormB = New Button With
  9.            {
  10.              .Text = "Show FormB",
  11.              .Location = New Point(10, 10)
  12.            }
  13.        AddHandler Me.ButtonShowFormB.Click, AddressOf ButtonShowFormB_Click
  14.    End Sub
  15.  
  16.    Private Sub FormMain_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  17.        Me.Controls.Add(Me.ButtonShowFormB)
  18.    End Sub
  19.  
  20.    Private Sub ButtonShowFormB_Click(ByVal sender As Object, ByVal e As EventArgs)
  21.        'Libera los controles
  22.        ButtonShowFormB.Dispose()
  23.        RemoveHandler Me.ButtonShowFormB.Click, AddressOf ButtonShowFormB_Click
  24.  
  25.        'Oculta el form
  26.        Me.Hide()
  27.  
  28.        'Muestra el Form2
  29.        FormB.Show()
  30.    End Sub
  31.  
  32. End Class


FORMB
Código
  1. Public NotInheritable Class FormB : Inherits Form
  2.  
  3.    Friend WithEvents ButtonShowFormA As Button
  4.  
  5.    Public Sub New()
  6.  
  7.        MyClass.InitializeComponent()
  8.  
  9.        With Me
  10.            .Text = "FormFB"
  11.            .FormBorderStyle = FormBorderStyle.FixedDialog
  12.            .Owner = My.MyProject.Forms.FormA
  13.            .StartPosition = FormStartPosition.CenterParent
  14.        End With
  15.  
  16.        Me.ButtonShowFormA = New Button With
  17.            {
  18.              .Text = "Show FormA",
  19.              .Location = New Point(10, 10)
  20.            }
  21.  
  22.    End Sub
  23.  
  24.    Private Sub FormB_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  25.        Dim frm As New FormA
  26.        frm.Show()
  27.    End Sub
  28.  
  29.    Private Sub FormDlg_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  30.        Me.Controls.Add(Me.ButtonShowFormA)
  31.    End Sub
  32.  
  33.    Private Sub ButtonShowFormA_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ButtonShowFormA.Click
  34.        Me.Close()
  35.    End Sub
  36.  
  37. End Class

Pulsa el botón: se oculta el FORMA (y elimina los controles), y se muestra el FORMB
Pulsa el botón: Se CIERRA el FORMB y se carga el FORMA (recarga los controles)

Y aquí es donde se lía la cosa. Al cerrar (con el botón cerrar X) el formulario FORMA, la aplicación no se cierra se queda pendiente.

Ese es el problema.

No se si es que al hacer esto:

Código
  1.   Private Sub FormB_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  2.        Dim frm As New FormA
  3.        frm.Show()
  4.    End Sub

Se crea otro FormA visible con todos sus controles y queda pendiente en memoria el FormA inicial sin controles que hemos ocultado mediante HIDE.

La verdad no se.

Se soluciona añadiendo END, pero no debería ser necesario. Algo raro ocurre.

Tiene que haber alguna manera de crear de nuevo todos los controles cuando el FormA vuelva a ser visible

si hago esto al cerrar el FormA y mostrar el FormB, simplemente se cierra la aplicación:

Código
  1.    Private Sub ButtonShowFormB_Click(ByVal sender As Object, ByVal e As EventArgs)
  2.        'Libera los controles
  3.        '  ButtonShowFormB.Dispose()
  4.        'RemoveHandler Me.ButtonShowFormB.Click, AddressOf ButtonShowFormB_Click
  5.        MyBase.Dispose(disposing:=True) 'o  Me.Dispose()
  6.  
  7.        'Oculta el form
  8.        Me.Hide()
  9.  
  10.        'Muestra el Form2
  11.        FormB.Show()
  12.    End Sub


Si me solucionas el problema te cuelgo el programa  ::)


487  Sistemas Operativos / Windows / Limpiar Windows manualmente en: 22 Septiembre 2016, 15:35 pm
////Eliminar un programa manualmente/////:
(porque de forma predeterminada no puedes, es decir desde AGREGAR Y QUITAR PROGRAMAS  o desde el desinstalador del programa)

Tecla Windows + R, escribe REGEDIT.EXE y pulsa ENTER

Dirígete a la clave:
Código:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Aquí se encuentran una serie de claves que hacen referencia a programas instalados de 32bits en sistemas de 32bits, y 64bits en sistemas de 64bits

Los programas de 32bits en sistemas de 64bits están en:
Código:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\


Por ejemplo si no puedes eliminar Firefox de 32bits, seleccionas la clave Uninstall, Selecciona en el menú Edición, la opción BUSCAR, desmarca "Claves"  y  "Valores" y deja marcado Datos  y pones "Mozilla". Entonces REGEDIT buscará a partir de Uninstall, claves que contengan datos con valor "Mozilla". Debería encontrar una similar a esta, según versión:
Código:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox 43.0.1 (x86 es-ES)

Para comprobar que el programa que queremos eliminar es el correcto pones, comprueba el valor InstallLocation que muestra el directorio donde está instalado el programa.

En el caso de Mozilla Firefox debería poner:
Código:
C:\Program Files (x86)\Mozilla Firefox
(en sistemas de 64bits con Firefox de 32bits)
Código:
C:\Program Files\Mozilla Firefox
(En sistemas de 32bits)

o también:
Código:
C:\Archivos de Programa\Mozilla Firefox

Para asegurarte más aún comprueba el valor DisplayName, muestra el nombre de la aplicación que aparece en la lista del desinstalador de programas de Windows.


Una vez estás seguro que la clave es del programa que quieres eliminar, borras la clave (por si acaso puedes exportarla a un archivo reg para poder recuperarla) y  cuando abras el desinstalador de Windows, ya no aparecerá en la lista.


Ten en cuenta que hay programas que crean varias claves. Por ejemplo Nero, crea claves para cada uno de sus componentes; Nero Vision, Nero Recode, Nero ShowTime, etc. Igualmente ocurre con Adobe Photoshop, por ejemplo.


Los programas suelen crear claves de consulta de datos o registro en el registro de Windows. Suelen estar en:

Código:
HKEY_CURRENT_USER\Software
HKEY_LOCAL_MACHINE\SOFTWARE

Código:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
(programas de 32bits en sistemas de 64bits)


Por ejemplo Mozilla Firefox crea esta clave:
Código:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla


Se pueden borrar, sin problemas, pero recuerda que es recomendable exportar las claves antes de borrar si no se estás seguro, para restaurarlas en caso de error.

Los programas suelen crear otras claves por todo el registro, pero no siempre sabemos cuales son o si el borrarlas pueden generar problemas al sistema o no. Por ello solo muestro la clave anterior.


Pero el hecho que borres las claves y no aparezca el programa en el desinstalador de programas de Windows no significa que el programa esté desinstalado, completamente. Falta borrar los archivos que suelen estar en:
Código:
C:\Program Files\
C:\Program Files (x86)\

Por ejemplo Mozilla Firefox (32bits) en un sistama de 64bits estaría en:
Código:
C:\Program Files (x86)\Mozilla Firefox

Esta carpeta se borra y ya tendrías el programa desinstalado. Sin embargo los programas pueden crear archivos de dependencia y carpetas en otros directorios como [\system32], [\Common Files], [C:\Users\Usuario\AppData\Roaming], [C:\Users\USUARIO\AppData\Local], [C:\ProgramData]. Por ejemplo Mozilla Firefox crea:

Código:
C:\Users\USUARIO\AppData\Roaming\Mozilla
C:\Users\USUARIO\AppData\Local\Mozilla


Así que si quieres hacer una desinstalación total debes eliminar también estos archivos y carpetas de dependencia, siempre y cuando esté seguro que pertenezcan con seguridad al programa que quieres eliminar o bien no sean compartidos por otro programa que los pueda necesitar.

Una forma de saber que archivos y carpetas ha creado un programa es ver el archivo
Código:
install.log
, que normalmente se encuentra en la carpeta donde está instalado el programa junto al programa de desinstalación. Este archivo muestra una lista de los archivos, carpetas y algunas claves de registro creados por el programa. Si no lo encuentras haces clic con el botón derecho sobre el acceso directo del Uninstall para ver el directorio donde se encuentra y ahí debería estar el install.log

Desgraciadamente no todos los programas tienen un
Código:
install.log
legible con el notepad, algunos usan un formato de archivos DAT u otro tipo y otro nombre. Y otros ni siquiera lo tienen.



[////Limpiar archivos temporales/////]

Tecla Windows + R, escribes
Código:
%windir%\system32\cleanmgr.exe
y pulsas ENTER
   
Esto inicia el liberador de espacio en disco de Windows.

Selecciona el directorio C:

Click en Limpiar archivos del sistema

y marcas:
[v]Archivos temporales de internet
[v]Archivos de registro de instalación
[v]Papelera de reciclaje
[v]Archivos temporales
[V]Miniaturas


Si deseas eliminar las instantáneas de restauración:
Clic en 'LImpiar archivos del sistema'
Selecciona 'Más opciones'
En 'Restaurar sistema e instantáneas' pulsa 'Liberar'


Para limpiar la carpeta Temp:
Muchos programas, generan o crean multitud de archivos temporales. Hay programas de instalación empaquetados que se desempaquetan en la carpeta temporal y ejecutan la isntalación, instalan el programa pero dejan toda la basura de instalación allí. Hay incluso Updates automáticos que generan archivos gigantescos allí, que a veces quedan corruptos o a medias y ocupan un buen cacho de disco. Por eso es recomendable de vez en cuando limpiar la carpeta temporal.

-Abre notepad y pones esto:
Código:
 FOR /D %%p IN (%temp%*.*) DO rmdir "%%p" /s /q
del /q %temp%\*.*
md  "%Temp%"

--Guarda como LimpiarCarpetaTemp.cmd
---Ejecuta  LimpiarCarpetaTemp.cmd

(Recomiendo cerrar todos los programas antes de limpiar la carpeta temporal)




488  Programación / .NET (C#, VB.NET, ASP) / Problema ocultando Form1 y liberando sus controles en: 22 Septiembre 2016, 12:06 pm
Hace tiempo que no entro aquí XD

Pero este es un problema difícil de buscar. No se ni que poner en google.

Es muy simple, cargo un formulario principal A, con X controles. Luego oculto A y libero sus controles al cargar el formulario B. Al cerrar B, se liberan los controles y eventos de B y se vuelve a mostrar el formulario A y recarga sus controles y eventos. Pero tras esto el formulario A no se cierra. Lo podría solucionar simplemente usando End. Pero no es elegante, está claro que no aplico bien el método.

Formulario 1
Código
  1. Public NotInheritable Class frmMain
  2.    Inherits Form
  3.    Friend MyButton1 As Button
  4.  
  5.    Public Sub New()
  6.  
  7.        ' Llamada necesaria para el diseñador.
  8.        MyClass.InitializeComponent()
  9.        Me.MyButton1 = New Button With {
  10.            .Text = "Show Form2",
  11.            .Location = New Point(10, 10)
  12.        }
  13.        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().
  14.        AddHandler MyButton1.Click, AddressOf MyButton1_Click
  15.    End Sub
  16.  
  17.  
  18.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  19.        Me.Controls.Add(MyButton1)
  20.        Me.Text = "frmMain"
  21.    End Sub
  22.    Private Sub MyButton1_Click(sender As Object, e As EventArgs)
  23.        DisposeControls()
  24.        Me.Hide()
  25.        frmDialog.Show()
  26.    End Sub
  27.  
  28.    Sub DisposeControls()
  29.        Me.MyButton1.Dispose()
  30.        RemoveHandler MyButton1.Click, AddressOf MyButton1_Click
  31.    End Sub
  32.  
  33. End Class
  34.  


Formulario 2
Código
  1. Public NotInheritable Class frmDialog
  2.    Inherits Form
  3.    Friend MyButton2 As Button
  4.    Friend fmain As New frmMain
  5.    Public Sub New()
  6.        ' Llamada necesaria para el diseñador.
  7.        MyClass.InitializeComponent()
  8.        MyButton2 = New Button With
  9.        {
  10.            .Text = "Show Form1",
  11.            .Location = New Point(10, 10)
  12.        }
  13.        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().
  14.        AddHandler MyButton2.Click, AddressOf MyButton2_Click
  15.    End Sub
  16.  
  17.    Private Sub frmDialog_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  18.        fmain.Show()
  19.        ' fmain.Visible=tue
  20.  
  21.    End Sub
  22.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  23.        Me.Controls.Add(MyButton2)
  24.        Me.Text = "frmDialog"
  25.    End Sub
  26.    Private Sub MyButton2_Click(sender As Object, e As EventArgs)
  27.        DisposeControls()
  28.        Me.Close()
  29.    End Sub
  30.    Sub DisposeControls()
  31.  
  32.        RemoveHandler MyButton2.Click, AddressOf MyButton2_Click
  33.        Me.MyButton2.Dispose()
  34.    End Sub
  35. End Class

He probado de todo.



gracias por la ayuda



Si no libero los controles y eventos creados en el formulario A, entonces va bien. Pero deberían poderse liberar.


Código
  1. Public NotInheritable Class frmMain
  2.    Inherits Form
  3.    Friend MyButton1 As Button
  4.  
  5.    Public Sub New()
  6.  
  7.        ' Llamada necesaria para el diseñador.
  8.        MyClass.InitializeComponent()
  9.        Me.MyButton1 = New Button With {
  10.            .Text = "Show Form2",
  11.            .Location = New Point(10, 10)
  12.        }
  13.        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().
  14.        AddHandler MyButton1.Click, AddressOf MyButton1_Click
  15.    End Sub
  16.  
  17.  
  18.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  19.        Me.Controls.Add(MyButton1)
  20.        Me.Text = "frmMain"
  21.    End Sub
  22.    Private Sub MyButton1_Click(sender As Object, e As EventArgs)
  23.        DisposeControls()
  24.        Me.Hide()
  25.        frmDialog.Show()
  26.    End Sub
  27.  
  28.    Sub DisposeControls()
  29.        Me.MyButton1.Dispose()
  30.        RemoveHandler MyButton1.Click, AddressOf MyButton1_Click
  31.    End Sub
  32.  
  33. End Class


Código
  1. Public NotInheritable Class frmDialog
  2.    Inherits Form
  3.    Friend MyButton2 As Button
  4.    Public Sub New()
  5.        ' Llamada necesaria para el diseñador.
  6.        MyClass.InitializeComponent()
  7.        MyButton2 = New Button With
  8.        {
  9.            .Text = "Show Form1",
  10.            .Location = New Point(10, 10)
  11.        }
  12.        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().
  13.        AddHandler MyButton2.Click, AddressOf MyButton2_Click
  14.    End Sub
  15.  
  16.    Private Sub frmDialog_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  17.        '  fmain.Show()
  18.        frmMain.Show()
  19.  
  20.    End Sub
  21.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  22.        Me.Controls.Add(MyButton2)
  23.        Me.Text = "frmDialog"
  24.    End Sub
  25.    Private Sub MyButton2_Click(sender As Object, e As EventArgs)
  26.        'DisposeControls()
  27.        Me.Close()
  28.    End Sub
  29.    Sub DisposeControls()
  30.  
  31.        RemoveHandler MyButton2.Click, AddressOf MyButton2_Click
  32.        Me.MyButton2.Dispose()
  33.    End Sub
  34. End Class
489  Foros Generales / Dudas Generales / Sitio para colgar fotos en: 19 Septiembre 2016, 11:33 am
Hola buenas. Me pueden decir sitios para colgar fotos gratuitamente, para luego poder compartirlas con un link. ¿Cuál me recomiendan?


Supongo esta pregunta se habrá hecho muchas veces pero en el buscador encontraba como subir a este foro no como colgarlas en alguna parte.

Gracias


ups, encontré en google.

http://fotografia.about.com/od/Impresion_publicacion/tp/10-Sitios-Para-Publicar-Primera-Parte.htm
490  Foros Generales / Foro Libre / Re: USB Killer ¿Qué opinas? en: 19 Septiembre 2016, 11:17 am
Me creeré esas escusas cuando en la superficie del USB diga claramente "Atención este dispositivo puede inutilizar por completo el aparato al que lo conecte, peligro de alta tensión"

Mientras tanto, no me creo nada

No creo porque no cabe XD

Creo que lo define el logo del pendrive

Eso lo pondrá en la caja o en las instrucciones.

Todo tiene su antítesis. Ya veo a un fabricante o emprendedor/es creando otro dispositivo llamado USB  anti-killer o algo así para comprobar si equis pendrive es un killer o no, para evitar malas intenciones, jeje.

USB Tester


Mi duda es si en un ordenador se cargaría también un disco duro o solo la placa base.
Páginas: 1 ... 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 [49] 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 ... 80
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines