Спасибо для ответа, этого написаны в VB не C#, однако, я пытался написать что-то и все еще имелся проблемы:
[DllImport («winspool.drv», CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)]
статический extern int AddPrinterDriver (pName шнура, уровень uint, [внутри] pDriverInfo ref DRIVER_INFO_3);
[StructLayout (LayoutKind.Sequential, CharSet = CharSet.Auto)]
общественное struct DRIVER_INFO_3
{
общественное cVersion IntPtr;
общественное pName шнура;
общественное pEnvironment шнура;
общественное pDriverPath шнура;
общественный шнур pDataFile;
общественный шнур pConfigFile;
общественный шнур pHelpFile;
общественные pDependentFiles шнура;
общественное pMonitorName шнура;
общественное pDefaultDataType шнура;
}
общественное статическое пустое AddPrinter ()
{
dInfo DRIVER_INFO_3 = новое DRIVER_INFO_3
{
pConfigFile = «UNIDRVUI.DLL»,
pDataFile = «HPW100T.GPD»,
pHelpFile = «UNIDRV.HLP»,
pName = «Inkjet 1000 дела HP»,
};
если (== 0 AddPrinterDriver (имени, 3, dInfo ref)), то
ход новое Win32Exception (Marshal.GetLastWin32Error ());
}
Это Кодего исключение хода всегда отказанное доступом.