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

#3941
Cita de: El_Andaluz en 30 Enero 2016, 23:55 PMGracias por contestar el producto lo compre hace dos años y se supone que no me caduca hasta el 2018, lo que no entiendo es por que me salto eso de que se me caduca el periodo de prueba

Entonces lo primero que debiste hacer (y que debes hacer) es contactar con el soporte de AVG para pedir respuesta y orientación, ellos sabrán mejor que nadie lo que puede haber ocurrido con tu licencia y como solucionarlo, déjate de intentar usar claves pirata.





Cita de: Inflamable!!! en 31 Enero 2016, 01:38 AMes un antivirus,esetnod32,el que te dijo electro

Si, Nod32 es el antivirus, pero luego tienen otro producto más completo, la suite de protección Smart Security es a lo que yo me refería realmente ya que se asemeja más al AVG Internet Security.


...De todas formas solo era por nombrar una opción de cientos que hay donde elegir, no es que yo lo recomiende xD sino más bien por dar una solución acorde al problema, puesto que si hablamos con sinceridad yo estoy bastante en contra de esos productos abusivos ya que en mi opinión con un buen AV es más que suficiente para usuarios que tengan dos dedos de frente,
cualquier dia son capaces de meterle "Protección anti drones" y "Protección contra radioactividad" a este tipo de suites de protección informática... no se si me explico, le meten cosas realmente innecesarias para todos (otras no son tan innecesarias, pero mayormente hablando), incluso para los usuarios potenciales de ser víctimas de infección o hacking, todo por agrandar el valor del producto que venden y así poder sacar el máximo beneficio de este sistema ignorante vendiéndote cosas que no necesitas pero ahi están, lo mismo pienso del AVG Internet Security.

Saludos
#3942
Te aseguro que ImgBurn no es ningún virus... ¿lo has descargado desde la página oficial?:
( es freeware )

Según mis necesidades yo lo que utilizo es ImgBurn, UltraISO y PowerISO al igual que el compañero @Machacador, siendo estos dos últimos programas shareware.

Para ser más exactos, ImgBurn lo utilizaba antiguamente para crear clones de DVDs de video juegos (de XBOX), UltraISO lo utilizo para montar imágenes, y PowerISO para grabaciones estándar y para automatizar tareas command-line.




Otra opción freeware que podrías utilizar es mi aplicación Splitty, no sirve para crear clones, sino para crear copias que se pueden dividir en archivos de un tamaño especificado (tipo el programa Hacha) donde puedes elegir distintos formatos, entre ellos .ISO (internamente utiliza PowerISO para ello), puedes crear una copia de un DVD en 1 único archivo ISO seleccionando la capacidad de ese DVD (o una mayor) como se muestra en la imagen:


     

Saludos
#3943
Es una tarea bastante complicada, incluso recurriendo a P/invokes de la WinAPI.

La zona "sin utilizar" en la derecha de la cabecera de las columnas del Listview forma parte del área NO-cliente de la ventana del control, por ende usando código administrado por ejemplo en el evento DrawColumnHeader solo vas a poder dibujar sobre el área cliente del control, así que tienes que recurrir si o si a las funciones Win32 relacionadas con GDI.

Pero el resultado será sencillamente imperfecto, ya que al tratarse del área no-cliente y como lo estamos tratando de pintar manualmente, Windows no puede determinar cuando se debe redibujar ese área, así que a veces verás como desaparece el color de ese área, ya que con los métodos base de invocadores de eventos del ListView parece no ser suficiente para indicar manualmente cuando se debe redibujar el área no-cliente en los eventos que se suceden en el control (ya que no hay un invocador de evento para controlar cuando se hace click en un separador de columna).

Aquí tienes un ejemplo que escribí, tomatelo como tal...un ejemplo, por que como ya dije esto es imperfecto, notarás como desaparece el color al hacer click sobre un separador de columna, y al redimensionar las columnas;
una solución a lo mencionado sería determinar los handles de ventana (hWnd) de todos los separadores de columnas que existan en el control, y suscribirte a cada una de las ventanas de los separadores, es decir a la función de ventana que procesa sus mensajes (WndProc) para determinar cuando se hace click (mensaje de ventana: WM_LButtonUp y WM_NcLButtonUp ) o cuando se mueve (mensaje de ventana: WM_Move y WM_ExitSizeMove) y en ese momento pintar el area no cliente, pero hacer todo eso es demasiado costoso para satisfacer un simple capricho de pintar esa zona... y aparte, por naturaleza este tipo de hacks en los controles de WinForms tenderán a generar molestos efectos de Flickering.

Código (vbnet) [Seleccionar]
Imports System
Imports System.ComponentModel
Imports System.Diagnostics
Imports System.Drawing
Imports System.Linq
Imports System.Runtime.InteropServices
Imports System.Security
Imports System.Windows.Forms

Public Class ListViewEx : Inherits ListView

   <Category("Appearance")>
   <DisplayName("Column-Header BackColor")>
   Public Property ColumnHeaderBackColor As Color

   <Category("Appearance")>
   <DisplayName("Column-Header ForeColor")>
   Public Property ColumnHeaderForeColor As Color

   <Category("Appearance")>
   <DisplayName("Column-Header Separator Color")>
   Public Property ColumnHeaderSeparatorColor As Color

   <Category("Appearance")>
   <DisplayName("Column-Header NonClient-Area Drawing Enabled")>
   Public Property ColumnHeaderNonClientAreaDrawingEnabled As Boolean

   Private lastColumnHeaderDrawEventArgs As DrawListViewColumnHeaderEventArgs
   Private ignoreColumnHeaderNonClientAreaDrawing As Boolean

   <DebuggerNonUserCode>
   Public Sub New()

       Me.ColumnHeaderSeparatorColor = SystemPens.ControlLightLight.Color
       Me.ColumnHeaderBackColor = SystemPens.ControlDarkDark.Color
       Me.ColumnHeaderForeColor = SystemColors.ControlText

       MyBase.OwnerDraw = True

   End Sub

   Protected Overrides Sub OnEnter(e As EventArgs)
       Me.DrawNonClientColumnHeader(Me.lastColumnHeaderDrawEventArgs)
       MyBase.OnEnter(e)
   End Sub

   Protected Overrides Sub OnLeave(e As EventArgs)
       Me.DrawNonClientColumnHeader(Me.lastColumnHeaderDrawEventArgs)
       MyBase.OnLeave(e)
   End Sub

   Protected Overrides Sub OnGotFocus(e As EventArgs)
       Me.DrawNonClientColumnHeader(Me.lastColumnHeaderDrawEventArgs)
       MyBase.OnGotFocus(e)
   End Sub

   Protected Overrides Sub OnLostFocus(e As EventArgs)
       Me.DrawNonClientColumnHeader(Me.lastColumnHeaderDrawEventArgs)
       MyBase.OnLostFocus(e)
   End Sub

   Protected Overrides Sub OnInvalidated(e As InvalidateEventArgs)
       Me.DrawNonClientColumnHeader(Me.lastColumnHeaderDrawEventArgs)
       MyBase.OnInvalidated(e)
   End Sub

   Protected Overrides Sub OnDrawSubItem(e As DrawListViewSubItemEventArgs)
       Me.DrawNonClientColumnHeader(Me.lastColumnHeaderDrawEventArgs)
       MyBase.OnDrawSubItem(e)
   End Sub

   Protected Overrides Sub OnColumnWidthChanging(e As ColumnWidthChangingEventArgs)
       Me.ignoreColumnHeaderNonClientAreaDrawing = True
       MyBase.OnColumnWidthChanging(e)
   End Sub

   Protected Overrides Sub OnColumnWidthChanged(e As ColumnWidthChangedEventArgs)
       Me.ignoreColumnHeaderNonClientAreaDrawing = False
       Me.DrawNonClientColumnHeader(Me.lastColumnHeaderDrawEventArgs)
       MyBase.OnColumnWidthChanged(e)
   End Sub

   Protected Overrides Sub OnDrawColumnHeader(ByVal e As DrawListViewColumnHeaderEventArgs)
       Me.DrawClientColumnHeader(e)
       MyBase.OnDrawColumnHeader(e)
   End Sub

   Protected Overrides Sub OnDrawItem(e As DrawListViewItemEventArgs)

       Using g As Graphics = e.Graphics
           e.DrawText()
       End Using

       MyBase.OnDrawItem(e)

   End Sub

   <DebuggerStepThrough>
   Private Sub DrawClientColumnHeader(ByVal e As DrawListViewColumnHeaderEventArgs)

       ' If it is the last column...
       If (e.ColumnIndex = (MyBase.Columns.Count - 1)) Then
           Me.lastColumnHeaderDrawEventArgs = e
           Me.DrawNonClientColumnHeader(e)
       End If

       e.DrawDefault = False ' Set Owner drawing.

       Using g As Graphics = e.Graphics

           ' Draw header background.
           Dim bgBounds As Rectangle = e.Bounds
           Using bgBrush As New SolidBrush(Me.ColumnHeaderBackColor)
               g.FillRectangle(bgBrush, bgBounds)
           End Using

           ' Measure column separator bounds.
           Dim colBounds As Rectangle = e.Bounds
           colBounds.Width -= 1
           colBounds.Height -= 1

           ' Draw column separator.
           Using separatorPen As New Pen(Me.ColumnHeaderSeparatorColor)
               g.DrawRectangle(separatorPen, colBounds)
           End Using

           ' Set text formatting.
           Dim flags As TextFormatFlags = TextFormatFlags.VerticalCenter Or TextFormatFlags.EndEllipsis
           Select Case e.Header.TextAlign
               Case HorizontalAlignment.Left
                   flags = (flags Or TextFormatFlags.Left)
               Case HorizontalAlignment.Center
                   flags = (flags Or TextFormatFlags.HorizontalCenter)
               Case Else
                   flags = (flags Or TextFormatFlags.Right)
           End Select

           ' Measure and draw text.
           Dim width As Integer = TextRenderer.MeasureText(" ", e.Font).Width
           Dim txtBounds As Rectangle = Rectangle.Inflate(e.Bounds, -width, 0)
           TextRenderer.DrawText(g, e.Header.Text, e.Font, txtBounds, Me.ColumnHeaderForeColor, flags)

       End Using

   End Sub

   <DebuggerStepThrough>
   Private Sub DrawNonClientColumnHeader(ByVal e As DrawListViewColumnHeaderEventArgs)

       If (Me.ColumnHeaderNonClientAreaDrawingEnabled) AndAlso Not (Me.ignoreColumnHeaderNonClientAreaDrawing) AndAlso
          (e IsNot Nothing) Then

           Dim lv As ListView = e.Header.ListView
           Dim hwnd As IntPtr = Me.GetColumnHeaderHwnd(lv)
           Dim hdc As IntPtr = NativeMethods.GetDC(hwnd)
           Dim headersWidth As Integer =
               (From col As ColumnHeader In MyBase.Columns.Cast(Of ColumnHeader)()
                Select col.Width
               ).Sum

           Using g As Graphics = Graphics.FromHdc(hdc)

               Dim rect As New Rectangle(e.Bounds.Right + 1, e.Bounds.Top, (Me.Bounds.Width - headersWidth), e.Bounds.Height)

               Using bgBrush As New SolidBrush(Me.ColumnHeaderBackColor)
                   g.FillRectangle(bgBrush, rect)
               End Using

           End Using

           NativeMethods.ReleaseDC(hwnd, hdc)

       End If

   End Sub

   <DebuggerStepThrough>
   Private Function GetColumnHeaderHwnd(ByVal lv As ListView) As IntPtr
       Return NativeMethods.SendMessage(lv.Handle, NativeMethods.LvmGetHeader, New IntPtr(0), New IntPtr(0))
   End Function

End Class

Friend NotInheritable Class NativeMethods

   ' https://msdn.microsoft.com/en-us/library/windows/desktop/bb774937%28v=vs.85%29.aspx
   Friend Const LvmGetHeader As Integer = &H101F

   ' https://msdn.microsoft.com/en-us/library/windows/desktop/dd144871(v=vs.85).aspx
   <SuppressUnmanagedCodeSecurity>
   <DllImport("user32", SetLastError:=True)>
   Friend Shared Function GetDC(
          ByVal hwnd As IntPtr
   ) As IntPtr
   End Function

   ' https://msdn.microsoft.com/en-us/library/windows/desktop/dd162920(v=vs.85).aspx
   <SuppressUnmanagedCodeSecurity>
   <DllImport("user32", SetLastError:=True)>
   Friend Shared Function ReleaseDC(
          ByVal hwnd As IntPtr,
          ByVal hdc As IntPtr
   ) As IntPtr
   End Function

   ' https://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=vs.85).aspx
   <SuppressUnmanagedCodeSecurity>
   <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
   Friend Shared Function SendMessage(
          ByVal hwnd As IntPtr,
          ByVal msg As UInteger,
          ByVal wParam As IntPtr,
          ByVal lParam As IntPtr
   ) As IntPtr
   End Function

End Class


PD: Nótese que me faltó añadir un Getter/Setter a las propiedades para llamar a los métodos que pintan sobre la cabecera de las columnas cuando se modifica el valor de dichas propiedades.

Saludos
#3944
Si dices que en un principio la licencia te la da por válida, y luego se invalida por extrañas razones, entonces posiblemente lo que suceda es que detectan licencias "compartidas" y las banean en menos de 24 horas, ¿solución?, aparte de comprar el producto ...creo que ninguna.

Puedes probar a añadir una regla en el Firewall de Windows para las conexiones del executable pero posiblemente la validación de la clave requiera conexión a Internet, y de todas formas aunque no hiciera falta sería una estupidéz por que no podrías recibir actualizaciones del programa...

Sin ver por mi mismo como actua el programa yo creo que lo que te he mencionado debe ser el problema, pero no tengo instalado ese programa ni se que sistema de validación usa así que no tengo modo de verificarlo a ciencia cierta.

Te sugiero instalarte otro producto similar, la suite de ESET por ejemplo.

Saludos!
#3945
¿Se muestra algún motivo/mensaje de error por el cual no se puede eliminar la conexión?.

Prueba a abrir el administrador de dispositivos y desinstalar los adaptadores desde allí.

Para abrir directamente el administrador de dispositivos puedes escribir esto en consola:
devmgmt.msc



Te deje desinstalarlo o no, prueba lo siguiente como método de limpieza para eliminar posibles residuos de VMWare:

Prueba el siguiente comando, en consola, para desinstalar el servicio del protocolo de puente de conexión de VMWare (en caso de que no se haya desinstalado por el motivo que sea)
Código (dos) [Seleccionar]
netcfg.exe /U vmware_bridge



Seguidamente, detén, desactiva y elimina los servios de VMWare (en caso de que no se hayan desinstalado por el motivo que sea)
Código (dos) [Seleccionar]

SC.exe STOP "VMAuthdService"
SC.exe STOP "VMnetDHCP"
SC.exe STOP "VMTools"
SC.exe STOP "VMUSBArbService"
SC.exe STOP "VMvss"
SC.exe STOP "VMware NAT Service"
SC.exe STOP "VMWare Physical Disk Helper Service"

SC.exe CONFIG "VMAuthdService" start= disabled
SC.exe CONFIG "VMnetDHCP" start= disabled
SC.exe CONFIG "VMTools" start= disabled
SC.exe CONFIG "VMUSBArbService" start= disabled
SC.exe CONFIG "VMvss" start= disabled
SC.exe CONFIG "VMware NAT Service" start= disabled
SC.exe CONFIG "VMWare Physical Disk Helper Service" start= disabled

SC.exe DELETE "VMAuthdService"
SC.exe DELETE "VMnetDHCP"
SC.exe DELETE "VMTools"
SC.exe DELETE "VMUSBArbService"
SC.exe DELETE "VMvss"
SC.exe DELETE "VMware NAT Service"
SC.exe DELETE "VMWare Physical Disk Helper Service"


Dirígete al directorio C:\Windows\Installer, activa la columna "Asunto" (click derecho en cualquier cabecera de columna -> "Más...") y busca el instalador de VMWare:



Si en tu caso el archivo existe, inicia el instalador e intenta la desinstalación con las opciones de desinstalación que se te darán.

Si no existe, descarga el programa CCleaner y realiza una limpieza del registro, ya que probablemente habrán valores y claves de registro con referencias "corruptas" de VMWare. (de paso haz una limpieza de archivos también con el mismo programa)




Si al principio no te dejó desinstalar los adaptadores de red virtuales desde el administrador de dispositivos, entonces despues de hacer esa limpieza reinicia el PC y vuelve a intentar desinstalarlo desde allí.

¿Te funcionó?.

Saludos
#3946
Cita de: LittleLion en 29 Enero 2016, 17:57 PMsolo me deja activarlas y desactivarlas, pero no borrarlas, ¿Alguna idea para poder borrarlas?

Desactivala de forma habitual en las conexiones de red del panel de control, y mientras tienes seleccionado el adaptador presiona la tecla SUPRIMIR...

Saludos!
#3947
Cita de: KZN en 29 Enero 2016, 01:06 AMSi, como siempre Elektro me lees la mente, efectivamente, es hay a donde quiero acceder.

El siguiente algoritmo no es perfecto, he intentado tener en cuenta que las propiedades del archivo ini pueden estar cambiadas de posición, pero en un 99% de los casos te funcionará ya que no hay por que pensar que alguien manipule este archivo para añadir perfiles manualmente...:

Código (vb) [Seleccionar]
Set fso      = CreateObject( "Scripting.FileSystemObject" )  
Set wshShell = CreateObject( "WScript.Shell" )

Function SetProfilePath( directorypath, isRelative )
   
   If ( isRelativePath ) then
       SetProfilePath = (firefoxDirPath & "\" & directorypath)

   Else
       SetProfilePath = directorypath

   End If

End Function

firefoxDirPath   = wshShell.ExpandEnvironmentStrings( "%AppData%\Mozilla\Firefox" )
profilesIniPath  = ( firefoxDirPath & "\" & "Profiles.ini" )
profilePath      = ""
isRelativePath   = False
isDefaultProfile = False

Set profilesIni  = fso.OpenTextFile( profilesIniPath )

Do Until profilesIni.AtEndOfStream
 
   line = profilesIni.ReadLine()
   
   If ( InStr(1, line, "Path=") = 1 ) then
       
       profilePath = SetProfilePath(Replace( Mid(line, ( Len("Path=") + 1) ), "/", "\" ), isRelativePath)

   End if
   
   If ( InStr(1, line, "IsRelative=1") = 1 ) then
     
       isRelativePath = True

       If ( profilePath <> "" ) then
           profilePath = SetProfilePath(profilePath, True)
         
           If ( isDefaultProfile ) then
               Exit Do
           End If

       End If

   End if

   If ( InStr(1, line, "Default=1") = 1 ) And ( profilePath <> "" ) Then
       Exit Do

   Elseif ( InStr(1, line, "Default=1") = 1 ) Then
       isDefaultProfile = True

   End if

Loop
profilesIni.Close()

Wscript.Echo(profilePath)
Wscript.Quit(0)


Si fuese en otro lenguaje menos limitado (ej. Vb.Net) la tarea de lectura de la estructura ini sería más sencilla y mucho más eficiente, pero no quiero invertir más tiempo desarrollándolo en VBS, creo que con ese script es suficiente al menos para darte la idea inicial a pesar de los posibles fallos en ciertas circunstancias que ya mencioné.

Lo cierto es que otra manera de hacerlo mucho más sencillo sería enumerando las carpetas del directorio de perfiles y con una expresión regular determinar el nombre completo de la carpeta con la expresión "^.+\.default$" (por ejemplo), esto sería mucho más simple, pero a la vez mucho más ineficiente, ya que con un RegEx no podrás determinar cua carpeta hace referencia al perfil por defecto, y aparte, el nombre de la carpeta no tiene por que acabar con ".default", mi carpeta de perfil por ejemplo se llama "Elektro" por que así lo especifiqué manualmente en el archivo ini, y creo que lo que tu buscas es eficiencia por que lo usarás en distintos PC's, así que yo te sugiero evitar la metodología del RegEx/patrones por que como ya he dicho usando el patrón de búsqueda "*.default" no resultará siempre, debes leer los valores del archivo INI para averiguar el nombre real de las carpetas de perfiles.

Sin ir más lejos ni siquiera necesitas expresiones regulares suponiendo que en el 90% (por decir algo) de los casos el usuario seguramente solo tendrá una carpeta en el directorio de perfiles, y esa única carpeta será la carpeta de perfil de Firefox, eso es lo más común, pero no muy eficiente en términos de probabilidad, de todas formas te muestro un ejemplo para iterar las carpetas del directorio de perfiles:

Código (vb) [Seleccionar]
Set fso      = CreateObject( "Scripting.FileSystemObject" )  
Set wshShell = CreateObject( "WScript.Shell" )
Set rootDir  = fso.GetFolder( wshShell.ExpandEnvironmentStrings("%AppData%\Mozilla\Firefox\Profiles") )

For Each subDir in rootDir.SubFolders
   Wscript.Echo(subDir.Path)
Next

Wscript.Quit(0)


Saludos
#3948

@KZN                                          
Usa las etiquetas Geshi para insertar código  





Me arriesgo a deducir que el problema real es querer averiguar el nombre de carpeta del perfil por defecto de Firefox ya que precisamente se generan con ese tipo de nombre bajo el mismo directorio principal,
si me equivoco y no son tus intenciones entonces disculpa, pero si no me equivoco entonces no se por que motivo no mencionas ese detalle y deberias explicar el problema real para poder darte soluciones óptimas, ya que del modo en el que lo estás intentando hacer no es para nada una solución óptima, por que preguntando por otras cosas como averiguar el nombre de carpetas basándose en un patrón de búsqueda lo único que conseguirás es complicarlo todo (y sería una pérdida de tiempo para los demás).

Puedes obtener el nombre de los directorios simplemente parseando la propiedad Path del archivo de inicialización (.ini) de perfiles de Firefox, ubicado exactamente en C:\Users\usuario\AppData\Roaming\Mozilla\Firefox\Profiles.ini.

Por favor, específica si ese es tu propósito real para explicarte como parsear el archivo, o de lo contrario para explicarte otra solución distinta al problema que has mencionado con una solución de búsqueda de carpetas según un patrón de búsqueda...

Saludos
#3950
Puedes utilizar el parámetro /B del comando Start.

Start /B "Título" "Ruta de archivo"

Ejemplo:
Código (dos) [Seleccionar]
Start /B "" ".\Programa.exe"

Saludos