2010-06-15 3 views
0

Windows 프린터의 드라이버 이름을 반환하는 API 호출을 찾을 수없는 것 같습니다. 프린터 폴더에서 프린터의 친숙한 이름을 말하는 것이 아닙니다. 프린터 속성을 볼 때 "고급"탭에 표시된 실제 드라이버의 이름을 말하고 있습니다.API를 사용하여 Windows 프린터 드라이버 이름 찾기

Printer properties dialog http://img811.imageshack.us/img811/3443/printer.png

사용자가 프린터에 대해 선택한 이름에 관계없이 "일반/텍스트 전용"드라이버로 인쇄 할 때 감지하려고합니다. 이것은 어렵지 않아 보이지는 않지만, DEVMODE 구조체 나 다른 곳에서 찾지 못했습니다.

도움 주셔서 감사합니다.

답변

2

찾고있는 것은 PRINTER_INFO_2 구조의 pDriverName 필드에 있습니다.

EnumPrinters으로 가져올 수 있습니다. 그러면 PRINTER_INFO_2::pPrinterNameDEVMODE이라는 친숙한 이름을 비교해야합니다.

+0

고마워요 - 제가 필요한 바로 그 것이 었습니다! –

+0

당신은 환영합니다! – Wizard79

0

그냥 제안 : procmon (sysinternals에서)을 사용하여 모든 API 호출을 감시하고이 호출을 호출하는 호출을 확인하십시오.

+0

나쁜 생각이 아니므로 시도해 보았습니다. 그러나 그것은 정말로 도움이되지 않았습니다. Windows가 궁극적으로 레지스트리에 데이터를 저장하지만 실제로 문서화 된 API 호출이 필요하다는 것을 확인했으며 procmon 데이터에서 이와 비슷한 내용을 보지 못했습니다. procmon은 특정 유형의 API 호출 만 추적하기 때문에 실제로는 놀랍지 않습니다. –

+0

[1] Setup API [2] WMI에 대해 읽어야합니다. 그것들 중 하나입니다. –

관련 문제