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 - Lekim

#261
Hola

Mi portátil tiene Windows Vista, el original del mismo claro. Lo dejo porque cuando me cargo el sistema  :P tengo que  reinstalar el SO y el Recovery que tiene es muy bueno y rápido.

Y en serio, tiene que ver porque está comprobado. Simplemente si no actualizo los drives de Intel NO FUNCIONA Windows Update, ni Windows Live Mail.  Aparece un mensaje de error, aunque en el caso que expongo en mi comentario anterior Windows Update ni se iniciaba, se quedaba colgada la ventana, pero fue por volver a instalar los drivers antiguos estando instalados los nuevos.  LLevo muchos años con esta compu, y de verdad que esa así. Cuando tenía el disco 250 GB, simplemente instalaba los drivers por defecto del portátil y todo correcto, ningún problema. Eso sí, hasta que no instalaba los drivers de intel tampoco funcionaba creo recordad.

Pero aunque como he dicho ya el problema está solucionado. No entiendo porqué Windows Update no funciona hasta instalar los drivers de Intel y además deben ser compatibles con el tamaño del disco.  Menos aún entiendo que tampoco funcione en tal caso Windows Live Mail.
#262
Hola


Código (vbnet) [Seleccionar]


Imports System.Threading.Tasks
Public Class Form1
   Private Sub btnError_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnError.Click
       Me.BackColor = Color.OrangeRed 'Cambia el color del Form
       btnError.Enabled = False 'Deshabilita el Botón
       '<Inicia un subproceso>
       Task.Factory.StartNew(Sub()
                                 Dim Segundos As Integer = 5
                                 System.Threading.Thread.Sleep(Segundos * 1000) 'Espera 5 segundos
                                 Me.Invoke(Sub() Me.BackColor = SystemColors.Control) 'Recupera el color del Form
                                 Me.btnError.Invoke(Sub() Me.btnError.Enabled = True) 'Vuelve a habilitar el botón
                             End Sub)

       Me.Width = 500
       Label1.Text = "Task genera un subproceso que se produce de forma independente" & Environment.NewLine _
           & "El evento Click lo ha iniciado y pasa a la línea siguiente para mostrar este texto"
   End Sub
End Class


#263
Hola

Estoy intentando cargar una imagen que tengo en la carpeta Recursos del proyecto en
un  botón. pero no lo consigo porque no se poner la dirección de imagen

He probado esto:
Código (xml) [Seleccionar]
 <Button>
<Image Height="18" Source="/WpfApplication1;component/Resources/Ir.png" Stretch="Fill" Width="18"/>
</Button>


y esto:
Código (xml) [Seleccionar]
 <Button>
<Image Height="18" Source="/Resources/Ir.png" Stretch="Fill" Width="18"/>
</Button>


y esto:
Código (xml) [Seleccionar]
 <Button>
<Image Height="18" Source="Res/Ir.png" Stretch="Fill" Width="18"/>
</Button>



Pero nada no se carga

Gracias



Ya lo he conseguido  :laugh:

Código (xml) [Seleccionar]
<Application x:Class="Application"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   StartupUri="MainWindow.xaml">
   <Application.Resources>
       <ImageBrush x:Key="OpenImage">
           <ImageBrush.ImageSource>
                        <BitmapImage UriSource="/Resources/open.png" />
           </ImageBrush.ImageSource>
       </ImageBrush>

       <Style TargetType="Button">
           <Setter Property="Background" Value="{StaticResource OpenImage}"/>
       </Style>
       
   </Application.Resources>
</Application>


Una cosa importante. Por defecto la imagen colocada en Resources tiene la propiedad 'Acción de compilación' establecidad en 'Ninguno'. Hay que establecerlo como' Resource'
#264
Hola

Pues eso, ayer estuve más de una hora cambiando esto y aquello para evitar que al hacer clic sobre el ComboBox NO despliegue la lista pero SI que lo haga la pulsar el botón.

Si el ComboBox no está personalizado, es decir, que no le hemos aplicado ningún estilo, basta con cambiar la propiedad IsEditable a True

Código (xml) [Seleccionar]
<ComboBox Name="ComboBox1" IsEditable="True"  Height="25" Width="150" Margin="0,20,0,0"> </ComboBox>

Pero cuando se le aplica un estilo no hay forma de conseguir que no despliegue la lista al hacer clic sobre él.

Aquí dejo un enlace con un ejemplo de estilo para el ComboBox
ComboBox ControlTemplate Example

Si establezco IsEditable= "True" se puede editar pero al hacer clic sobre el cuadro de texto para editarlo se despliega la lista.

Gracias

#265


Código (vbnet) [Seleccionar]

Public Class Form1
   Dim Vector() As String = {Nothing, "Amarillo", "Rojo", "Naranja", "Negro"}
   Dim Conmutador As Boolean
   Private Sub botton_siguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles botton_siguiente.Click
       Conmutador = IIf(Conmutador = False, True, False)
       Select Case Conmutador
           Case False
               Me.botton_resp1.Text = Vector(1)
               Me.botton_resp1.BackColor = Color.Yellow : Me.botton_resp1.ForeColor = Color.Black
               Me.botton_resp2.Text = Vector(2)
               Me.botton_resp2.BackColor = Color.Red : Me.botton_resp2.ForeColor = Color.Black
           Case True
               Me.botton_resp1.Text = Vector(3)
               Me.botton_resp1.BackColor = Color.Orange : Me.botton_resp1.ForeColor = Color.Black
               Me.botton_resp2.Text = Vector(4)
               Me.botton_resp2.BackColor = Color.Black : Me.botton_resp2.ForeColor = Color.White
       End Select
       Me.Text = Conmutador
   End Sub

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
       Me.botton_resp1.Text = Vector(1)
       Me.botton_resp1.BackColor = Color.Yellow : Me.botton_resp1.ForeColor = Color.Black
       Me.botton_resp2.Text = Vector(2)
       Me.botton_resp2.BackColor = Color.Red : Me.botton_resp2.ForeColor = Color.Black
   End Sub
End Class



TAMBIÉN SE PUEDE ESCRIBIR ASÍ:
Código (vbnet) [Seleccionar]
Public Class Form1
    Dim Vector() As String = {Nothing, "Amarillo", "Rojo", "Naranja", "Negro"}
    Dim Conmutador As Boolean
    Private Sub botton_siguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles botton_siguiente.Click
        Conmutador = IIf(Conmutador = False, True, False)
        Select Case Conmutador
            Case False
                With botton_resp1
                    .Text = Vector(1) : .BackColor = Color.Yellow : .ForeColor = Color.Black
                End With
                With botton_resp2
                    .Text = Vector(2) : .BackColor = Color.Red : .ForeColor = Color.Black
                End With
            Case True
                With botton_resp1
                    .Text = Vector(3) : .BackColor = Color.Orange : .ForeColor = Color.Black
                End With
                With botton_resp2
                    .Text = Vector(4) : .BackColor = Color.Black : .ForeColor = Color.White
                End With
        End Select
        Me.Text = Conmutador
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        With botton_resp1
            .Text = Vector(1) : .BackColor = Color.Yellow : .ForeColor = Color.Black
        End With
        With botton_resp2
            .Text = Vector(2) : .BackColor = Color.Red : .ForeColor = Color.Black
        End With
    End Sub
End Class
#266
Hola

Mi portátil (con Windows Vista) tenía un disco de 250 GB y al cambiarlo por uno de 500 GB los drivers originales de Intel no eran compatibles con el disco de 250 y no me funcionaba Widnows Update. Tras mucho navegar vi en un foro que alguien había encontrado esa relación y lo solucionó. Me bajé una versión actualizada 'Intel Rapid Storage Technology Driver v9.5.6.1001 REV. SoftPaq NUMBER:  SP47845'. Y problema solucionado.

Estas son las especificaciones del dispositivo:
DEVICES SUPPORTED:  
PCI\VEN_8086&DEV_3B29="Intel(R) 5 Series 4 Port SATA AHCI Controller"


y mi CPU:
Intel(R) Core(TM)2 Duo CPU     P8400  @ 2.26GHz, 2267 Mhz, 2 procesadores principales, 2 procesadores lógicos

Parece ser que tiene que ver con el AHCI (Advanced Host Controller Interface) o RAID.

Pero esto no acaba aquí, ayer tras instalar Windows 7 en un PC (no le meto Linux porque no tiene conexión a Internet). Pues vi que el disco del PC tenía un programa para controlar el CPU mostrando los vatios que consumía. Busqué lo mismo en el disco del portátil y por error instalé los drivers antiguos de Intel. El resultado un mensaje de error de Windows Live Mail:"Error 0x8E5E0247". El cual no relacioné para nada con el tema de los drivers, y busqué incesantemente una solución en Google, hasta que me acordé de haber instalado los programas 'Intel® Matrix Storage Manager' y Intel Turbo Memmory (que también te instala los drivers antiguos NO compatible con disco de 500GB ). Entonces intenté iniciar Windows Update y como esperaba tampoco funcionaba.

Desinstalé los programas de Intel y luego al reiniciar PANTALLAZO AZUL. Tuve que iniciar el modo reparación y restaurar el sistema a un punto anterior.

Dicho todo esto, no entiendo qué tiene que ver windows Live Mail y Windows Update con el CPU y el disco de 500GB. No entiendo esa dependéncia de Windows Update y  Windows Live Mail con Intel y sus drivers, la verdad.

Espero que alguien pueda explicarme la relación.

Aquí otro usuario se encontró con el mismo problema y lo solución del mismo modo:
http://programacion-vision-digital.bligoo.com.mx/resuelto-windows-update-error-0x8e5e0247-en-windows-7


#267
Programación Visual Basic / Re: WebBrowser
27 Octubre 2015, 14:54 PM
¿VB o VB.NET?
#268
A lo mejor es porque estás en el foro equivocado. En teoría, esto es para VB (5 o 6)

Si es para .NET

http://foro.elhacker.net/net-b62.0/

Además, para mejor comprensión y legibilidad del código te recomiendo que uses GeShi para . Net
Código (vbnet) [Seleccionar]
Imports System.IO


Public Class Form1

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       cargarCarpetas("C:/Manuales")
   End Sub
   Public Sub cargarSubcarpetas(ByVal rutaRaiz As String,
             ByVal nodoTree As Windows.Forms.TreeNode)
       On Error Resume Next
       Dim carpetaActual As String
       Dim indice As Integer

       If nodoTree.Nodes.Count = 0 Then
           For Each carpetaActual In
                   My.Computer.FileSystem.GetDirectories(rutaRaiz)
               indice = carpetaActual.LastIndexOf(System.IO.Path.PathSeparator)
               nodoTree.Nodes.Add(carpetaActual.Substring(indice + 1,
                    carpetaActual.Length - indice - 1))
               nodoTree.LastNode.Tag = carpetaActual
               nodoTree.LastNode.ImageIndex = 0
           Next
       End If
   End Sub

   Public Sub cargarCarpetas(ByVal rutaRaiz As String)
       Dim nodoBase As System.Windows.Forms.TreeNode

       If IO.Directory.Exists(rutaRaiz) Then
           If rutaRaiz.Length <= 3 Then
               nodoBase = TreeView1.Nodes.Add(rutaRaiz)
           Else
               nodoBase = TreeView1.Nodes.Add(
                   My.Computer.FileSystem.GetName(rutaRaiz))
           End If
           nodoBase.Tag = rutaRaiz
           cargarSubcarpetas(rutaRaiz, nodoBase)
       Else
           Throw New System.IO.DirectoryNotFoundException()
       End If
   End Sub

   Private Sub TreeView1_AfterExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterExpand
       Dim n As System.Windows.Forms.TreeNode
       For Each n In e.Node.Nodes
           cargarSubcarpetas(n.Tag, n)
       Next
   End Sub

   Private Sub TreeView1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseDoubleClick

       Dim ruta As String
       ruta = TreeView1.SelectedNode.ToString.Substring(9)
       TextBox1.Text = ruta
       Shell("explorer.exe root=" & TextBox1.Text & " ", vbNormalFocus)

   End Sub
End Class





Se me olvidaba...
En el directorio de instalación de VB.NET 2010 puedes encontrar un archivo comprimido con ejemplos, concretamente en:
C:\Program Files\Microsoft Visual Studio 10.0\Samples\3082

Encontrarás un archivo ZIP llamado VBSamples.zip. Dentro del mismo una carpeta llamada Winforms Samples y dentro de ésta, otra llamada ExplorerApp que contiene un ejemplo de Explorador de carpetas, con función doble clic sobre los archivos para abrirlos.

Saludos
#269
Hola
Si pones tex, lógico que te de error porque es text. :xD

Bueno, fuera bromas  :¬¬

Ya te lo está diciendo: porque no tienen una firma compatible


No se muy bien lo que quieres hacer, haber si esto te sirve como solución:

Código (vbnet) [Seleccionar]
Option Strict On
Option Explicit On
Public Class Form1

   Public Sub EventClickRef(ByRef Res As Integer)
       Dim nRandom As New Random
       Res = nRandom.Next(5 * Res) 'Multiplica el valor devuelto por 5 y lo mete en Res
   End Sub
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim Res As Integer = 2
       EventClickRef(Res) 'Envia el valor actual de Res (2) a EventClick y devuelve otro valor
       Button1.Text = CStr(Res)
   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   End Sub
End Class




#270
No tengo Window7, ni siquiera en Virtualbox pero puedo sugerirte varias cosas

Primera:
Si la línea ReDim byte... está desactivada se cargan todos los bytes. Si solo quieres una porción por ejemplo de 500 bytes, activa la línea quitando ' y estableces el ReDim bytes(500).

Código (vb) [Seleccionar]
Dim VectorBytes() As Byte
 
 Open App.Path & "\" & "prueba.dat" For Binary Lock Read As 1
VectorBytes= Space(LOF(1))
' ReDim bytes(?) '<<--- Forma selectiva de bytes Ej. (500)
   Get #1, , VectorBytes
 Close #1


Segunda
Crear el Array del archivo mediante API

Código (vb) [Seleccionar]

Const FILE_ATTRIBUTE_TEMPORARY = &H100
Const OPEN_EXISTING = 3
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Const FILE_ATTRIBUTE_NORMAL = &H80
Const OPEN_ALWAYS = 4
Const INVALID_HANDLE_VALUE = -1

Private Declare Function FlushFileBuffers Lib "kernel32" ( _
       ByVal hFile As Long) As Long
       

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Private Declare Function SetVolumeLabel Lib "kernel32" Alias "SetVolumeLabelA" _
(ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long

Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, _
ByVal lpSecurityAttributes As Any, _
ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long

Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, _
lpBuffer As Any, _
ByVal nNumberOfBytesToRead As Long, _
lpNumberOfBytesRead As Long, _
ByVal lpOverlapped As Any) As Long


Private Declare Function WriteFile Lib "kernel32" _
(ByVal hFile As Long, lpBuffer As Any, _
ByVal nNumberOfBytesToWrite As Long, _
lpNumberOfBytesWritten As Long, _
ByVal lpOverlapped As Any) As Long

Private Sub Command1_Click()
   Dim hFile As Long
   Dim fBytes() As Byte <==Array del archivo
   Dim fSize As Long, lBytesRead As Long
   Dim fSuccess As Long
   Dim BytesToRead As Long
   Dim FileToRead As String
   
  FileToRead = App.Path & "\" & "Prueba.dat"


   '///LEE EL ARCHIVO EN BYTES ///////////////////
   hFile = CreateFile(FileToRead, _
   GENERIC_WRITE Or GENERIC_READ, 0&, 0&, _
   OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0&)
   If hFile <> INVALID_HANDLE_VALUE Then
   fSize = GetFileSize(hFile, 0)
   ReDim fBytes(fSize)
   BytesToRead = (UBound(fBytes) + 1) * LenB(fBytes(0))
   fSuccess = ReadFile(hFile, fBytes(LBound(fBytes)), BytesToRead, lBytesRead, 0&)
   CloseHandle hFile
    End If
   '/////////////////////////////////////////////
 
 
 
' Guardar el archivo en otro directorio (Con API)
 Call CrearAchivoBinario("C:\PruebaCopia.dat", fBytes)



'///guardar el archivo en otro directorio (Sin API)
   'Open "C:\PruebaCopia.dat" For Binary Access Write As 1
   'Put #1, , fBytes
   'Close
End Sub


  Private Sub CrearAchivoBinario(ByVal FileName As String, fBytes() As Byte)
   Dim fSuccess As Long
   Dim hFile As Long
   Dim BytesToRead As Long
   Dim lBytesWritten As Long
   
      BytesToWrite = (UBound(fBytes) + 1) * LenB(fBytes(1))
         hFile = CreateFile(FileName, _
         GENERIC_WRITE Or GENERIC_READ, _
         ByVal 0&, ByVal 0&, _
         OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0&)
         
           If hFile <> INVALID_HANDLE_VALUE Then
         fSuccess = WriteFile(hFile, fBytes(LBound(fBytes)), BytesToWrite, lBytesWritten, 0&)
         
           If fSuccess <> 0 Then
              fSuccess = FlushFileBuffers(hFile)
              fSuccess = CloseHandle(hFile)
           End If
           End If
           
     End Sub



He añadido CrearAchivoBinario por si quieres crearlo a partir del array y tuvieras también problemas con eso.

+Info:
https://support.microsoft.com/es-es/kb/165942