Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#7791
@helejagy

Puedes modificar el icono asignado, desde el registro.

En el valor por defecto (default) de la clave:
HKEY_CLASSES_ROOT\.pdf

Pondrá algo como "pdf file", o "word pdf file" o algo parecido, yo no uso el Word así que la asociación para mi es distinta, me pone un programa distinto.

Bueno, imaginemos que el valor por defecto es "SumatraPDF", pues entonces solo tienes que buscar la clave "SumatraPDF" en la raíz HKEY_CLASSES_ROOT y modificar la ruta del icono del valor "Defaulticon":

HKEY_CLASSES_ROOT\sumatraPDF\DefaultIcon

Saludos
#7792
@Pédrin-2

La única solución es usar programas de terceros, o pasar el mouse por encima de cada carpeta de forma manual, asi que tu mismo, no busques más donde no hay.

http://superuser.com/questions/490378/does-windows-8-explorer-have-a-foldersize-column-or-restore-the-column-handler

Cita de: Pédrin-2 en 11 Octubre 2013, 01:07 AMTanto les cuesta a los de Windows poner algo tan util como ver el tamaño de las carpetas?

Para que Windows (o cualquier programa/shell-extension) pueda conocer el tamaño de una carpeta primero debe procesar todos los archivos de dicha carpeta incluyendo subdirectorios y todos los archivos de dichos subdirectorios que contenga la susodicha carpeta, para sumar el tamaño total de cada archivo.

Si Microsoft ha implementado esa caracteristica al pasar el mouse por una carpeta, pero no ha integrado este atributo en las columnas del Explorer debe ser por algo, no porque no sepan hacerlo (...).

Y una razón muy simple podría ser esta:

¿Ves factible que una shell extension trabaje sin pausa procesando todos los archivos de cada carpeta y de todas sus subcarpetas para mostrate el maldito tamaño de las carpeta, consumiendo así una tasa innecesaria de lectura del HDD y un desgaste de vida del mismo cuando navegas por una carpeta?.

Eso séria un punto muy en contra para el rendimiento del SO/HDD, y no me quiero ni imaginar dicha shell extensión (folder-size) o programas similares de terceros cuando intentas mostrar el tamaño de la carpeta Windows/WinSXS, tanta lectura de archivos constante solo apra mostrar el tamaño, en fín... creo que no vale la pena malgastar así el disco duro y estamos mejor sin extensiones de ese tipo.

Saludos!
#7793
Hola

1. No te recomiendo usar Shell, dispones de la Class Process para personalizar los parámetros de un nuevo proceso y ejeuctarlo.

2.

Código (vbnet) [Seleccionar]
ReadOnly DefaultPass As String = "Pudin"
Private UserPass As String = "pudin"

If String.Compare(UserPass, DefaultPass, True) = 0 Then
     MsgBox("Contraseña correcta")
End If


3.

Código (vbnet) [Seleccionar]
    #Region " Get CPU ID "
     
       ' [ Get CPU ID ]
       '
       '// By Elektro H@cker
       '
       ' INSTRUCTIONS:
       ' 1. Add a reference to "System.Management"
       '
       ' Examples :
       ' Dim ProcID As String = Get_CPU_ID()
       ' MsgBox(Get_CPU_ID())
     
    Private Function Get_CPU_ID() As String

        Dim wmi As Management.ManagementObjectSearcher = _
            New Management.ManagementObjectSearcher("select * from Win32_Processor")

        Dim val As String = wmi.Get(0)("ProcessorID")

        wmi.Dispose()

        Return val.ToString

    End Function
     
    #End Region


Código (vbnet) [Seleccionar]
    #Region " Get Motherboard ID "
     
       ' [ Get Motherboard ID ]
       '
       '// By Elektro H@cker
       '
       ' INSTRUCTIONS:
       ' 1. Add a reference to "System.Management"
       '
       ' Examples :
       ' Dim MotherID As String = Get_Motherboard_ID()
       ' MsgBox(Get_Motherboard_ID())
     
    Private Function Get_Motherboard_ID() As String

        Dim wmi As Management.ManagementObjectSearcher = _
            New Management.ManagementObjectSearcher("select * from Win32_BaseBoard")

        Dim val As String = wmi.Get(0)("SerialNumber")

        wmi.Dispose()

        Return val

    End Function
     
    #End Region


Saludos!
#7794
Añadido a los temas interesantes,
Gracias por compartir.
#7795
Otra función simple, que devuelve las medidas de la fuente de texto:

Código (vbnet) [Seleccionar]
#Region " Get Text Measure "

    ' [ Get Text Measure ]
    '
    ' // By Elektro H@cker
    '
    ' Examples :
    '
    ' MsgBox(Get_Text_Measure("Hello World!", New Font(New FontFamily("Lucida Console"), 12)).Width)  ' Result: 127
    ' MsgBox(Get_Text_Measure("Hello World!", New Font(New FontFamily("Lucida Console"), 12)).Height) ' Result: 16

    Private Function Get_Text_Measure(ByVal text As String, ByVal font As Font) As SizeF
        Return TextRenderer.MeasureText(text, font)
    End Function

#End Region







Esta función obtiene el texto de una ventana, pasándole como parámetro el handle de dicha ventana:

Código (vbnet) [Seleccionar]
#Region " Get Window Text "

    ' [ Get Window Text ]
    '
    ' // By Elektro H@cker
    '
    ' Examples :
    ' Dim str as String = Get_Window_Text(hwnd)

    <System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True, CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _
    Private Shared Function GetWindowText(ByVal hwnd As IntPtr, ByVal lpString As System.Text.StringBuilder, ByVal cch As Integer) As Integer
    End Function

    <System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True, CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _
    Private Shared Function GetWindowTextLength(ByVal hwnd As IntPtr) As Integer
    End Function

    Public Function Get_Window_Text(ByVal hWnd As IntPtr) As String

        If hWnd = IntPtr.Zero Then : Return Nothing

        Else

            Dim length As Integer = GetWindowTextLength(hWnd)

            If length = 0 Then
                Return Nothing
            End If

            Dim sb As New System.Text.StringBuilder("", length)

            GetWindowText(hWnd, sb, sb.Capacity + 1)
            Return sb.ToString()

        End If

    End Function

#End Region
#7796
Este "ayudante" de operaciones de registro lo escribí hace bastante tiempo, el código necesita un repaso para simplificar un poco más el código, pero se puede usar perféctamente, ahi puedes ver ejemplos para crear claves y obtener el valor.

Saludos

Código (vbnet) [Seleccionar]

#Region " RegEdit "

' [ RegEdit Functions ]
'
' // By Elektro H@cker
'
' Examples :
'
' -----------
' Create Key:
' -----------
' RegEdit.Create_Key("HKCU\Software\MyProgram")                        ' Creates "HKCU\Software\MyProgram"
' RegEdit.Create_Key("HKEY_CURRENT_USER\Software\MyProgram\Settings\") ' Creates "HKCU\Software\MyProgram\Settings"
'
' -----------
' Delete Key:
' -----------
' RegEdit.Delete_Key("HKLM\Software\7-zip")                ' Deletes the "7-zip" tree including subkeys
' RegEdit.Delete_Key("HKEY_LOCAL_MACHINE\Software\7-zip\") ' Deletes the "7-zip" tree including subkeys
'
' -------------
' Delete Value:
' -------------
' RegEdit.Delete_Value("HKCU\Software\7-Zip", "Lang")               ' Deletes "Lang" Value
' RegEdit.Delete_Value("HKEY_CURRENT_USER\Software\7-Zip\", "Lang") ' Deletes "Lang" Value
'
' ----------
' Get Value:
' ----------
' Dim Data As String = RegEdit.Get_Value("HKCU\Software\MyProgram", "Value name"))
' Dim Data As String = RegEdit.Get_Value("HKEY_CURRENT_USER\Software\MyProgram", "Value name"))
'
' ----------
' Set Value:
' ----------
' RegEdit.Set_Value("HKCU\Software\MyProgram", "Value name", "Data", Microsoft.Win32.RegistryValueKind.String)               ' Create/Replace "Value Name" with "Data" as string data
' RegEdit.Set_Value("HKEY_CURRENT_USER\Software\MyProgram\", "Value name", "Data", Microsoft.Win32.RegistryValueKind.String) ' Create/Replace "Value Name" with "Data" as string data
'
' -----------
' Export Key:
' -----------
' RegEdit.Export_Key("HKLM", "C:\HKLM.reg")                  ' Export entire "HKEY_LOCAL_MACHINE" Tree to "C:\HKLM.reg" file.
' RegEdit.Export_Key("HKLM\Software\7-zip\", "C:\7-zip.reg") ' Export entire "7-zip" Tree to "C:\7-zip.reg" file.
'
' ------------
' Import File:
' ------------
' RegEdit.Import_RegFile("C:\Registry_File.reg") ' Install a registry file.
'
' ------------
' Jump To Key:
' ------------
' RegEdit.Jump_To_Key("HKLM")                               ' Opens Regedit at "HKEY_LOCAL_MACHINE" Root.
' RegEdit.Jump_To_Key("HKEY_LOCAL_MACHINE\Software\7-zip\") ' Opens Regedit at "HKEY_LOCAL_MACHINE\Software\7-zip" tree.
'
' -----------
' Exist Key?:
' -----------
' MsgBox(RegEdit.Exist_Key("HKCU\software") ' Checks if "Software" Key exist.

' -------------
' Exist Value?:
' -------------
' MsgBox(RegEdit.Exist_Value("HKLM\software\7-zip", "Path") ' Checks if "Path" value exist.
'
' ------------
' Exist Data?:
' ------------
' MsgBox(RegEdit.Exist_Data("HKLM\software\7-zip", "Path") ' Checks if "Path" value have empty data.
'
' ---------
' Copy Key:
' ---------
' RegEdit.Copy_Key("HKCU", "Software", "7-Zip", "HKLM", "Software", "7-zip")          ' Copies "HKCU\Software\7-Zip" to "HKLM\Software\7-Zip"
' RegEdit.Copy_Key("HKCU", "Software", "7-Zip", Nothing, "Software", "7-zip")         ' Copies "HKCU\Software\7-Zip" to "HKCU\Software\7-Zip"
' RegEdit.Copy_Key("HKCU", "Software", "7-Zip", "HKLM", "Software", Nothing)          ' Copies "HKCU\Software\7-Zip" to "HKLM\Software\"
' RegEdit.Copy_Key("HKCU", "Software", "7-Zip", "HKLM", Nothing, Nothing)             ' Copies "HKCU\Software\7-Zip" to "HKLM\"
' RegEdit.Copy_Key("HKCU", "\Software\", "\7-Zip\", "HKLM", "\Software\", "\7-zip\")  ' Copies "HKCU\Software\7-Zip" to "HKLM\Software\7-Zip"
'
' -----------
' Copy Value:
' -----------
' RegEdit.Copy_Value("HKLM\software\7-zip", "path", "HKLM\software\7-zip", "path_backup") ' Copies "Path" value with their data to "HKLM\software\7-zip" "path_backup".
'
' -------------------
' Set_UserAccess_Key:
' -------------------
' RegEdit.Set_UserAccess_Key("HKCU\Software\7-Zip", {RegEdit.RegUserAccess.Administrators_Full_Access})
' RegEdit.Set_UserAccess_Key("HKEY_CURRENT_USER\Software\7-Zip", {RegEdit.RegUserAccess.Administrators_Full_Access, RegEdit.RegUserAccess.Creator_Full_Access, RegEdit.RegUserAccess.System_Full_Access})

#Region " RegEdit Class "

Public Class RegEdit

   Private Shared RootKey As Microsoft.Win32.RegistryKey = Nothing
   Private Shared KeyPath As String = String.Empty

   ''' <summary>
   ''' Create a new registry key.
   ''' </summary>
   Public Shared Function Create_Key(ByVal RegKey As String) As Boolean

       RootKey = Get_Root_Key(RegKey)
       KeyPath = Get_Key_Path(RegKey)

       Try
           RootKey.CreateSubKey(KeyPath)
           RootKey.Dispose()
           Return True
       Catch ex As Exception
           ' MsgBox(ex.Message)
           ' Throw New Exception(ex.Message)
           Return False
       End Try

   End Function

   ''' <summary>
   ''' Delete a registry key.
   ''' </summary>
   Public Shared Function Delete_Key(ByVal RegKey As String) As Boolean

       RootKey = Get_Root_Key(RegKey)
       KeyPath = Get_Key_Path(RegKey)

       Try
           RootKey.DeleteSubKeyTree(KeyPath)
           RootKey.Dispose()
           Return True
       Catch ex As Exception
           ' MsgBox(ex.Message)
           ' Throw New Exception(ex.Message)
           Return False
       End Try

   End Function

   ''' <summary>
   ''' Delete a registry key.
   ''' </summary>
   Public Shared Function Delete_Value(ByVal RegKey As String, ByVal RegValue As String) As Boolean

       RootKey = Get_Root_Key(RegKey)
       KeyPath = Get_Key_Path(RegKey)

       Try
           RootKey.OpenSubKey(KeyPath, True).DeleteValue(RegValue)
           RootKey.Dispose()
           Return True
       Catch ex As Exception
           ' MsgBox(ex.Message)
           ' Throw New Exception(ex.Message)
           Return False
       End Try

   End Function

   ''' <summary>
   ''' Get the data of a registry value.
   ''' </summary>
   Public Shared Function Get_Value(ByVal RegKey As String, ByVal RegValue As String) As String

       RootKey = Get_Root_Key(RegKey)
       KeyPath = RootKey.ToString & "\" & Get_Key_Path(RegKey)
       RootKey.Dispose()

       Try
           Return My.Computer.Registry.GetValue(KeyPath, RegValue, Nothing)
       Catch ex As Exception
           ' MsgBox(ex.Message)
           ' Throw New Exception(ex.Message)
           Return False
       End Try
   End Function

   ''' <summary>
   ''' Set the data of a registry value.
   ''' If the Key or value don't exist it will be created automatically.
   ''' </summary>
   Public Shared Function Set_Value(ByVal RegKey As String, _
                                    ByVal RegValue As String, _
                                    ByVal RegData As String, _
                                    ByVal RegDataType As Microsoft.Win32.RegistryValueKind) As Boolean

       RootKey = Get_Root_Key(RegKey)
       KeyPath = RootKey.ToString & "\" & Get_Key_Path(RegKey)

       Try
           If RegDataType = Microsoft.Win32.RegistryValueKind.Binary Then
               My.Computer.Registry.SetValue(KeyPath, RegValue, System.Text.Encoding.ASCII.GetBytes(RegData), Microsoft.Win32.RegistryValueKind.Binary)
               RootKey.Dispose()
           Else
               My.Computer.Registry.SetValue(KeyPath, RegValue, RegData, RegDataType)
               RootKey.Dispose()
           End If
           Return True
       Catch ex As Exception
           ' MsgBox(ex.Message)
           ' Throw New Exception(ex.Message)
           Return False
       End Try

   End Function

   ''' <summary>
   ''' Export a registry key (including sub-keys) to a file.
   ''' </summary>
   Public Shared Function Export_Key(ByVal RegKey As String, ByVal OutputFile As String) As Boolean
       Dim RootKey As String = Get_Root_Key(RegKey).ToString
       Dim KeyPath As String = RootKey & "\" & Get_Key_Path(RegKey)
       If KeyPath.EndsWith("\") Then KeyPath = KeyPath.Substring(0, KeyPath.Length - 1)

       Try
           Dim Regedit As New Process()
           Dim Regedit_Info As New ProcessStartInfo()

           Regedit_Info.FileName = "Reg.exe"
           Regedit_Info.Arguments = "Export " & """" & KeyPath & """" & " " & """" & OutputFile & """" & " /y"
           Regedit_Info.CreateNoWindow = True
           Regedit_Info.WindowStyle = ProcessWindowStyle.Hidden
           Regedit_Info.UseShellExecute = False
           Regedit.StartInfo = Regedit_Info
           Regedit.Start()
           Regedit.WaitForExit()

           If Regedit.ExitCode <> 0 Then
               Regedit.Dispose()
               Return False
           Else
               Regedit.Dispose()
               Return True
           End If

       Catch ex As Exception
           ' MsgBox(ex.Message)
           ' Throw New Exception(ex.Message)
           Return False
       End Try

   End Function

   ''' <summary>
   ''' Import a registry file.
   ''' </summary>
   Public Shared Function Import_RegFile(ByVal RegFile As String) As Boolean

       If IO.File.Exists(RegFile) Then

           Try
               Dim Regedit As New Process()
               Dim Regedit_Info As New ProcessStartInfo()

               Regedit_Info.FileName = "Reg.exe"
               Regedit_Info.Arguments = "Import " & """" & RegFile & """"
               Regedit_Info.CreateNoWindow = True
               Regedit_Info.WindowStyle = ProcessWindowStyle.Hidden
               Regedit_Info.UseShellExecute = False
               Regedit.StartInfo = Regedit_Info
               Regedit.Start()
               Regedit.WaitForExit()

               If Regedit.ExitCode <> 0 Then
                   Regedit.Dispose()
                   Return False
               Else
                   Regedit.Dispose()
                   Return True
               End If

           Catch ex As Exception
               ' MsgBox(ex.Message)
               ' Throw New Exception(ex.Message)
               Return False
           End Try

       Else
           ' MsgBox("File don't exist")
           Return False

       End If

   End Function

   ''' <summary>
   ''' Open Regedit at specific key.
   ''' </summary>
   Public Shared Function Jump_To_Key(ByVal RegKey As String) As Boolean

       RootKey = Get_Root_Key(RegKey)
       KeyPath = RootKey.ToString & "\" & Get_Key_Path(RegKey)
       If KeyPath.EndsWith("\") Then KeyPath = KeyPath.Substring(0, KeyPath.Length - 1)

       Try
           Set_Value("HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit", "LastKey", "" & KeyPath & "", Microsoft.Win32.RegistryValueKind.String)
           RootKey.Dispose()
           Process.Start("Regedit.exe")
           Return True
       Catch ex As Exception
           ' MsgBox(ex.Message)
           ' Throw New Exception(ex.Message)
           Return False
       End Try

   End Function

   ''' <summary>
   ''' Checks if a Key exist.
   ''' </summary>
   Public Shared Function Exist_Key(ByVal RegKey As String) As Boolean

       RootKey = Get_Root_Key(RegKey)
       KeyPath = Get_Key_Path(RegKey)

       If RootKey Is Nothing OrElse KeyPath Is Nothing Then Return False

       If RootKey.OpenSubKey(KeyPath, False) Is Nothing Then
           RootKey.Dispose()
           Return False
       Else
           RootKey.Dispose()
           Return True
       End If

   End Function

   ''' <summary>
   ''' Checks if a value exist.
   ''' </summary>
   Public Shared Function Exist_Value(ByVal RegKey As String, ByVal RegValue As String) As Boolean

       RootKey = Get_Root_Key(RegKey)
       KeyPath = Get_Key_Path(RegKey)

       Try
           If RootKey.OpenSubKey(KeyPath, False).GetValue(RegValue) = String.Empty Then
               RootKey.Dispose()
               Return False
           Else
               RootKey.Dispose()
               Return True
           End If
       Catch ex As Exception
           ' MsgBox(ex.Message)
           ' Throw New Exception(ex.Message)
           Return False
       End Try

   End Function

   ''' <summary>
   ''' Check if a value have empty data.
   ''' </summary>
   Public Shared Function Exist_Data(ByVal RegKey As String, ByVal RegValue As String) As Boolean

       RootKey = Get_Root_Key(RegKey)
       KeyPath = RootKey.ToString & "\" & Get_Key_Path(RegKey)

       Try
           If My.Computer.Registry.GetValue(KeyPath, RegValue, Nothing) = Nothing Then
               RootKey.Dispose()
               Return False
           Else
               RootKey.Dispose()
               Return True
           End If
       Catch ex As Exception
           ' MsgBox(ex.Message)
           ' Throw New Exception(ex.Message)
           Return False
       End Try

   End Function

   ''' <summary>
   ''' Copy a key tree to another location of the registry.
   ''' </summary>
   Public Shared Function Copy_Key(ByVal OldRootKey As String, _
                       ByVal OldPath As String, _
                       ByVal OldName As String, _
                       ByVal NewRootKey As String, _
                       ByVal NewPath As String, _
                       ByVal NewName As String) As Boolean

       If OldPath Is Nothing Then OldPath = ""
       If NewRootKey Is Nothing Then NewRootKey = OldRootKey
       If NewPath Is Nothing Then NewPath = ""
       If NewName Is Nothing Then NewName = ""

       If OldRootKey.EndsWith("\") Then OldRootKey = OldRootKey.Substring(0, OldRootKey.Length - 1)
       If NewRootKey.EndsWith("\") Then NewRootKey = NewRootKey.Substring(0, NewRootKey.Length - 1)

       If OldPath.StartsWith("\") Then OldPath = OldPath.Substring(1, OldPath.Length - 1)
       If OldPath.EndsWith("\") Then OldPath = OldPath.Substring(0, OldPath.Length - 1)
       If NewPath.StartsWith("\") Then NewPath = NewPath.Substring(1, NewPath.Length - 1)
       If NewPath.EndsWith("\") Then NewPath = NewPath.Substring(0, NewPath.Length - 1)

       If OldName.StartsWith("\") Then OldName = OldName.Substring(1, OldName.Length - 1)
       If OldName.EndsWith("\") Then OldName = OldName.Substring(0, OldName.Length - 1)
       If NewName.StartsWith("\") Then NewName = NewName.Substring(1, NewName.Length - 1)
       If NewName.EndsWith("\") Then NewName = NewName.Substring(0, NewName.Length - 1)

       Dim OrigRootKey As Microsoft.Win32.RegistryKey = Get_Root_Key(OldRootKey)
       Dim DestRootKey As Microsoft.Win32.RegistryKey = Get_Root_Key(NewRootKey)

       Dim oldkey As Microsoft.Win32.RegistryKey = OrigRootKey.OpenSubKey(OldPath + "\" + OldName, True)
       Dim newkey As Microsoft.Win32.RegistryKey = DestRootKey.OpenSubKey(NewPath, True).CreateSubKey(NewName)
       Reg_Copy_SubKeys(oldkey, newkey)
       Return True

   End Function
   Private Shared Sub Reg_Copy_SubKeys(OrigKey As Microsoft.Win32.RegistryKey, DestKey As Microsoft.Win32.RegistryKey)

       Dim ValueNames As String() = OrigKey.GetValueNames()
       Dim SubKeyNames As String() = OrigKey.GetSubKeyNames()

       For i As Integer = 0 To ValueNames.Length - 1
           Application.DoEvents()
           DestKey.SetValue(ValueNames(i), OrigKey.GetValue(ValueNames(i)))
       Next

       For i As Integer = 0 To SubKeyNames.Length - 1
           Application.DoEvents()
           Reg_Copy_SubKeys(OrigKey.OpenSubKey(SubKeyNames(i), True), DestKey.CreateSubKey(SubKeyNames(i)))
       Next

   End Sub

   ''' <summary>
   ''' Copy a value with their data to another location of the registry.
   ''' If the Key don't exist it will be created automatically.
   ''' </summary>
   Public Shared Function Copy_Value(ByVal RegKey As String, ByVal RegValue As String, _
                                     ByVal NewRegKey As String, ByVal NewRegValue As String) As Boolean

       Dim OldRootKey As String = Get_Root_Key(RegKey).ToString
       Dim OldKeyPath As String = OldRootKey & "\" & Get_Key_Path(RegKey)

       Dim NewRootKey As String = Get_Root_Key(NewRegKey).ToString
       Dim NewKeyPath As String = NewRootKey & "\" & Get_Key_Path(NewRegKey)

       Dim RegData = Get_Value(OldKeyPath, RegValue)

       Try
           Set_Value(NewKeyPath, NewRegValue, RegData, Microsoft.Win32.RegistryValueKind.Unknown)
           Return True
       Catch ex As Exception
           ' MsgBox(ex.Message)
           ' Throw New Exception(ex.Message)
           Return False
       End Try

   End Function

   ''' <summary>
   ''' Valid User identifiers for Regini.exe command.
   ''' </summary>
   Public Enum RegUserAccess As Short
       Administrators_Full_Access = 1
       Administrators_Read_Access = 2
       Administrators_Read_and_Write_Access = 3
       Administrators_Read_Write_and_Delete_Access4
       Administrators_Read_Write_and_Execute_Access = 20
       Creator_Full_Access = 5
       Creator_Read_and_Write_Access = 6
       Interactive_User_Full_Access = 21
       Interactive_User_Read_and_Write_Access = 22
       Interactive_User_Read_Write_and_Delete_Access = 23
       Power_Users_Full_Access = 11
       Power_Users_Read_and_Write_Access = 12
       Power_Users_Read_Write_and_Delete_Access = 13
       System_Full_Access = 17
       System_Operators_Full_Access = 14
       System_Operators_Read_and_Write_Access = 15
       System_Operators_Read_Write_and_Delete_Access = 16
       System_Read_Access = 19
       System_Read_and_Write_Access = 18
       World_Full_Access = 7
       World_Read_Access = 8
       World_Read_and_Write_Access = 9
       World_Read_Write_and_Delete_Access = 10
   End Enum

   ''' <summary>
   ''' Modify the User permissions of a registry key.
   ''' </summary>
   Public Shared Function Set_UserAccess_Key(ByVal RegKey As String, ByVal RegUserAccess() As RegUserAccess) As Boolean

       Dim PermissionString As String = String.Empty
       RootKey = Get_Root_Key(RegKey)

       KeyPath = RootKey.ToString & "\" & Get_Key_Path(RegKey)
       If KeyPath.EndsWith("\") Then KeyPath = KeyPath.Substring(0, KeyPath.Length - 1)

       For Each user In RegUserAccess
           ' Application.DoEvents()
           PermissionString += " " & user
       Next

       PermissionString = "[" & PermissionString & "]"
       PermissionString = PermissionString.Replace("[ ", "[")

       Try

           Using TextFile As New IO.StreamWriter(System.IO.Path.GetTempPath() & "Regini.ini", False, System.Text.Encoding.Default)
               TextFile.WriteLine("""" & KeyPath & """" & " " & PermissionString)
           End Using

           Dim Regini As New Process()
           Dim Regini_Info As New ProcessStartInfo()

           Regini_Info.FileName = "Regini.exe"
           Regini_Info.Arguments = """" & System.IO.Path.GetTempPath() & "Regini.ini" & """"
           Regini_Info.CreateNoWindow = True
           Regini_Info.WindowStyle = ProcessWindowStyle.Hidden
           Regini_Info.UseShellExecute = False
           Regini.StartInfo = Regini_Info
           Regini.Start()
           Regini.WaitForExit()

           If Regini.ExitCode <> 0 Then
               RootKey.Dispose()
               Regini.Dispose()
               Return False
           Else
               RootKey.Dispose()
               Regini.Dispose()
               Return True
           End If

       Catch ex As Exception
           ' MsgBox(ex.Message)
           ' Throw New Exception(ex.Message)
           Return False
       End Try

   End Function

   ' Returns the RootKey formatted
   Private Shared Function Get_Root_Key(ByVal RegKey As String) As Microsoft.Win32.RegistryKey
       Select Case RegKey.ToUpper.Split("\").First
           Case "HKCR", "HKEY_CLASSES_ROOT" : Return Microsoft.Win32.Registry.ClassesRoot
           Case "HKCC", "HKEY_CURRENT_CONFIG" : Return Microsoft.Win32.Registry.CurrentConfig
           Case "HKCU", "HKEY_CURRENT_USER" : Return Microsoft.Win32.Registry.CurrentUser
           Case "HKLM", "HKEY_LOCAL_MACHINE" : Return Microsoft.Win32.Registry.LocalMachine
           Case "HKEY_PERFORMANCE_DATA" : Return Microsoft.Win32.Registry.PerformanceData
           Case Else : Return Nothing
       End Select
   End Function

   ' Returns the KeyPath formatted
   Private Shared Function Get_Key_Path(ByVal RegKey As String) As String

       If RegKey Is Nothing Then Return Nothing

       Dim Path As String = String.Empty
       For i As Integer = 1 To RegKey.Split("\").Length - 1
           ' Application.DoEvents()
           Path &= RegKey.Split("\")(i) & "\"
       Next

       If Not Path.Contains("\") Then Path = Path & "\"
       Path = Path.Substring(0, Path.LastIndexOf("\"))

       Return Path

   End Function

End Class

#End Region

#End Region
#7797
Unas sencillas funciones para convertir pluma/brocha a color, y viceversa.

Código (vbnet) [Seleccionar]
#Region " Color To Pen "

   ' [ Color To Pen ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' MsgBox(Color_To_Pen(Color.Red).Color.Name) ' Result: Red

   Private Function Color_To_Pen(ByVal color As Color) As Pen

       Dim _pen As Pen = Nothing

       Try
           _pen = New Pen(color)
           Return _pen

       Catch ex As Exception
           Throw New Exception(ex.Message)
           Return Nothing

       Finally
           If _pen IsNot Nothing Then _pen.Dispose()

       End Try

   End Function

#End Region


Código (vbnet) [Seleccionar]
#Region " Color To SolidBrush "

   ' [ Color To SolidBrush ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' MsgBox(Color_To_SolidBrush(Color.Red).Color.Name) ' Result: Red

   Private Function Color_To_SolidBrush(ByVal color As Color) As SolidBrush

       Dim _brush As SolidBrush = Nothing

       Try
           _brush = New SolidBrush(color)
           Return _brush

       Catch ex As Exception
           Throw New Exception(ex.Message)
           Return Nothing

       Finally
           If _brush IsNot Nothing Then _brush.Dispose()

       End Try

   End Function

#End Region


Código (vbnet) [Seleccionar]
#Region " Pen To Color "

   ' [ Pen To Color ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' MsgBox(Pen_To_Color(New Pen(Color.Red)).Name) ' Result: Red

   Private Function Pen_To_Color(ByVal pen As Pen) As Color
       Return pen.Color
   End Function

#End Region


Código (vbnet) [Seleccionar]
#Region " SolidBrush To Color "

   ' [ SolidBrush To Color ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' MsgBox(SolidBrush_To_Color(New SolidBrush(Color.Red)).Name) ' Result: Red

   Private Function SolidBrush_To_Color(ByVal brush As SolidBrush) As Color
       Return brush.Color
   End Function

#End Region







Y otra sencilla función para parsear un valor de una enumeración:

Código (vbnet) [Seleccionar]
    #Region " Enum Parser "
     
       ' [ Enum Parser ]
       '
       ' // By Elektro H@cker
       '
       ' Examples :
       '
       ' MsgBox(Enum_Parser(Of Keys)(65).ToString) ' Result: A
       ' MsgBox(Enum_Parser(Of Keys)("A").ToString) ' Result: A
       ' TextBox1.BackColor = Color.FromKnownColor(Enum_Parser(Of KnownColor)("Red"))
     
    Private Function Enum_Parser(Of T)(Value As Object) As T

        Try
            Return [Enum].Parse(GetType(T), Value, True)

        Catch ex As ArgumentException
            Throw New Exception("Enum value not found")

        Catch ex As Exception
            Throw New Exception(String.Format("{0}: {1}}", _
                                ex.Message, ex.StackTrace))

        End Try

    End Function
     
    #End Region
#7798
Ahora ya vuelve a funcionar (http), por lo menos a mi...
#7799
Cita de: Shout en 22 Octubre 2013, 14:26 PMHe crackeado algunos programas hechos con .NET. Entre ellos, uno cifrado con Crypto

Perdón si meto la pata pero no te habrás confundido con el "SmartAssembly" (que también es de los mejores) en lugar del "Crypto"?

Lo comento porque hasta donde yo sé el SAE no tiene plugin para deofuscar un ensamblado de Crypto, o al menos no disponen de dicho plugin en la página oficial, pero de todas formas no he intentado deofuscar un exe del Crypto en el SAE.

PD: Si dispones de dicho plugin o sabes de alguna página donde lo hosteen estaría muy bien que compartas esa información.

Un saludo!
#7800
Para dejar constancia, yo accedo desde España (Valencia), y uso ONO.

El resto de páginas me funcionan perféctamente menos el foro de EHN  :-(

Se puede decir que la página ya lleva medio dia tirando a duras penas, es insoportable, creo que hasta la noche ya no volveré a conectarme para ver si se ha resuelto el problema.

Saludos!