|
91
|
Programación / Programación Visual Basic / Detectar si tengo acceso a la red de forma limitada
|
en: 30 Abril 2015, 18:20 pm
|
Hola, Necesito saber el estado de la conexión, si es limitada o no. Pero de forma que no se cuelgue el programa. Por ejemplo, supongamos que tengo conexión a la red y trato de abrir una web mediante InternetOpen desde el Timer y si no se puede da valor falso, en cuyo caso tengo conexión a la red LIMITADA. Pero ocurre que como uso el timer constantemente trata de abrir la web y como no puede se el programa se cuelga.
gracias
|
|
|
93
|
Programación / Programación Visual Basic / Descarga directa de archivos con dirección http usando un servidor socks
|
en: 13 Abril 2015, 17:13 pm
|
No se como hacer descarga directa de archivos (con dirección Http) a través de un servidor socks. Descargaba mediante URLDownloadToFile, Webbrowser o AsyncRead. El caso es que quiero una forma de indicar que se haga desde un servidor SOCKS y usando una dirección HTTP. No se si se podrá. Ahora mismo estaba experimentando y he conseguido conectar usando Winsock pero no se como luego aplicarlo a los sistemas de descarga habituales, no se si me explico. gracias por la ayuda
Quiero hacerlo a través del servidor socks para evitar el bloqueo de direcciones por parte del servidor http. Esto es cuando se hace desde redes públicas, bibliotecas, universidades, etc.
|
|
|
94
|
Comunicaciones / Redes / Evitar bloqueo DNS
|
en: 8 Abril 2015, 14:08 pm
|
Hola Hice un programa con VB6 y he usado Webbrowser. El caso es que al usar una red wiifi pública me aparece el OpenDNS de bloqueo cuando entro en determinadas páginas, las de descarga. Con el programa obtengo todos los links de una página y todos los enlaces de descarga. Pero no puedo si el P&//%// OpenDNS me bloquea no hay manera. ¿Hay alguna forma de evitar el bloqueo dentro de mi programa? Ya se que usando Tor Browser por ejemplo puedo evitar el bloqueo pero no desde mi programa que usa el browser de IE mediante el control Webbrowser. He probado cambiando el protocolo de Internet para usar una determinada DNS, pero no me ha funcionado. Agradecería cualquier ayuda, gracias.
|
|
|
95
|
Programación / Programación Visual Basic / Tema difícil: Evitar bloqueo DNS al usar WebBrowser
|
en: 8 Abril 2015, 13:41 pm
|
He buscado y nada. He creado un programa con el Webbrowser pero cuando lo uso en algunas redes wifi libres, públicos, tienen un sistema de bloqueo para determiandas páginas. Se me abre el OpenDNS en lugar de la página a la que quería entrar. Mi programa obtiene todos los enlaces de descarga de una página. Pero si me bloquean el acceso pues no hay nada q hacer. No he encontrado la manera de saltarme el bloqueo. Agradecería cualquier ayuda, gracias. ===== He probado cambiando en las propiedades de Protocolo de Internet versión 4 (TCP/IPv4) usar unas determinada DNS pero no ha funcionado.
|
|
|
96
|
Programación / Programación Visual Basic / Carpeta personalizada
|
en: 2 Abril 2015, 12:44 pm
|
Hola
Quiero desde VB (net o 6) crear una carpeta personalizada. Esto es, una carpeta que contiene un archivo INI, el cual indica el icono que ha de usar la carpeta y la imagen de fondo que ha de mostrar.
Lo del archivo INI ya se como va. El caso es que se hacerlo manualmente, pero no se si habrá alguna API o Script para crearla directamente desde una apliación y luego desde el programa modificar el archivo INI.
He probado de usar un código CLSID, nombrando la carpeta:
Nombre.{450d8fba-ad25-11d0-98a8-0800361b1103}
Entonces, en este caso, la carpeta se convierte en una carpeta "MyDocuments", pero no se crea el archivo "Desktop.ini"
Gracias
|
|
|
97
|
Programación / Programación Visual Basic / Como puedo semitransparentar un picturebox o parte de un form?
|
en: 16 Marzo 2015, 19:40 pm
|
Hola Llevo tiempo intentando semitransparentar un picture o una sólo una parte de un formulario. A día de hoy no lo he conseguido. No me importa que sea con vb6 o vb.net He hecho un poquito de trampa, para simular el efecto. Aquí dejo una muestra de lo que quiero. Pero repito, que sólo simula el efecto. 1 Formulario: Form1 1 Formulario: Form2 (establecer como BorderStyle=0) 1 PictureBox en Form1 1 PictureBox en Form2 1 Control Timer en el Form1: Timer1 En un MÓDULO: Option Explicit Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long 'Obtiene posición de una ventana u objeto Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hwnd As Long, lpRect As RECT) As Long Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long 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 Const GWL_EXSTYLE = (-20) Private Const LWA_ALPHA = &H2 Private Const WS_EX_LAYERED = &H80000 Public Function CreateObjectTransparent(ByVal frmMain As Form, ByVal frmObj As Form, objPic As PictureBox, ByVal Alpha As Integer) Dim i frmObj.Show frmObj.ZOrder 1 Transparencia frmObj.hwnd, Alpha objPic.BackColor = &HFF00FF AnularColor frmMain.hwnd, &HFF00FF EnableWindow frmObj.hwnd, 0 End Function 'Función que aplica la transparencia, se le pasa el hwnd del form y un valor de 0 a 100 Public Function Transparencia(ByVal hwnd As Long, NivelTrans As Integer) As Long Dim X As Long On Error Resume Next NivelTrans = (NivelTrans * 255) / 100 X = GetWindowLong(hwnd, GWL_EXSTYLE) X = X Or WS_EX_LAYERED SetWindowLong hwnd, GWL_EXSTYLE, X 'Establece la transparencia SetLayeredWindowAttributes hwnd, 0, NivelTrans, LWA_ALPHA If Err Then Transparencia = 2 End If End Function 'Función que aplica la transparencia, se le pasa el hwnd del form y un valor de 0 a 255 Public Function AnularColor(ByVal hwnd As Long, Color As Long) As Long Dim X As Long On Error Resume Next X = GetWindowLong(hwnd, GWL_EXSTYLE) X = X Or WS_EX_LAYERED SetWindowLong hwnd, GWL_EXSTYLE, X 'Establece la transparencia SetLayeredWindowAttributes hwnd, Color, 0, &H1 AnularColor = 0 If Err Then AnularColor = 2 End If End Function Public Sub ResizeOjb(ByVal objPic As PictureBox, ByVal frmObj As Form) Dim r As RECT, s As RECT, N N = GetWindowRect(objPic.hwnd, r) frmObj.Move r.Left * 15 - 200, r.Top * 15 - 200, objPic.Width + 400, objPic.Height + 400 End Sub
En un FORMULARIO: Private Sub Form_Load() Form2.Picture1.BackColor = vbBlack CreateObjectTransparent Form1, Form2, Picture1, 50 End Sub Private Sub Form_Unload(Cancel As Integer) Unload Form2 End Sub Private Sub Timer1_Timer() ResizeOjb Picture1, Form2 End Sub
Lo que hago es transparentar completamente el Picture1 del Form1 y luego semitransparentar el Form2 que contiene otro Picture. Obtengo la posición del Picture1 del Form1 y muevo y redimiensiono el Form2 al Picture1 del Form1. Coloco el Form2 debajo del Form1 y de esta manera creo el efecto de semitransperancia tan solo en un parte del Form1. Ademas he agrandado un poco el Form2 con respecto al Picture1 del Form1 para que al mover el formulario no se formen huecos ya que al mover muy rápido no le da tiempo a recolocar el Form2, lo bastante como para que se vean huecos si se mueve demasaido rápido Este método que he utilizado NO me permite interactuar con el PictureBox semitransparente. Si que es posible quitando "EnableWindow frmObj.hwnd, 0" pero entonces al hacer clic en el Picture del Form2, éste se coloca delante del Form1. Ya he probado Zorder. No sirve queda un poco chapucero. Esto lo pongo como ejemplo pero no es lo que quiero. Lo ideal sería poder solo semitranspertentar una parte del Form o un Picture. Saludos. ============== Esto es una imagen que encontré googleando. Algo así me hiría de miedo. Como se ve en la imagen los controles no son transparentes pero el form sí.
|
|
|
98
|
Sistemas Operativos / Windows / El icono de conexión del taskbar de windows aparece como "sin conexión"
|
en: 12 Marzo 2015, 12:19 pm
|
Hola En Windows vista no aparece el icono que indica que estoy conectado a internet, es decir, el globo terráqueo no aparece, en su lugar aparece una X de color rojo (no conectado): Tuve problemas hace unos días con eso pero era aún peor, me indicaba un mensaje que decía que el servicio de detección del estado de conexión estaba desactivado. Restauré el sistema a un punto anterior, y el problema quedó solucionado. Pero un par de días despues otra vez igual, pero ahora no me indica ningún mensaje, ni nada. Sin embargo si que hay conexión.Agradecería cualquier ayuda, y si es posible especificar. Por ejemplo no decir "activas el servicio de detectción de redes... y listo", pero, ¿Como se llama ese servicio? ¿Cual es su nombre?. Lo digo porque he buscado en Google y suelen contestar así y yo he mirado en la lista en Ejecutar/service.msc y no se cual és, o no está el que comentat. Posiblemente por ser de otro SO. Saludos y gracias
|
|
|
99
|
Programación / Programación Visual Basic / Ejemplo para enviar comandos a otras aplicaciones con SendMessage
|
en: 11 Marzo 2015, 11:59 am
|
Hola Esto es un ejemplo de uso de SendMessage para enviar comandos a otras aplicaciones. Se necesita el Handle de la otra aplicación y un código que hace referencia a una acción o evento determinado. Los códigos se pueden encontrar usando la herramienta Spy++ incluida en VB y VB.Net Este programita permite cambiar las vistas de los iconos del escritorio como si fuera un ListView y también cambia las vistas del Explorador de windows. Es como hacer "clic" en 'Vistas' del Explorador de Windows pero se hace remotamente desde el programa. Intrucciones: - Crea un array con dos controles OptionButton, 5 de cada uno: Option1 y Option2 En un formulario meter esto: Option Explicit Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ lParam As Any) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _ (ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, _ ByVal lpsz1 As String, _ ByVal lpsz2 As String) As Long Private Const WM_COMMAND = &H111 Private Sub Form_Load() Option1.Item(0).Caption = "Vista Miniatura" Option1.Item(1).Caption = "Mosaico" Option1.Item(2).Caption = "Iconos" Option1.Item(3).Caption = "Lista" Option1.Item(4).Caption = "Detalle" Option2.Item(0).Caption = "Vista Miniatura" Option2.Item(1).Caption = "Mosaico" Option2.Item(2).Caption = "Iconos" Option2.Item(3).Caption = "Lista" Option2.Item(4).Caption = "Detalle" End Sub Public Function VistasEscritorio(ByVal Code As Long) Dim hwProgMan As Long Dim hwDesktop As Long hwProgMan = FindWindow("Progman", "Program Manager") hwDesktop = FindWindowEx(hwProgMan, &H0, "SHELLDLL_DefView", vbNullString) SendMessage hwDesktop, WM_COMMAND, Code, &H0 End Function Public Function VistasExplorador(ByVal Code As Long) Dim hwExplorer As Long Dim ListView As Long 'Para XP hwExplorer = FindWindow("ExploreWClass", vbNullString) ListView = FindWindowEx(hwExplorer, &H0, "SHELLDLL_DefView", vbNullString) SendMessage ListView, WM_COMMAND, Code, &H0 'Para Vista/... hwExplorer = FindWindow("CabinetWClass", vbNullString) ListView = FindWindowEx(hwExplorer, &H0, "ShellTabWindowClass", vbNullString) SendMessage ListView, WM_COMMAND, Code, &H0 End Function Private Sub Option1_Click(Index As Integer) Dim Code As Long Select Case Index Case 0: Code = 28717 'Vista Miniatura Case 1: Code = 28718 'Mosaico Case 2: Code = 28713 'Iconos Case 3: Code = 28715 'Lista Case 4: Code = 28716 'Detalles End Select Call VistasEscritorio(Code) End Sub Private Sub Option2_Click(Index As Integer) Dim Code As Long Select Case Index Case 0: Code = 28717 'Vista Miniatura Case 1: Code = 28718 'Mosaico Case 2: Code = 28713 'Iconos Case 3: Code = 28715 'Lista Case 4: Code = 28716 'Detalles End Select Call VistasExplorador(Code) End Sub
|
|
|
100
|
Seguridad Informática / Seguridad / ¿Es posible un ataque e intrusión a través de Bluetooth?
|
en: 11 Marzo 2015, 11:46 am
|
Hola amig@s, Hace unos días restauré el SO del portátil. El caso es que se me olvidó desconectar el servicio de Bluetooth y configurar el antivirus y el firewall para restringir la conexión de otros usuarios de la red para compartir archivos. Me conecté a una red Wi-Fi pública de una biblioteca y se me desactivó el servicio de detección de redes, y no hubo forma de volverlo a activar, sin embargo tenía conexión a Internet. Recibí el siguiente mensaje: "Recientemente se agregó o eliminó una apliación PIM (Personal Information Management) en el sistema" (relacionado con el Bluetooth". Además se desactivó la protección sonar del antivirus, que tampoco hubo forma de activarlo. Y en "red" había un PC con nombre desconocido, es decir, no era el mío. Finalmente, tuve que reastaurar el sistema a un punto anterior. Para poder solucionar el problema. Desinstalar y volver a instalar el antivirus, actualizarlo y por supuesto esta vez si, desconectar el Bluetooth y desactivar "Permitir que los dispositivos Bluetooth encuentren este equipo" y también "Permite que los elementos Bluetooth puedan enviarle PIM, como tarjetas de presentación, elementos de calendario, mensajes de correo electrónico y notas". Alguna vez he recibido tarjetas de presentación invitandome a compartir multimedia (teniendo habilitado el Bluetooth). ¿Quién lo hace y porqué? No se si es que son intentos de intrusió o que, quizás a traves de un dispositivo mobil.
|
|
|
|
|
|
|