Pisanie sterownika drukarki Windows
Chcę napisać aplikację w C++ lub C#, która będzie zachowywać się jak Sterownik drukarki po zainstalowaniu. Będzie on dostępny na rozwijanej liście w oknie dialogowym drukowania, ale zamiast drukowania wywoła się do mojego kodu.
Myślę, że mogą istnieć interfejsy, które Windows dostarcza do pisania sterowników drukarek.
2 answers
Windows dostarcza mnóstwo interfejsów. Czy wiesz jaki sterownik drukarki chcesz napisać? Obecnie Windows obsługuje trzy wersje sterowników drukarek-PostScript, Unidrv i XPSDrv(ten ostatni na serwerze XP / 2003 z EP 1.0 i nowszymi). W większości przypadków wystarczy zamiast tego napisać wtyczkę sterownika. Zapoznaj się z architekturą INF, aby wiedzieć, że te rzeczy są instalowane, szczególnie sekcja o minidriverach.
Zgodnie z sugestią, będziesz potrzebował WDK, aby móc zbudować sterownik lub jego wtyczka. Należy pamiętać, że sterowniki nie używają IDE Visual Studio ani kompilatorów. WDK posiada własny kompilator. Zawsze możesz podłączyć to drugie z VS, ale to już inna historia.
WDK ma konfiguracje, aby celować w różne systemy operacyjne. Musisz wiedzieć, do którego systemu operacyjnego (lub zestawu OS-ów) chcesz się zwrócić i wybrać odpowiednią konfigurację.
Chcę napisać prosty sterownik, który wyświetli się na liście drukarek.
Nie widzę jak to będzie pomocne. Jeśli piszesz sterownik, dlaczego chcesz listę wszystkich innych sterowników obecnych w systemie?
Ciekawe! Wszystkie te rzeczy można osiągnąć za pomocą wtyczki interfejsu użytkownika. Wtyczka interfejsu użytkownika jest biblioteką dll ładowaną po wybraniu właściwości sterownikaDrukowanie do tego sterownika wywoła mój kod, dzięki czemu mogę robić takie rzeczy, jak tworzenie pliku PDF z dokumentem, wywoływanie usługi internetowej itp.
Advanced
.
Aby rozpocząć korzystanie z wtyczek UI, zapoznaj się z w przykładowym kodzie źródłowym oemui
w WDK.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-16 10:28:04
Nie jestem pewien, czy będzie wyświetlany na liście, ale nigdy nie próbowałem tego kodu 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;
};
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-13 08:04:44