|
61
|
Programación / Programación Visual Basic / ProgresBar indefinido (source)
|
en: 30 Septiembre 2008, 20:45 pm
|
Buenas esta es una simple funcion para agregar un progreso indefinido a las barra de progreso tal como lo hacen muchos programas o cuando se ejecuta una busqueda en el disco una imagen de ejemplo agregar un progressbar1 (de la version Common Controls 5) Option Explicit Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Const GWL_STYLE = (-16) Private Const WM_USER As Long = &H400 Private Const PBS_MARQUEE As Long = 8 Private Const PBM_SETMARQUEE = (WM_USER + 10)
Private Sub Form_Load() Dim Ret As Long Ret = SetStyleMarquee(ProgressBar1.hwnd, 50) If Ret = False Then MsgBox "No se pudo aplicar el estilo" End If End Sub
Public Function SetStyleMarquee(hwnd As Long, Velocity As Long) As Boolean SetWindowLong hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) Or PBS_MARQUEE SetStyleMarquee = SendMessageLong(hwnd, PBM_SETMARQUEE, 1, Velocity) End Function
Lo compilan y agregan un archivo Proyecto1.exe.manifest junto al ejecutable, sino no funciona. Me han dicho que con algunos themes de windows no funciona. aver que les pasa a ustedes.
|
|
|
62
|
Programación / Programación Visual Basic / Mail con formato HTML (Source)
|
en: 4 Septiembre 2008, 08:01 am
|
Buenas otro producto del aburrimiento, se trata de un proyecto para enviar mails con formato Html, y adjuntos , utiliza " CDO" así que si bien esto funciona desde windows 2000 y posteriores. Para poder enviar los mails nesesita configurarlo. por lo que deben tener una cuenta de mail con SMTP (Gmail, Yahoo etc.) "Hotmail NO" a hotmail solo se pueden enviar los mails, bien el mas practico es gmail ya que no nesesita configurarlo. encambio con yahoo ya deberán configurarlo desde la pagina de yahoo (cosa que no voy a explicar). Cuenta con dos Skin y tiene las opciones Basicas de un editor, se podria aver echo si tantas boludeces pero bueno tenia ganas de usar lo que habia echo. Supongo que si tiene IE7 no lo podrán ejecutar desde el IDE de visual. pero si el ejecutable. o bien si saben como se soluciona ese problema con el Webbrowser y el IE7. Bueno la idea es que si encuentran errores los reporten aca. Gracias Descargar
|
|
|
63
|
Programación / Programación Visual Basic / Mostrar texto en columna?
|
en: 26 Agosto 2008, 06:30 am
|
buenas tengo una duda que hace tiempo me viene acosando Como puedo mostrar texto en columna dentro de un textbox, muestro un ejemplo Dim sResult As String
Private Sub Form_Load() Me.AutoRedraw = True
AddData "Rosario", "2.80", "Estacional" AddData "Santa Fe", "3.13", "Crece" AddData "Corrientes", "4.22", "Baja" AddData "Formosa", "4.44", "Crece" AddData "Posadas", "5.30", "Baja" AddData "Iguazú", "13.50", "Crece" AddData "Andresito", "0.82", "Baja" AddData "Villa Constitución", "2.35", "Crece" Debug.Print sResult Me.Print sResult End Sub
Private Sub AddData(D1 As String, D2 As String, D3 As String) sResult = sResult & Tabular(D1, 25) & Tabular(D2, 6, True) & Space(10) & Tabular(D3, 10) & vbCrLf End Sub
'Private Sub AddData(D1 As String, D2 As String, D3 As String) ' sResult = sResult & D1 & vbTab & vbTab & D2 & vbTab & D3 & vbCrLf 'End Sub
Private Function Tabular(Palabra As String, Espacio As Long, Optional AlignRight As Boolean) As String If AlignRight Then Tabular = Space(Espacio - Len(Palabra)) & Palabra Else Tabular = Palabra & Space(Espacio - Len(Palabra)) End If End Function
bien si prueban el ejemplo veran que en la ventana de inmediato se muestra correctamente pero al mostrar estos datos en un textbox o con la funcion me.print se desalinean. si uso la segunda funcion AddData (La que esta comentada) pues bien surge un problema con respecto al ultimo items (Villa Constitución) ya que este es mas largo que los superiores o en el primer items que al ser muy corto la tabulacion no se nota, entonces como se cuando deberia aplicar un doble o triple tab o ninguno? Saludos
|
|
|
64
|
Programación / Programación Visual Basic / Botones con imagenes + Temas de XP (Source)
|
en: 22 Agosto 2008, 09:59 am
|
Buenas esta es un modulo clase para poder agregar Iconos a los botones, y mantener los temas de xp presnete, bien anteriormente habia echo algo parecido pero era una currada, creo que esto es la forma correcta. porlomenos estando presente los temas de xp , por si esto no fuera asi, hay una subrutina no muy precaria para mostrar la imagen y el texto (no esta 100% completa) pero si alguien la nesesita se puede mejorar. Boton con Imagen.zip - Descargame gustaria si alguien tiene win 98 o win Vista y lo puede testear, para saber si da error.
|
|
|
66
|
Programación / Programación Visual Basic / Api Google Char
|
en: 23 Julio 2008, 03:09 am
|
Hola este es un ejemplo para pode utilizar el Api Google Char desde visual, bien esto puede ser utili en muy pocos caso, cuando tengamos conexion a internet y las consultas no sea muy frecuentes, asi que bien cada uno sabra si le puede dar utilidad. Aca pueden encontrar toda la informacion de como utilizar esta api http://code.google.com/apis/chart/agregar Cuatro Botones, un Picture1, y un HScroll1 Option Explicit Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long Private Declare Function GdipCreateFromHDC Lib "gdiplus" (ByVal HDC As Long, graphics As Long) As Long Private Declare Function GdipDisposeImage Lib "gdiplus" (ByVal image As Long) As Long Private Declare Function GdipDrawImageRectRectI Lib "gdiplus" (ByVal graphics As Long, ByVal image As Long, ByVal dstx As Long, ByVal dsty As Long, ByVal dstwidth As Long, ByVal dstheight As Long, ByVal srcx As Long, ByVal srcy As Long, ByVal srcwidth As Long, ByVal srcheight As Long, ByVal srcUnit As Long, ByVal imageAttributes As Long, Optional ByVal callback As Long = 0, Optional ByVal callbackData As Long = 0) As Long Private Declare Function GdipDeleteGraphics Lib "gdiplus" (ByVal graphics As Long) As Long Private Declare Function GdipLoadImageFromFile Lib "gdiplus" (ByVal filename As String, ByRef image As Long) As Long Private Declare Function GdiplusStartup Lib "gdiplus" (ByRef token As Long, inputbuf As Long, Optional ByVal outputbuf As Long = 0) As Long Private Declare Sub GdiplusShutdown Lib "gdiplus" (ByVal token As Long)
Private Function RenderChar(ByVal HDC As Long, ByVal Param As String, ByVal X As Long, ByVal Y As Long, ByVal Width As Long, ByVal Height As Long) As Boolean Dim hGraph As Long Dim hImage As Long Dim hGdiPlus As Long
If URLDownloadToFile(0, "http://chart.apis.google.com/chart?chs=" & Width & "x" & Height & "&" & Param, App.Path & "\Temp.png", 0, 0) = 0 Then
GdiplusStartup hGdiPlus, 1 If GdipCreateFromHDC(HDC, hGraph) = 0 Then
If GdipLoadImageFromFile(StrConv(App.Path & "\Temp.png", vbUnicode), hImage) = 0 Then If GdipDrawImageRectRectI(hGraph, hImage, X, Y, Width, Height, 0, 0, Width, Height, &H2&, 0) = 0 Then RenderChar = True End If End If GdipDisposeImage hImage End If GdipDeleteGraphics hGraph GdiplusShutdown hGdiPlus Kill App.Path & "\Temp.png" End If End Function
Private Sub Command1_Click() Dim Param As String Param = "cht=p3&chd=t:80,40,30&chl=Sapallo|Lechuga|Tomate" Debug.Print RenderChar(Picture1.HDC, Param, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight) End Sub
Private Sub Command2_Click() Dim Param As String Param = "cht=bhs&chco=ff0000,00ff00,0000ff,&chd=s:FOE,THE,Bar&chxt=x,y&chxl=1:|Dec|Nov|Oct|0:||20K||60K||100K|" Debug.Print RenderChar(Picture1.HDC, Param, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight) End Sub
Private Sub Command3_Click() Dim Param As String Param = "cht=gom&chd=t:" & HScroll1.Value & "&chl=" & "Valor " & HScroll1.Value Debug.Print RenderChar(Picture1.HDC, Param, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight) End Sub
Private Sub Command4_Click() Dim Param As String Param = "cht=v&chd=t:100,80,60,30,30,30,10&chco=00ff00,0000ff" Debug.Print RenderChar(Picture1.HDC, Param, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight) End Sub
Private Sub Form_Load() Picture1.ScaleMode = vbPixels Picture1.Move 0, 0, 5500, 2500 HScroll1.Max = 100: HScroll1.Min = 1 End Sub
Saludos
|
|
|
67
|
Programación / Programación Visual Basic / Limpiar Extructura.
|
en: 14 Julio 2008, 21:04 pm
|
buenas una duda que tengo como se limpia una extructura para poder dejarla default osea Private Type ElementProperty Blond As Boolean Italic As Boolean Underline As Boolean FontFace As String FontSize As Integer Aling As String End Type
Dim EP As ElementProperty bien suponido que ya modifique a EP y quiero recetearlo yo podria poner EP.Aling = "" EP.Blond = False EP.FontFace = "" EP.FontSize = 0 ETC. o bien dim EmptyEP as ElementProperty
EP = EmptyEP Pero se que hay forma mas elegante de hacer esto, creo que con un api se podia pero no recuerdo cual. Saludos
|
|
|
68
|
Programación / Programación Visual Basic / cSubclassToolBar (Source)
|
en: 8 Julio 2008, 00:58 am
|
Buenas, este es un modulo clase para cambiar el aspecto de los ToolBar tanto de la version CommonControls 6 como de la 5. En el ejemplo puse 10 Skin de muestra, que tambien pueden crear los suyos. no pongo explicacion de como crearlos pero si miran el de Skin_XP.bmp un poco se daran cuenta. no tiene niguna funcion extra excepto alinear el texto a la derecha para la version 5, lo demas es solo para cambiar el skin. Bueno cualquier Bugs que vean notificarmelo. uno que puedo anticipar es que no pude hacer funcionar el Wrappable para la version 6, con lo demas creo que fui cuidadoso con las propiedades o en menos las mas comunes. Saludos PD: para las imagenes disabled si no tiene el imagelist correspondiente, tal como nos limita la version 5, este dibuja un icono disabled del mismo que lo hace el toolbar.
|
|
|
69
|
Programación / Programación Visual Basic / Problemas al partir archivo
|
en: 19 Junio 2008, 03:25 am
|
Buenas vengo utilizando una forma vastante fea para partir un archivo, y ahora me doy cuenta que si la configuracion local esta cambiada las cuentas me dan cualquier cosa, Explico: Const Buffer = 4096
Private Sub Form_Load() Dim LenFile As Long Dim TotInteger As Long Dim SegmentCount As Long Dim LenRest As Long
LenFile = 3921 SegmentCount = Val(LenFile / Buffer) TotInteger = SegmentCount * Buffer LenRest = LenFile - TotInteger Debug.Print SegmentCount, TotInteger, LenRest End Sub
yo deseo saber cuanas veces entra LenFile en el Buffer lo que esto me da como resultado SegmentCount, y a su ves LenRest seria el resto de lo que no llego a completar el tamaño del Buffer ejemplo si el archivo pesa 3921 SegmentCount = 0 y lenResto = 3921 si el archivo pesa 8192 SegmentCount = 2 y lenResto = 0 si el archivo pesa 8195 SegmentCount = 2 y lenResto = 3 si el archivo pesa 6000 SegmentCount = 1 y lenResto = 1904 como pueden notar estoy trabjando con numeros enteros bien el ejemplo que puse por mas feo que sea funciona pero el tema es que si la configuracion local esta cambiada me tira cualquier resultados por ejemplo Simbolo Decimal = . Simbolo de separacion de miles = ,
correctamente en el debug deve mostrar esto 0 0 3921 incorrectamente si la configuracion esta cambiada me muestra esto 1 4096 -175 hay alguna forma elegante de hacer lo que quiero, pero sin tener que verificar la configuracion local Saludos
|
|
|
70
|
Programación / Programación Visual Basic / (source) Anti KeyLogger Password
|
en: 13 Junio 2008, 02:48 am
|
Buenas, Este es un proyecto que sirve para no tipear con el teclado las contraseñas, osea una utilidad cuando pensamos que podemos estar infectado con un keylogger. el proyecto hace lo siguiente, cuando el programa detecta que un campo de contraseña toma el foco, se muestra por debajo de este con un formulario en forma de teclado, tanto sea en una aplicación de windows como en una página de internet (con IExplorer) entoces se le hace click a los botones correspondientes a la contraseña, y bien ésta es ingresada en la caja de texto, tambien cuenta con la posibilidad de almacenar contraseñas para un uso más directo. Capturas Descarga Aplicación + Codigo de fuenteAntiKeyLogger.zip - Descargar desde RapidShareAntiKeyLogger.zip - Descargalo en UpSourceCode.com.arNota:- En paginas web solo funciona con IExplorer
- No funciona con el MsnMesenger o ventanas similares.
- Las contraseñas con acentos no creo que funcionen (pero bueno si alguno tiene ganas, se puede corregir)
Bueno creo que deberia funcionar bien, cualquier error o sugerencias hacermelo saber, si no es muy complicado se puede mejorar o corregir. De todas formas creo que esto de mi parte llega hasta aca. Agradecimientos:Cobein, skullsp, seba123neo y Tughack By: Leandro Ascierto.
|
|
|
|
|
|
|