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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 ... 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [34] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ... 356
331  Programación / Programación Visual Basic / Re: ¿Cambiar el Color de un Item al agregarlo? en: 21 Noviembre 2012, 20:08 pm
pedis algo que parece facil, pero VB6 no lo ofrece, por lo tanto tenes que escribir una chorrada de codigo para hacer eso que queres, aca te dejo igual el codigo para hacer eso, pero te recomiendo que uses un usercontrol como el que te dijeron arriba.

en un modulo (bas)

Código
  1. Option Explicit
  2.  
  3. Private Type RECT
  4.    Left As Long
  5.    Top As Long
  6.    Right As Long
  7.    Bottom As Long
  8. End Type
  9.  
  10. Private Type DRAWITEMSTRUCT
  11.    CtlType As Long
  12.    CtlID As Long
  13.    itemID As Long
  14.    itemAction As Long
  15.    itemState As Long
  16.    hwndItem As Long
  17.    hdc As Long
  18.    rcItem As RECT
  19.    itemData As Long
  20. End Type
  21.  
  22. Private Type CWPSTRUCT
  23.    lParam As Long
  24.    wParam As Long
  25.    message As Long
  26.    hWnd As Long
  27. End Type
  28.  
  29. Private Type CREATESTRUCT
  30.    lpCreateParams As Long
  31.    hInstance As Long
  32.    hMenu As Long
  33.    hWndParent As Long
  34.    cy As Long
  35.    cx As Long
  36.    y As Long
  37.    x As Long
  38.    style As Long
  39.    lpszName As Long
  40.    lpszClass As Long
  41.    ExStyle As Long
  42. End Type
  43.  
  44. Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
  45. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  46. Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  47. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  48. Private Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
  49. Private Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
  50. Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
  51. Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
  52. Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
  53. Private Declare Function FillRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
  54. Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
  55. Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
  56. Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
  57. Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
  58.  
  59. Private Const WH_CALLWNDPROC = 4
  60. Private Const CBS_OWNERDRAWVARIABLE = &H20&
  61. Private Const CB_GETLBTEXT = &H148
  62. Private Const COLOR_HIGHLIGHT = 13
  63. Private Const COLOR_HIGHLIGHTTEXT = 14
  64. Private Const COLOR_WINDOW = 5
  65. Private Const COLOR_WINDOWTEXT = 8
  66. Private Const GWL_WNDPROC = (-4)
  67. Private Const GWL_STYLE = (-16)
  68. Private Const ODS_SELECTED = &H1
  69. Private Const ODT_COMBOBOX = 3
  70. Private Const WM_CREATE = &H1
  71. Private Const WM_DRAWITEM = &H2B
  72.  
  73. Private lPrevWndProc As Long
  74. Private lHook As Long
  75. Private lSubCombo As Long
  76.  
  77. Sub Main()
  78.    lHook = SetWindowsHookEx(WH_CALLWNDPROC, AddressOf HookApp, App.hInstance, App.ThreadID)
  79.    Form1.Show
  80.    Call UnhookWindowsHookEx(lHook)
  81. End Sub
  82.  
  83. Public Sub SubClassForm(ByVal hWnd As Long)
  84.    lPrevWndProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf SubClassedForm)
  85. End Sub
  86.  
  87. Public Sub RemoveSubClassing(ByVal hWnd As Long)
  88.    Call SetWindowLong(hWnd, GWL_WNDPROC, lPrevWndProc)
  89. End Sub
  90.  
  91. Public Function SubClassedForm(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  92.    Dim tItem As DRAWITEMSTRUCT
  93.    Dim sItem As String
  94.    Dim lBackBrush As Long
  95.  
  96.    If Msg = WM_DRAWITEM Then
  97.        Call CopyMemory(tItem, ByVal lParam, Len(tItem))
  98.        If tItem.CtlType = ODT_COMBOBOX Then
  99.            sItem = Space(255)
  100.            Call SendMessage(tItem.hwndItem, CB_GETLBTEXT, tItem.itemID, ByVal sItem)
  101.            sItem = Left(sItem, InStr(sItem, Chr(0)) - 1)
  102.            If (tItem.itemState And ODS_SELECTED) Then
  103.                lBackBrush = CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT))
  104.                Call SetBkColor(tItem.hdc, GetSysColor(COLOR_HIGHLIGHT))
  105.                Call SetTextColor(tItem.hdc, GetSysColor(COLOR_HIGHLIGHTTEXT))
  106.            Else
  107.                lBackBrush = CreateSolidBrush(GetSysColor(COLOR_WINDOW))
  108.                Call SetBkColor(tItem.hdc, GetSysColor(COLOR_WINDOW))
  109.                Call SetTextColor(tItem.hdc, tItem.itemData)
  110.            End If
  111.            FillRect tItem.hdc, tItem.rcItem, lBackBrush
  112.            TextOut tItem.hdc, tItem.rcItem.Left, tItem.rcItem.Top, ByVal sItem, Len(sItem)
  113.            SubClassedForm = 0
  114.            Exit Function
  115.        End If
  116.    End If
  117.    SubClassedForm = CallWindowProc(lPrevWndProc, hWnd, Msg, wParam, lParam)
  118. End Function
  119.  
  120. Private Function HookApp(ByVal lHookID As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  121.    Dim tCWP As CWPSTRUCT
  122.    Dim sClass As String
  123.  
  124.    Call CopyMemory(tCWP, ByVal lParam, Len(tCWP))
  125.    If tCWP.message = WM_CREATE Then
  126.        sClass = Space(128)
  127.        Call GetClassName(tCWP.hWnd, ByVal sClass, 128)
  128.        sClass = Left(sClass, InStr(sClass, Chr(0)) - 1)
  129.        If sClass = "ComboLBox" Then
  130.            lSubCombo = SetWindowLong(tCWP.hWnd, GWL_WNDPROC, AddressOf SubComboCreate)
  131.        End If
  132.    End If
  133.    HookApp = CallNextHookEx(lHook, lHookID, wParam, ByVal lParam)
  134. End Function
  135.  
  136. Private Function SubComboCreate(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  137.    Dim tCreate As CREATESTRUCT
  138.  
  139.    If Msg = WM_CREATE Then
  140.        Call CopyMemory(tCreate, ByVal lParam, Len(tCreate))
  141.        tCreate.style = tCreate.style Or CBS_OWNERDRAWVARIABLE
  142.        Call CopyMemory(ByVal lParam, tCreate, Len(tCreate))
  143.        Call SetWindowLong(hWnd, GWL_STYLE, tCreate.style)
  144.        Call SetWindowLong(hWnd, GWL_WNDPROC, lSubCombo)
  145.    End If
  146.    SubComboCreate = CallWindowProc(lSubCombo, hWnd, Msg, wParam, lParam)
  147. End Function
  148.  
  149.  

en el formulario:

Código
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.  
  5.    With Combo1
  6.        .AddItem ("Item 1")
  7.        .itemData(.NewIndex) = vbBlue
  8.        .AddItem ("Item 2")
  9.        .itemData(.NewIndex) = vbRed
  10.        .AddItem ("Item 3")
  11.        .itemData(.NewIndex) = vbGreen
  12.        .AddItem ("Item 4")
  13.        .itemData(.NewIndex) = vbYellow
  14.        .AddItem ("Item 5")
  15.        .itemData(.NewIndex) = vbRed
  16.    End With
  17.  
  18.    Call SubClassForm(Me.hWnd)
  19. End Sub
  20.  
  21. Private Sub Form_Unload(Cancel As Integer)
  22.    Call RemoveSubClassing(Me.hWnd)
  23. End Sub

y tenes que hacer que el proyecto comienze desde el Sub_Main (en las propiedades del proyecto)
332  Programación / .NET (C#, VB.NET, ASP) / Re: La carpeta bin se me llena de dll's que mi app no utiliza en: 21 Noviembre 2012, 19:56 pm
WTF ? que es eso ?  :xD

en el arbol del proyecto hay un iconito que dice "mostrar archivos ocultos" ahi te va a aparecer en el arbol del proyecto uno que dice "references" o "referenicas" ahi abrilo y te fijas que referencias esta usando tu proyecto, si ves alguna de esas dll borralas de ahi y listo, volve a compilar.

en teoria si es el programa que anteriormente estabas haciendo, eso no usa mas que las librerias estandar del framework, asi que no se si las agregaste vos manulmente o de donde salieron.
333  Programación / .NET (C#, VB.NET, ASP) / Re: Como aplicar cambios al registro y refrescar el sistema sin tener que reiniciar? en: 21 Noviembre 2012, 19:53 pm
fijate este ejemplo, lo pasas facil desde C#

Registry settings immediate effect using C#

lo que hace es con la api SendMessage justamente envia un mensaje de windows, en este caso la constante WM_SETTINGCHANGE y las aplicaciones son notificadas del cambio, en teoria deberia funcionar, probalo.
334  Programación / .NET (C#, VB.NET, ASP) / Re: Cuando compilo mi aplicación, no funciona. en: 21 Noviembre 2012, 19:48 pm
solucionar este tipo de errores que solo salen cuando esta compilado, y no salen en el IDE es facil, tenes varias posibilidades:

1 - comentar una parte del codigo, por ejemplo todo el codigo del evento form_load lo comentas y luego compilas y probas el programa, si no salta error el error esta ahi, mira que facil.

2 - vas poniendo msgbox por cada linea, te fijas hasta que msgbox llego antes de que salte el erorr y listo ahi tenes la linea del error.

me imagino que estas ejecutando el .exe que esta en bin/release y no el de debug.

saludos.
335  Programación / .NET (C#, VB.NET, ASP) / Re: [VS] ¿clonar evento para varios elementos? ¿FOR? en: 20 Noviembre 2012, 16:00 pm
me lei todo y todavia no entendi :xD, en realidad entendi, pero no cual es el problema, es simplemente guardar el estado de los checkbox y la ultima ruta que seleccionaste. pero como tenes 2 rutas se te borran las anteriores, pues simplemente guardas para cada path determinado tanta cantidad de checkboxes y de esa forma cada ves que cambias de ruta tenes lo ultimo que seleccionaste.

por ejemplo la carpeta c:\prueba genera 2 checkbox, tildas los 2 por ejemplo:

 - check 1
 - check 2

despues vas y seleccionas la carpeta c:\prueba2 que genera 3 checkboxes mas (aca ya tenes que guardar los checkboxes anteriores, y guardar la ruta tambien).

 - check 1
 - check 2
 - check 3

supongamos que tildas los 3.

entonces si ahora vas y seleccionas otra ves la carpeta anterior c:\prueba debes cargar los primeros 2 check.

o sea el path es lo que importa aca, despues segun el path cargas los checkbox que se crearon.

pero antes tendrias que hacer una validacion tambien de si existe la carpeta, porque si yo voy y borro un subdirectorio y despues cargas los valores guardados ese directorio no existe mas, por lo tanto el checkbox tampoco deberia aparecer.

336  Foros Generales / Noticias / Re: Windows 8 no se está vendiendo tan bien como Microsoft pensaba. ¿Vuelve el ... en: 19 Noviembre 2012, 23:20 pm
Citar
En el entorno empresarial todavía XP tiene mucho peso y Windows 7 no lleva tanto tiempo como para que una corporación, y no digamos una Pyme, se planteen el cambio

es lo que yo siempre dije aca, todavia hay muchisima gente que usa XP y de suerte algunos tienen windows 7 (la otra ves vi una pc con windows 98 todavia), o sea el 100% de la gente que usa XP, todavia no se cambio a windows 7, y estos ya sacaron el windows 8...me parece muy rapido.

y la gente que de suerte recien ahora se paso a windows 7, ahora ven que sacaron el 8, la gente queda loca y no sabe que hacer.
337  Foros Generales / Noticias / Re: Google `inventa´ el calendario de 11 meses en Android 4.2 en: 19 Noviembre 2012, 20:54 pm
solucion: nacer en otro mes y listo el pollo.  :xD
338  Programación / .NET (C#, VB.NET, ASP) / Re: Winsock en vb.net en: 16 Noviembre 2012, 13:18 pm
winsock no existe mas en vb .net, para eso esta a clase que maneja puertos, System.Net.Sockets, con eso podes hacerlo.

saludos.
339  Foros Generales / Noticias / Re: Los usuarios de iPhone tienen más estudios y dinero que los de Android en: 14 Noviembre 2012, 20:34 pm
6 palabras

estos estudios siempre son cualquier cosa.
340  Foros Generales / Noticias / Re: Sentencian a 15 años a un pirata americano en: 14 Noviembre 2012, 20:32 pm
¿ 15 años por eso ? y bue los yankis ya tienen tanta guerra encima que los años de als condenas son cualquier cosa, da risa que den 15 años por eso, puedo dar miles de ejemplos donde un tipo mato varias personas y le dieron menos años y salio en la mitad del tiempo, pero algo queda claro, en ee.uu conviene matar que robar una gallina.

igual es un tonto, si ya lo habian condenado antes. ¿ pero 15 años ? ¿ cuanto le tenemos que dar a bush por lo que hizo ? 1 millon de años ?.
Páginas: 1 ... 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [34] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ... 356
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines