|
371
|
Programación / Programación Visual Basic / Re: Instr para byte arrays [src]
|
en: 31 Mayo 2009, 05:51 am
|
hola muy bueno, creo que se puede optimizar un poquito mas comparando el primer bits de la búsqueda con el del bucle general Public Function FindBytes2( _ ByRef bvSource() As Byte, _ ByRef bvMatch() As Byte) As Long
Dim i As Long Dim j As Long Dim bFlag As Boolean Dim lChr As Long Dim LenMach As Long LenMach = UBound(bvMatch) FindBytes2 = -1 lChr = bvMatch(0) For i = 0 To UBound(bvSource) If lChr = bvSource(i) Then If LenMach > 0 Then For j = 1 To LenMach If i + j < UBound(bvSource) Then If bvMatch(j) = bvSource(i + j) Then bFlag = True Else bFlag = False Exit For End If End If Next If bFlag Then FindBytes2 = i Exit For End If Else FindBytes2 = i Exit Function End If End If Next End Function
Saludos, y no te olvides de seguir compartiendos tus proyectos con los de habla hispana porque yo en HH esoy muerto jejej
|
|
|
373
|
Programación / Programación Visual Basic / Re: form_load y form_initialize ?
|
en: 30 Mayo 2009, 22:30 pm
|
hola a como lo entiendo yo es un envento previo al form_load , y es cuando se crea la clase del form y los controles aun no existen, pero si llamas alguna propiedad se ejecuta el form_load intermedio a este Option Explicit Private Sub Form_Initialize() MsgBox Me.Caption End Sub Private Sub Form_Load() MsgBox Now End Sub
Option Explicit Private Sub Form_Initialize() MsgBox "Initialize" End Sub Private Sub Form_Load() MsgBox "Load" End Sub
nose si se entendio
|
|
|
374
|
Programación / Programación Visual Basic / Re: EXE en VB sin ICONO
|
en: 25 Mayo 2009, 20:21 pm
|
Si casualmente esta leyendo este post (o eso intentaba jeje) y la otra ves vi tambien un post de cobein que era casualmente sobre este tema que supuestamente reducia el tamaño del ejecutable al compilar pero bueno como te comentaba no me funcionaba o o quizas estaba haciendo algo mal, pero mas que nada era curiosidad.
Saludos
|
|
|
375
|
Programación / Programación Visual Basic / Re: EXE en VB sin ICONO
|
en: 25 Mayo 2009, 19:31 pm
|
Ocupa lo mismo (practicamente)... mas que nada porque el VB deja la sección... si la eliminas pita... asi que no lo hagas.. pero para reducir el peso puedes: - Quitar Dependecias
- Utilizar PCode
- Modificar el comando que le llega al LINK.EXE agregando /ALIGN:64
Y si programas bien puedes llegar a dejar un ejecutable de VB (6.0) en unos 10kb Hola Karcrack, como es ese tema yo probe un par de veces y no note ningun cambio donde es que pones /ALIGN:64 en el cuadro que dice "Argumentos de la linea de comando" o en "Argumentos de compilacion condicional" Saludos
|
|
|
378
|
Programación / Programación Visual Basic / Listar Ventanas, problemas con IDEOwner
|
en: 12 Mayo 2009, 08:09 am
|
hola, tengo un problema con este codigo, estoy listando todas las ventanas que aparecen en la barra de Tareas, y cuando le doy clic en el list me imprime la ventana, pero el problema es con el IDE de visual basic si no esta minimizado, el problema es que la ventana se llama wndclass_desked_gsk pero la que en realidad el que tiene el ExStyle WS_EX_APPWINDOW es IDEOwner como puedo obtener la ventana wndclass_desked_gsk a partir de IDEOwner en un modulo Option Explicit Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Private Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Public Declare Function PrintWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal hdcBlt As Long, ByVal nFlags As Long) As Long
Private Const GWL_EXSTYLE As Long = -20 Private Const WS_EX_APPWINDOW As Long = &H40000 Private Const WS_EX_WINDOWEDGE As Long = &H100&
Dim arr() As Long
Public Function fEnumWindows() As Variant ReDim arr(0) Call EnumWindows(AddressOf fEnumWindowsCallBack, GetDesktopWindow) fEnumWindows = arr End Function
Private Function fEnumWindowsCallBack(ByVal hWnd As Long, ByVal lParam As Long) As Long If IsWindowVisible(hWnd) Then If IsExStyle(hWnd, WS_EX_APPWINDOW) Or GetWinClassName(hWnd) = "CabinetWClass" Then arr(UBound(arr)) = hWnd ReDim Preserve arr(UBound(arr) + 1) End If End If fEnumWindowsCallBack = True End Function
Public Function GetWinText(ByVal hWnd As Long) Dim MyStr As String MyStr = String(100, Chr$(0)) GetWindowText hWnd, MyStr, 100 GetWinText = Left$(MyStr, InStr(MyStr, Chr$(0)) - 1) End Function
Public Function GetWinClassName(hWnd As Long) As String Dim lpClassName As String Dim Ret As Long lpClassName = Space(256) Ret = GetClassName(hWnd, lpClassName, 256) GetWinClassName = Left$(lpClassName, Ret) End Function
Private Function IsExStyle(hWnd As Long, ExStyle As Long) As Boolean IsExStyle = (GetWindowLong(hWnd, GWL_EXSTYLE) And ExStyle) = ExStyle End Function
en un formulario con un picture1 y un list1 Option Explicit Dim MyArr() As Long 'wndclass_desked_gsk 'IDEOwner Private Sub Form_Load() Dim i As Long MyArr = fEnumWindows For i = 0 To UBound(MyArr) - 1 List1.AddItem GetWinText(MyArr(i)) Next End Sub
Private Sub List1_Click() Picture1.Cls PrintWindow MyArr(List1.ListIndex), Picture1.hDC, 0 Me.Caption = GetWinClassName(MyArr(List1.ListIndex)) End Sub
Creo que deberia utlizar GetWindowThreadProcessId pero no encotre forma de hacerlo. Saludos
|
|
|
379
|
Programación / Programación Visual Basic / Re: [AYUDA] Capturar screen de una ventana X
|
en: 30 Abril 2009, 09:25 am
|
Estaba a punto de decir que no se podía y me iba a jugar la cabeza cosa que la tengo grande , pero probé el programa y me cerro la boca así que me quede caliente en saber como era y estuve como 2 horas buscando y sabia que venia por el lado de WM_PRINT pero este solo trabaja de forma interna así que lo que hice fue buscar el nombre del autor del programa mas WM_PRINT y TATAN!!! era una pelotudez Barbara Option Explicit Private Declare Function PrintWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal hdcBlt As Long, ByVal nFlags As Long) As Long Const PW_CLIENTONLY = &H1
Private Sub Command1_Click() PrintWindow Handle, Me.hDC, 0 End Sub
pero bueno la verdad me gusto esto se me ocurren un par de cosas para usarlo y tampoco tenia idea como era la cosa con WM_PRINT Saludos
|
|
|
380
|
Programación / Programación Visual Basic / Re: Skin para tus formularios [Source]
|
en: 29 Abril 2009, 04:03 am
|
Un pequeño aporte de un skin para la colección , espero les guste, esta simplon pero igual no esta de más, jaja, Buenisimo SONIC88, esta muy bueno, siempre con buenos gustos de diseño, muchas gracias por el aporte. @el_c0c0 , si olvidate de 98, ya que hay apis en 98 que tienen muchos bugs, y seguramente algunas ni existen. Saludos.
|
|
|
|
|
|
|