Portal Zaraguay

FAQ programacion en Windows.

Preguntas y respuestas sobre programacion en Windows. Si tu duda no está recogida en este FAQ, enviame un e-mail.


Para un programador, la mejor recopilacion de informacion es el MSDN de Microsoft. El MSDN es un conjunto de documentos electrónicos que se pueden adquirir en cd-rom. Tambien se distribuyen junto con Visual Studio o se pueden consultar en linea en la web de Microsoft. Algunos compiladores, como los de Borland, distribuyen la ayuda del API en formato hlp.


Observa que el resto de las aplicaciones no cambian de escala. Las resoluciones grandes se usan con monitores grandes, si usas una resolucion grande en un monitor pequeño ninguna aplicacion se ve bien. Y si, a pesar de todo, cambias de escala según la resolucion, te vas a encontrar que en un monitor grande todas las aplicaciones tendrán apariencia normal excepto la tuya que se verá enooorme.


Bajo Windows 95/98 puedes desactivar estas teclas sigueindo un procedimiento no documentado. Usa la funcion del API SystemParametersInfo, poniendo en el primer parámetro el valor 97, en el segundo True o False según quieras desactivar/activar las teclas. El tercer parámetro es una referencia a un long (32 bits) y el cuarto NULL.

SystemParametersInfo(97, TRUE o FALSE , & ref_old, NULL);


Usa la funcion del API Shell_NotifyIcon. Si programas en Visual Basic consulta el artículo Shell_NotifyIcon en Visual Basic en estas mismas páginas.


Consulta en el MSDN el tema Remote Access Service (RAS) Overview. Si programas en VB puedes usar un control ocx que hay en estas mismas páginas o bien puedes hacerlo por código siguiendo las instrucciones del artículo Acceso telefónico a redes.


No deberías ejecutar gifs animados en Windows. El uso del formato gif no es libre, y el formato además no es muy eficiente para hacer animaciones. El formato AVI es mucho mejor. Pero si insistes, busca un control ocx llamado marchoso.ocx (aparecerá en cualquier buscador).


Bajo Windows 95/98 o Windos 3.1 puedes insertar esas instrucciones asm directamente en tu código C/C++. Si usas VB o no quieres usar asm puedes probar las dll's IODLL16/IODLL32 que encontrarás en estas mismas páginas.

De cualquier modo, en Windows NT ninguno de los métodos anteriores te funcionará, solo los drivers con los máximos privilegios pueden acceder al hardware bajo Windows NT. (En el resto de los Windows tambien es buena idea dejar a los drivers que se ocupen de los accesos al hardware).


En el momento que detectes que el mouse ha entrado en tu ventana, usa la funcion del API SetCapture para capturar el mouse. A partir de este momento recibirás mensajes del mouse incluso cuando éste salga fuera de la ventana. Para evitar problemas con el funcionamiento de otras ventanas, en todos los mensajes del mouse comprueba si este se encuentra dentro o fuera de la ventana, en cuanto detectes que el mouse está fuera de la ventana debes liberarlo con el API ReleaseCapture.


Para leer, usa la funcion del API GetVolumeInformation, está funcion te devueve la etiqueta y tambien el número de serie del disco o particion. Puedes escribir la etiqueta con SetVolumeLabel pero no existe un método sencillo para cambiar el numero de serie. Este número esta grabado en el sector cero de cada particion (o unidad de disco) puedes carbiarlo usando ASM desde DOS, pero no existe un API que lo haga en Windows.


Esa informacion está guardada en el registro, bajo la clave HKEY_CLASSES_ROOT\.html

Tambien existe una función - FindExecutable - que te devuelve el nombre del programa asociado a una extension.

Sin embargo, puedes emplear directamente la función ShellExecute para ejecutar el html, esta funcion se encarga de buscar el browser por defecto.


Creo que deberás instalar el Internet Explorer completo en los otros ordenadores. Lee el siguiente artículo del MSDN:

               HOWTO: Distribute the WebBrowser Control
               Last reviewed: October 3, 1997
               Article ID: Q155969

Aparte de la carpeta Inicio que conocen todos los usuarios, puedes insertar tu aplicacion en las siguientes llaves del registro:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_CURRENT_CONFIG\Software\Microsoft\Windows\CurrentVersion\Run


No debes usar los mensajes/eventos del Timer como cronómetro ya que en ocasiones el Windows acumula varios de estos mensajes en uno solo. Usa el Timer solo como método para obtener el control periódicamente, y usa la funcion del API GetTickCount para medir el tiempo con precisión en cada uno de los eventos del Timer.



© info3@maicas.net