C/Visual C - Puerto paralelo

 
Vista:

Puerto paralelo

Publicado por Arancha (31 intervenciones) el 29/04/2003 11:11:36
Estoy haciendo una aplicación, que pulsando un botón manda mensajes a una impresora conectada al puerto paralelo (esto lo hago tratando el puerto como un fichero, abriéndolo con fopen, etc), pero tengo el problema de que si la impresora no está conectada la aplicación se bloquea, ¿hay alguna forma de detectar si hay una impresora conectada al puerto paralelo?
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Detección de impresora conectada al puerto paralelo

Publicado por Alejandro (1153 intervenciones) el 19/05/2025 22:30:07
Arancha, para detectar si hay una impresora conectada al puerto paralelo antes de intentar enviarle un mensaje, puedes utilizar la función `CreateFile` de la API de Windows. Esta función te permite intentar abrir el puerto paralelo y verificar si está disponible. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <windows.h>
#include <stdio.h>
 
int main() {
    HANDLE hPrinter;
    // Intenta abrir el puerto paralelo (por ejemplo, LPT1)
    hPrinter = CreateFile("LPT1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
 
    if (hPrinter == INVALID_HANDLE_VALUE) {
        // Si no se puede abrir, significa que no hay impresora conectada
        printf("No hay impresora conectada al puerto paralelo.\n");
    } else {
        // Si se abre correctamente, hay una impresora conectada
        printf("Impresora conectada al puerto paralelo.\n");
        // No olvides cerrar el handle después de usarlo
        CloseHandle(hPrinter);
    }
 
    return 0;
}

Este código intenta abrir el puerto LPT1. Si `CreateFile` devuelve `INVALID_HANDLE_VALUE`, significa que no hay una impresora conectada. De lo contrario, puedes proceder a enviar los mensajes a la impresora. Asegúrate de manejar adecuadamente los errores y cerrar el handle después de usarlo para evitar fugas de recursos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar