Question

Je souhaite écrire une application en C ++ ou C # qui se comportera comme un pilote d’imprimante lorsqu’elle sera installée. Il sera disponible dans la liste déroulante de la boîte de dialogue Imprimer, mais au lieu d’imprimer, il sera appelé dans mon code.

Je pense que Windows peut fournir certaines interfaces pour écrire les pilotes d'imprimante.

Était-ce utile?

La solution

Windows fournit des charges d’interfaces. Savez-vous quel type de pilote d’imprimante vous voulez écrire? À l'heure actuelle, Windows prend en charge trois types de pilotes d'imprimante: PostScript, Unidrv et XPSDrv (ce dernier sur XP / 2003 Server avec EP 1.0 et versions ultérieures uniquement). La plupart du temps, il suffit d'écrire un plug-in de pilote à la place. Consultez l’architecture INF pour savoir que ces éléments sont installés, en particulier la section consacrée aux minidrivers.

Comme suggéré, vous aurez besoin du WDK pour pouvoir créer un pilote ou un plug-in. Notez que les pilotes n'utilisent ni l'IDE de Visual Studio ni les compilateurs. Le WDK est livré avec son propre compilateur. Vous pouvez toujours connecter ce dernier à VS, mais c'est une autre histoire.

Le WDK a des configurations pour cibler différents systèmes d'exploitation. Vous devrez savoir quel système d’exploitation (ou quel ensemble d’OS) vous souhaitez utiliser et choisir la configuration appropriée.

  

Je souhaite écrire un pilote simple à afficher dans la liste des imprimantes.

Je ne vois pas en quoi cela pourrait être utile. Si vous écrivez un pilote, pourquoi voudriez-vous une liste de tous les autres pilotes présents sur le système?

  

L’impression sur ce pilote appelle mon code afin que je puisse réaliser des tâches telles que créer un fichier PDF du document, appeler le service Web, etc.

Intéressant! Vous pouvez réaliser toutes ces choses dans un plug-in d'interface utilisateur. Un plug-in d'interface utilisateur est une dll chargée lorsque vous sélectionnez les propriétés du pilote Avancé .

Pour commencer à utiliser les plug-in d'interface utilisateur, consultez l'exemple de code source oemui dans le WDK.

Autres conseils

Je ne suis pas sûr que cela apparaisse dans la liste mais je n'ai jamais essayé ce code C ++:

#include <fstream>
Namespace Drivers{
Class Printer{
Const IOStream Printer("PRN");
Void Send(char a[]){
Printer<<a;}
Char GetStatus[](){
Char a[];
Printer>>a; 
return a;
 };
 }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top