PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  32545 - EVITAR MENU FLOTANTE EN UN TEXBOX
Autor:  Vidal Figueroa
Hola Amigos,

Tengo un Problema no logro eliminar el menu que sale cuando doy click derecho sobre un TexBox. ¿Si alguien puede decirmelo por favor?

Gracias
  Respuesta:  Sahid Ra Gutierrez Cruz
Mira lo que creo que quieres hacer es que no pegen algun texto, y si eso es puedes usando este codigo simple:

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
Text1.Locked = True
End If
End Sub

Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Locked = False
End Sub

OJO solo funciona para el mouse, pero al menos ya tienes idea de lo quepuedes hacer para el teclado :D
  Respuesta:  Javier Aparicio Rodríguez
Hola.
Puedes hacerlo mediante una subclasificación de ventanas.
Para ello crea un formulario "Form1" con un textbox "Text1"
Al cargar y descargar el formulario añade el siguiente código:

Private Sub Form_Load()
OldWindowProc = GetWindowLong(Text1.hwnd, GWL_WNDPROC)
Call SetWindowLong(Text1.hwnd, GWL_WNDPROC, AddressOf SubClase_Text1)
End Sub

Private Sub Form_Unload(Cancel As Integer)
Call SetWindowLong(Text1.hwnd, GWL_WNDPROC, OldWindowProc)
Set Form1 = Nothing
End Sub

En un módulo aparte (Module1) añade el suiguiente código:

Global Const WM_RBUTTONUP& = &H205
Global Const WM_LBUTTONUP& = &H202
Global Const GWL_WNDPROC = (-4)

Public OldWindowProc As Long

Declare Function GetWindowLong& Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long)
Declare Function SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)
Declare Function CallWindowProc& Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long)
Declare Function SendMessageBynum& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)

Public Function SubClase_Text1(ByVal hwnd As Long, ByVal Msg As Long, ByVal wp As Long, ByVal lp As Long) As Long
Dim rp&
If Msg = WM_RBUTTONUP Then
rp = SendMessageBynum(hwnd, WM_LBUTTONUP, wp, lp)
Else
SubClase_Text1 = CallWindowProc(OldWindowProc, hwnd, Msg, wp, lp)
End If
End Function

Un saludo.

    Pregunta:  32553 - DLL Y WINDOWS NT SERVER
Autor:  Jose B
Necesito saber que Dll hay que manejar para saber a que grupo global o local esta asignado un usuario en el dominio. Estoy inspeccionando las librerias advapi32.dll y calwin32.dll, pero no se los modulos que hay que manejar ni como.
No se si voy bien encaminado o no, os rogaria alguna pista de como empezar.

Gracias anticipadas.
  Respuesta:  Iván Franco
Hola José,

Pregunta: ¿Tu servidor NT es V4? de ser así la siguiente pregunta sería ¿Tienes instalado el IIS? si es así, entonces te puedes apoyar usando una librería que se llama "W3Who.dll" la cual te proporciona los grupos y políticas de grupo de un usuario determinado, incluso esta librería es out of process y es compatible con el protocolo HTTP lo cual te permitirá ejecutarla incluso desde el IE para que verifiques su funcionalidad.

Para más información visita: http://www.microsoft.com/technet/community/columns/insider/iisi1201.mspx

Espero te sea de utilidad saludos!

    Pregunta:  32633 - WINSOCK CON PROXY
Autor:  Juande
Hola amigos programadores, mi pregunta es la siguiente: tengo un aplicacion en visual basic, donde necesito que se pueda enviar correo directamente desde la aplicacion, cuando la conexion a internet es directa no tengo ningun problema (para esto utilizo winsock), el problema lo tengo cuando la conexion a internet es por medio de proxy y aun no he encontrado como poder hacerlo, no se si en el servidor proxy tambien debo de hacer algo.

De antemano gracias.
  Respuesta:  Abraham kasas
hola que tal, juan creo que tengo un programa en visual basic 6.0 que envia correo desde la aplicacion.

yo lo he probrado en la empresa donde trabajo , y aqui tenemos servidor
proxy para hacer la conexiones ha internet.

responde a este correo para que me llegue tu direccion de correo y te mando en programa con todo y codigo.

chau...

    Pregunta:  32776 - ELIMINAR TAREAS DEL ADMINISTRADOR DE TAREAS
Autor:  Victor
¿Alguien sabe como eliminar procesos del Administrador de Tareas desde VB?. Estoy trabajando con Windows XP. Muchas gracias
  Respuesta:  Cecilia Colalongo
Con la API TerminateProcess en algunos casos puede funcionar, pero necesitas el handle del proceso. Una alternativa es usar el programa Killnt pero si el proceso es crítico no creo que lo elimine.

    Pregunta:  32788 - RUTA IMAGEN EN BASE DE DATOS EN RED
Autor:  Scipio
He realizado un programa en red, donde en uno de los equipos (llamemoslo servidor) he colocado una base de datos, y en uno de los campos de sus tablas se almacena la direccion de unas imagenes. En uno de los formularios del programa se "puede" visualizar las distintas imagenes almacenadas... pero surge un grave problema...las imagenes que son almacenadas por un equipo distinto al servidor..solo pueden visualizarlas por ellos mismo y el servidor solo puede visualizar las que el almaceno...ya que el path que registra el servidor seria del modo c:\misimagenes\imagenes.jpg, mientras que las que registran los otros equipos serian \\servidor\unidaddered\misimagenes\imagenes.jpg.
He intentando conectar una unidad de red en el mismo equipo donde se encuetra el disco duro (es decir, al mismo disco duro del equipo)...pero en win98 es imposible(creo), con lo que tendria resuelto el problema ya que todos accederian a la misma ruta...pero no se ....estoy desesperado....SUGERENCIAS POR FAVOR.

GRACIAS
  Respuesta:  Miguel Lucero
Scipio

En la siguiente dirección vas encontrar una clase para VB que te permite transformar una unidad de red en su ruta UNC del tipo \\servidor\unidaddered\directorio y viceversa.

http://www.ctv.es/USERS/jrubi/trucos.htm

    Pregunta:  32810 - -ERROR - WRONG VERSION OF RUN-TIME DLL
Autor:  Roberto Molina
AL MODIFICAR UNA APLICACION (EN VB4-16) LA COMPILE Y REINSTALE EN MÁQUINAS DONDE SE ENCONTRABA OPERANDOI Y ME ARROJO ESTE ERROR. NO TENGO NI IDEA DE QUE SE TRATA.
AGRADEZCO DE ANTEMANO LA MOLESTIA QUE SE TOMEN PARA AYUDARME A SOLUCIONAR ESTE ERROR.
  Respuesta:  TECNIcAM
TIENES DESFASADAS (ANTIGUAS) LAS BIBLIOTECAS (DLL) DEL SISTEMA.
DEBES BUSCAR LAS MÁS ACTUALES Y COLOCARLAS EN \WINDOWS\SYSTEM o SYSTEM32

Hasta luego...

    Pregunta:  32868 - DESCONEXIÓN A BASE DE DATOS ORACLE POR ADO
Autor:  Roland Grapow
Tengo una aplicación el la cual realiza conexiones mediante ADO a Oracle 8.06, realizo la desconexión con el metodo "close" y después libero el objeto de la memoria. Mi problema es que realmente no se desconecta de la base de datos, es decir, que para Oracle aún mantiene la conexión, habrá otra forma de desconexión a la base de datos que realmente realice la desconexión.

Este es el código que utilizo para la desconexión

conn.Close
Set conn = Nothing

Gracias...
  Respuesta:  Iván Franco
Hola,

La forma de cerrar tu base de datos es correcta, pero te conectas por ¿ODBC? o proporcionas todos los datos en tu ConnectionString?, si no es por ODBC y utilizas directamente las librerías del Proveedor de Oracle, puede ser por 2 razones:

1. Oracle maneja un parámetro que se denomina “auto-commit” o bien si es más reciente tu versión de oracle como la “8” es “commit-on-success” el cual en 0 es apagado y 1 es encendido, este parámetro de configuración indica si al lanzar un query éste se ejecutará al momento de ser llamado o no, si está en cero las conexiones se mantienen abiertas hasta que se dispara el “Commit”, por lo tanto sería bueno que este parámetro estuviera encendido y reducir así el tiempo de ejecución física de los comandos para reducir el tiempo de conexión y optimizar el numero de usuarios concurrentes en tu BD.
2. De igual forma Oracle maneja un tiempo por conexión, este parámetro se llama “Connection time out”, ahora si tu código lo usas abriendo la conexión para cada llamada y la cierras cada vez, te convendría reducir el tiempo permitido para forzar el término de tu conexión, claro que el time out es por tiempo sin uso de la conexión.

Si estás usando un DSN de ODBC para tu conexión, entonces te recomiendo que uses un connection string más completo para abrir tu conexión y gobiernes por código todos esos parámetros.

Espero te sirva de algo esto.

Saludos!

    Pregunta:  32883 - COMUNICACIONES GSM
Autor:  Juanma Flores
Estoy desarrollando una aplicacion en Visual Basic 6 para comunicar dos PCs con modems GSM. Necesito transferir archivos de un PC a otro, para ello supongo que necesitaría utilizar algún protocolo de corrección de errores como el ZMODEM.

Desearía saber donde puedo conseguir algún control de comunicaciones que incorpore protocolos de corrección de errores ya que el MSCOMM no tiene nada de esto.

Muchas gracias por adelantado.
  Respuesta:  Luiggi A
lo que debes primero hacer es tratar de conectarse con el contrl MSComm1
y despues via sockets enviar la informacion

    Pregunta:  32887 - COMO CERRAR UNA APLICACION EN VB DESDE OTRA
Autor:  David Macias
Hola.Tengo dos aplicaciones hechas por mi en VB y quiero que si se cierra una de ellas pues que se cierre la otra.Alguien sabe como hacerlo?.GRACIAS ANTICIPADAMENTE.
  Respuesta:  SuNcO
Para hacer eso puedes leer el handle de la ventana o no se que, ocupas las API y todo eso, pero aqui te tengo un truco que es un poco chafa pero sirve. Recuerda que no todo en la vida es tan dacil y para eso existen los trucos

Al menos asi le haria yo mientras : El Programa1 es el que quieres que se cierre al cerrar el Programa2, asi que el Programa2 cuando se cierra crea un archivo llamado (por ejemplo) algo.clo, si el Programa1 detecta que existe ese archivo entonces lo elimine y se cierre. Puede buscar el archivo cada 5 segnudos o menos, no le afecta pues se queda en memoria o algo asi.

    Pregunta:  32935 - GUARDAR ARCHIVOS EN FORMATO .JPG O .GIF
Autor:  Francisco López
Tengo una imagen cargada en un control Image pero quiesera guardarla en el disco en un formato .JPG o .GIF de tal forma que no consuma mucho espacio, puesto que existe una función SavePicture() que guarda los archivos pero en formato .BMP y quiesiera que desde mi aplicación se guarde en un formato pequeño... Gracias.
  Respuesta:  Francisco López
Con el siguiente código se soluciona el problema:

En un formulario:

Private Sub Commad1_Click()
ConvertToJPEG Archivo.BMP, Archivo.JPG
End Sub

En un Módulo:

Declare Function bmpinfo Lib "VIC32.DLL" (ByVal Fname As String, bdat As BITMAPINFOHEADER) As Long
Declare Function allocimage Lib "VIC32.DLL" (image As imgdes, ByVal wid As Long, ByVal leng As Long, ByVal BPPixel As Long) As Long
Declare Function loadbmp Lib "VIC32.DLL" (ByVal Fname As String, desimg As imgdes) As Long
Declare Sub freeimage Lib "VIC32.DLL" (image As imgdes)
Declare Function convert1bitto8bit Lib "VIC32.DLL" (srcimg As imgdes, desimg As imgdes) As Long
Declare Sub copyimgdes Lib "VIC32.DLL" (srcimg As imgdes, desimg As imgdes)
Declare Function savejpg Lib "VIC32.DLL" (ByVal Fname As String, srcimg As imgdes, ByVal quality As Long) As Long

' Image descriptor

Type imgdes
ibuff As Long
stx As Long
sty As Long
endx As Long
endy As Long
buffwidth As Long
palette As Long
colors As Long
imgtype As Long
bmh As Long
hBitmap As Long
End Type

Type BITMAPINFOHEADER
biSize As Long
biWidth As Long
biHeight As Long
biPlanes As Integer
biBitCount As Integer
biCompression As Long
biSizeImage As Long
biXPelsPerMeter As Long
biYPelsPerMeter As Long
biClrUsed As Long
biClrImportant As Long
End Type

Public Sub ConvertToJPEG(bmp_fname As String, jpg_fname As String, Optional quality As Long)
Dim tmpimage As imgdes ' Image descriptors
Dim tmp2image As imgdes
Dim rcode As Long
Dim vbitcount As Long
Dim NO_ERROR
Dim bdat As BITMAPINFOHEADER ' Reserve space for BMP struct

NO_ERROR = 0
If quality = 0 Then quality = 75

' Get info on the file we're to load
rcode = bmpinfo(bmp_fname, bdat)

If (rcode <> NO_ERROR) Then
MsgBox "Error: en el archivo de Origen"
Exit Sub
End If

vbitcount = bdat.biBitCount
If (vbitcount >= 16) Then vbitcount = 24 ' 16-, 24-, or 32-bit image is loaded into 24-bit buffer

' Allocate space for an image
rcode = allocimage(tmpimage, bdat.biWidth, bdat.biHeight, vbitcount)

If (rcode <> NO_ERROR) Then
MsgBox "Error: Memoria insuficiente"
Exit Sub
End If

' Load image
rcode = loadbmp(bmp_fname, tmpimage)

If (rcode <> NO_ERROR) Then
freeimage tmpimage ' Free image on error
MsgBox "Error: No se pudo cargar el archivo"
Exit Sub
End If

If (vbitcount = 1) Then ' If we loaded a 1-bit image, convert to 8-bit grayscale
' because jpeg only supports 8-bit grayscale or 24-bit color images
rcode = allocimage(tmp2image, bdat.biWidth, bdat.biHeight, 8)
If (rcode = NO_ERROR) Then
rcode = convert1bitto8bit(tmpimage, tmp2image)
freeimage tmpimage ' Replace 1-bit image with grayscale image
copyimgdes tmp2image, tmpimage
End If
End If

' Guardar la imagen en Formato JPG
rcode = savejpg(jpg_fname, tmpimage, quality)

freeimage tmpimage
Kill bmp_fname
End Sub
  Respuesta:  Juan Véliz
La verdad con VB no lo puedes hacer, ademas JPG y GIF son formatos propietarios y si hicieras una aplicacion tendrias que pagar por hacerlo..

Lo mejor que puedes hacer es comprar o bajar algun componente gratuito que te permita hacerlo, dejame decirte que si lo compras no es nada barato.

Si no tienes dinero lo mejor es dejarlo como BMP

Si tienes aqui hay una direccion

www.leadtools.com


O sino busca por "Imaging Components"

Bueno mi respuesta no soluciona tu problema

Saludos

|<  <<  217 218 219 220 221 222 223 224 225 226 227  >>  >|