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

#321
hola proba asi para saber que tecla se preciono.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox KeyCode
End Sub

Saludos
#322
hola mirate este proyecto te puede servir para guiarte


Saludos
#323
Con el api GetScrollInfo puedes saber esa informacion.

fijate puse un timer para ir agregando algunos items una ves que aparezca el scroll fijate que al subirlo se corta y si lo pones al final continua manteniendolo en ese lugar



Option Explicit
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Declare Function GetScrollInfo Lib "user32.dll" (ByVal hWnd As Long, ByVal n As Long, ByRef lpScrollInfo As SCROLLINFO) As Long

Private Type SCROLLINFO
    cbSize As Long
    fMask As Long
    nMin As Long
    nMax As Long
    nPage As Long
    nPos As Long
    nTrackPos As Long
End Type

Private Const WM_KEYDOWN As Long = &H100
Private Const SBS_VERT = 1

Private Const SIF_PAGE As Long = &H2
Private Const SIF_POS As Long = &H4
Private Const SIF_RANGE As Long = &H1


Private Sub Form_Load()
    Timer1.Interval = 500
End Sub

Private Sub Timer1_Timer()
    Dim SIF As SCROLLINFO
   
    SIF.cbSize = Len(SIF)
    SIF.fMask = SIF_RANGE Or SIF_PAGE Or SIF_POS
   
    GetScrollInfo ListView1.hWnd, SBS_VERT, SIF
   
   
    ListView1.ListItems.Add , , Now
   
    If (SIF.nPos + SIF.nPage > SIF.nMax) Then
        SendMessage ListView1.hWnd, WM_KEYDOWN, vbKeyEnd, 0&
    End If

End Sub


Saludos
#324
Hola no se si el listview tenga alguna propiedad referida al scroll pero pones enviar un msg de la tecla end

ejemplo.

Option Explicit

Private Const WM_KEYDOWN As Long = &H100

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long

Private Sub Command1_Click()
    ListView1.ListItems.Add , , Now
    SendMessage ListView1.hwnd, WM_KEYDOWN, vbKeyEnd, 0&
End Sub


Saludos
#325
Hola la verdad creo que no se entendio nada, almenos yo, porque no pones una imagen para ver que es lo que queres quitar.

Saludos
#326
Programación Visual Basic / Re: bmp to ico
16 Septiembre 2009, 04:25 AM
hola te recomiendo veas este link mirate la clase cFileIcon esta muy buena.

algo mas sencillo pero los iconos se ven muy feos


Option Explicit
Private Declare Function OleCreatePictureIndirect Lib "oleaut32.dll" (pDicDesc As IconType, riid As CLSIdType, ByVal fown As Long, lpUnk As Object) As Long
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Declare Function DestroyIcon Lib "user32.dll" (ByVal hIcon As Long) As Long

Private Type IconType
  cbSize                As Long
  picType               As PictureTypeConstants
  hIcon                 As Long
End Type

Private Type CLSIdType
  id(16)                As Byte
End Type

Private Function ExtractCompatibleIcon(sPathFile As String, IconIndex As Long) As IPictureDisp
 
  Dim Unkown                As IUnknown
  Dim Icon                  As IconType
  Dim CLSID                 As CLSIdType
  Dim hIcon                 As Long

  hIcon = ExtractIcon(0, sPathFile, IconIndex)




  With Icon
    .cbSize = Len(Icon)
    .picType = vbPicTypeIcon
    .hIcon = hIcon
  End With
 
  With CLSID
    .id(8) = &HC0
    .id(15) = &H46
  End With
 
  Call OleCreatePictureIndirect(Icon, CLSID, 1, Unkown)
  Set ExtractCompatibleIcon = Unkown

  DestroyIcon hIcon
End Function


Private Sub Form_Load()
    Me.Picture = ExtractCompatibleIcon("explorer.exe", 1)
    SavePicture ExtractCompatibleIcon("calc.exe", 0), "C:\calculadora.ico"
    'Me.Picture = LoadPicture("C:\calculadora.ico")
End Sub


Saludos


#327
 ;-) muy bueno, tanto este como el del regedit. muy ingenioso ambos metodos.

Saludos
#329
Muy bueno Karcrack, que tipo de cifrado utiliza?, estaria bueno que agas un proyecto para facilitar las declaraciones, algo asi como ingresar la declaración normal en un textbox, la encripte, y la ponga en el portapapeles.

Saludos.
#330
Hola a como yo lo veo es imposible hacer lo que queres, cuando trabajas con bucles cortas todo tipo de hilo, y que es lo que hace visual basic en ese sentido, recorre un solo camino. vos podes poner a descargar 3 archivos, pero que es lo que pasa

suponete que le das tres click seguidos al boton, todo bien comienzan las tres descargas pero en realidad primero descargara es la ultima, luego la penultima y por ultimo la primera, es como que lleva a puntero a la clase  que se llamo ultimo

una solucion algo fea es poder remplazar este bucle
While Res <> 0 And pBytesRecibidos <> 0 And Not Cancelar
por algun pulso de un timer, pero no es lo mas efeciente.

te preguntars porque con el metodo que use yo funciona, sensillamente porque la clase no intenta leer datos, sino los datos le llegan a este (AddressOf)

te lo digo por experiencia yo renegue mucho con este tema utilizando winsock.ocx

Consejo: las apis wininet no te van a servir para esto.

Saludos