Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: [Zero] en 3 Enero 2008, 01:29 am



Título: Error grave con ocx
Publicado por: [Zero] en 3 Enero 2008, 01:29 am
Pues verán mi code falla, y supongo que es al registrar un ocx, lo copio a windows y lo registro con regsvr32, pero al ejecutarlo windows dice que se trata de una herramienta potencialmente peligrosa y no deja ejecutarla..... alguien sabe??
Salu2


Título: Re: Error grave con ocx
Publicado por: Tughack en 3 Enero 2008, 02:54 am
Y de k .ocx se trata? Un .ocx es como se fuera un ejecutable, y se no es de confianza puede darte problemas...

Salu2


Título: Re: Error grave con ocx
Publicado por: [Zero] en 3 Enero 2008, 14:12 pm
Systray.ocx, no sabía que me fuera a dar tantos problemas, hay otra forma de hacer que programa se minimice junto al reloj de windows? como tu Iceberg Tughack, que no tiene ocx... :huh:
Salu2


Título: Re: Error grave con ocx
Publicado por: Tughack en 3 Enero 2008, 14:18 pm
Claro, pudes hacerlo con la api shell_notifyicon.

Citar
Option Explicit

Private Type NOTIFYICONDATA
    cbSize As Long
    hWnd As Long
    uID As Long
    uFlags As Long
    uCallbackMessage As Long
    hIcon As Long
    szTip As String * 64
End Type
   
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long

Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2

Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4

Public Const WM_MOUSEMOVE As Long = &H200
Public Const WM_LBUTTONDOWN As Long = &H201
Public Const WM_LBUTTONUP As Long = &H202
Public Const WM_LBUTTONDBLCLK As Long = &H203
Public Const WM_RBUTTONDOWN As Long = &H204
Public Const WM_RBUTTONUP As Long = &H205
Public Const WM_RBUTTONDBLCLK As Long = &H206

Private NID As NOTIFYICONDATA

Public Sub Add(ByVal MyForm As Form, Optional ByVal sToolTip As String)
On Error GoTo ErrHandler
    With NID
        .cbSize = Len(NID)
        .hWnd = MyForm.hWnd
        .uID = vbNull
        .uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
        .uCallbackMessage = WM_MOUSEMOVE
        .hIcon = MyForm.Icon
        If sToolTip <> vbNullString Then
            .szTip = sToolTip & vbNullChar
        End If
    End With
    Call Shell_NotifyIcon(NIM_ADD, NID)
    Exit Sub
ErrHandler:
    MsgBox "Could not add systray.", vbCritical, "Error"
End Sub

Public Sub Delete()
On Error GoTo ErrHandler
    Call Shell_NotifyIcon(NIM_DELETE, NID)
    Exit Sub
ErrHandler:
    MsgBox "Could not delete systray.", vbCritical, "Error"
End Sub

Public Sub Modify(ByVal MyForm As Form, Optional ByVal sToolTip As String)
On Error GoTo ErrHandler
    With NID
        .cbSize = Len(NID)
        .hWnd = MyForm.hWnd
        .uID = vbNull
        .uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
        .uCallbackMessage = WM_MOUSEMOVE
        .hIcon = MyForm.Icon
        If sToolTip <> vbNullString Then
            .szTip = sToolTip & vbNullChar
        End If
    End With
    Call Shell_NotifyIcon(NIM_MODIFY, NID)
    Exit Sub
ErrHandler:
    MsgBox "Could not modify systray.", vbCritical, "Error"
End Sub

He echo otro modulo para cargar iconos 32-bit, se te hace falta pidemelo.

Salu2


Título: Re: Error grave con ocx
Publicado por: [Zero] en 3 Enero 2008, 15:11 pm
Gracias, de momento es suficiente con eso, me estudiaré el codigo  ;D
Salu2