|
151
|
Programación / Programación Visual Basic / Re: como hago ejecutar
|
en: 16 Enero 2007, 21:19 pm
|
shadow.darknesses la función Shell es solo para archivos ejecutables es decir como los: .exe o .bat, si lo que quires es que el archivo de texto se habra algún editor de texto, entonces coincido con EON en que uses la api ShellExecute. un ejemplo: Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Const SW_SHOWNORMAL = 1 Private Sub Form_Load() ShellExecute Me.hwnd, vbNullString, "algo.zip", vbNullString, "C:\", SW_SHOWNORMAL End Sub
esto ejecutará el winzip (en mi caso) y abrirá el archivo "algo.zip"
|
|
|
152
|
Programación / Programación Visual Basic / Re: VB anda mal
|
en: 16 Enero 2007, 14:30 pm
|
me supongo que ese código va en el evento "ConnectionRequest": Private Sub wsServer_ConnectionRequest(ByVal requestID As Long) If wsServer.State <> sckClosed Then wsServer.Close wsServer.Accept requestID List1.AddItem wsServer.RemoteHostIP End Sub
porque esto a mi me funciona muy bien, otra cosa seria que revisaras si el firewall del windows o tu vacuna no estan bloqueando tu aplicacción. en mi caso tuve que agregar mi aplicación a las excepciones del firewall del windows y de la vacuna para que me dejara correrla
|
|
|
154
|
Programación / Programación Visual Basic / Re: trabajando con Clases
|
en: 16 Enero 2007, 00:08 am
|
bueno los módulos de clase los he usado para hacer dll's alli pones los procesos que quieras que sean accesados por ejemplo: Módulo de clase: Option explicit
Public Function Suma(x as integer, y as integer) as integer suma = x + y end function
esto lo compilarías como una dll y para usarlo en tu proyecto .vbp la tendrías que agregar como referencia y seria más o menos así: dim D as MiDll
set d = new MiDll msgbox d.Suma(4,5)
set d = nothing
|
|
|
155
|
Programación / Programación Visual Basic / Re: como agregar iconos a comand button
|
en: 15 Enero 2007, 23:57 pm
|
esos vienen en "C:\Archivos de programa\Microsoft Visual Studio\COMMON\Graphics", pero son al estilo w98, si quieres unos iconos mejores sacalos de "c:\windows\system32\shell32.dll" te dejo una función para sacar los iconos: En un módulo pones: Option Explicit
Private Type PicBmp Size As Long tType As Long hBmp As Long hPal As Long Reserved As Long End Type
Private Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(7) As Byte End Type
Public FILE_SHELL As String
Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As PicBmp, RefIID As GUID, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long
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 DestroyIcon Lib "user32" (ByVal hicon As Long) As Long
Public Sub GetIconFromFile(ByRef Lista As ImageList, FileName As String, iconIndex As Long, UseLargeIcon As Boolean) ' As Picture Dim X As Long ' Parametros: ' FileName - Nombre Fichero (EXE o DLL) que contiene los iconos ' IconIndex - Indice del icono a extraer, comienza en 0 ' UseLargeIcon-True para icono grande, False para icono pequeño ' Returns: Objeto Picture, donde devolvera el icono Dim hlargeicon As Long, hsmallicon As Long, selhandle As Long ' El objeto requiere una referencia a "Standard OLE Types" Dim pic As PicBmp, IPic As IPicture, IID_IDispatch As GUID X = 0 'While ExtractIconEx(FileName, X, hlargeicon, hsmallicon, 1) <> 0 If ExtractIconEx(FileName, iconIndex - 1, hlargeicon, hsmallicon, 1) <> 0 Then If UseLargeIcon Then selhandle = hlargeicon Else selhandle = hsmallicon End If With IID_IDispatch .Data1 = &H20400 .Data4(0) = &HC0 .Data4(7) = &H46 End With ' Fill Pic with necessary parts. ' Configura el picture con las partes necesarias With pic .Size = Len(pic) ' Longitud de la extructura. .tType = vbPicTypeIcon ' Tipo de Picture (bitmap). .hBmp = selhandle ' Handle al bitmap. End With ' Crea el objeto Picture Call OleCreatePictureIndirect(pic, IID_IDispatch, 1, IPic) ' Devuelve el objeto Picture Lista.ListImages.Add , , IPic 'Set GetIconFromFile = IPic DestroyIcon hsmallicon DestroyIcon hlargeicon X = X + 1 End If 'Wend End Sub
y en el form: GetIconFromFile ImageList1, "c:\windows\system32\shell32.dll", Numero_de_icono, True picture1.Picture = ImageList1.ListImages(1).Picture
lo que hago aqui es poner las imagenes en un ImageList y luego de alli las paso a cualquier control, espero te sirva
|
|
|
156
|
Programación / Programación Visual Basic / Re: como hago ejecutar
|
en: 15 Enero 2007, 23:48 pm
|
pues yo siempre he usado shell dim l as long
on local error resume next l = Shell("c:\..\programa.exe", vbMaximizedFocus) if err then 'Si no se puede ejecutar se produce un error msgbox Err.Description end if On local error goto
|
|
|
157
|
Programación / Programación Visual Basic / Re: Mandar formulario del programa creado a primer plano
|
en: 15 Enero 2007, 23:41 pm
|
eso se hace con una api: Const HWND_TOPMOST = -1 Const HWND_NOTOPMOST = -2 Const SWP_NOSIZE = &H1 Const SWP_NOMOVE = &H2 Const SWP_NOACTIVATE = &H10 Const SWP_SHOWWINDOW = &H40 Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Sub Form_Activate() SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE End Sub
|
|
|
|
|
|
|