20楼#
发布于:2003-07-01 13:32
PRINTER_INFO_2 pi2;
DRIVER_INFO_3 di3; HANDLE hPrinter; Environment=_TEXT(\"Windows NT x86\"); GetPrinterDriverDirectory(NULL,Environment,1,(LPBYTE)lpBuffer,150,&uSize); lstrcpy(_TEXT(lpDriverPath),_TEXT(lpBuffer)); lstrcat(_TEXT(lpDriverPath),_TEXT(\"\\\\xxxDRV.DLL\")); lstrcpy(_TEXT(lpDataFilePath),_TEXT(lpBuffer)); lstrcat(_TEXT(lpDataFilePath),_TEXT(\"\\\\xxx.GPD\")); lstrcpy(_TEXT(lpConfigFilePath),_TEXT(lpBuffer)); lstrcat(_TEXT(lpConfigFilePath),_TEXT(\"\\\\xxxUI.DLL\")); //lstrcpy(lpLanguageMonitor,lpBuffer); //lstrcat(lpLanguageMonitor,_TEXT(\"\\\\PwLanMon.dll\")); lstrcat(lpDependecy,_TEXT(\"\"stdnames.gpd\\0xxxRES.DLL\\0xxxUIplugin.ini\\0xxxUIplugin.DLL\\0\\0\"\")); ZeroMemory(&di3, sizeof(DRIVER_INFO_3)); di3.cVersion = 3; di3.pName =_TEXT(\"xxxxx\");//HP LaserJet III di3.pEnvironment = Environment; di3.pDriverPath = lpDriverPath; di3.pDataFile =lpDataFilePath; di3.pConfigFile =lpConfigFilePath; di3.pDependentFiles = lpDependecy; di3.pHelpFile = NULL; di3.pMonitorName = NULL; di3.pDefaultDataType = _TEXT(\"RAW\"); AddPrinterDriver(NULL, 3, (LPBYTE)&di3); ZeroMemory(&pi2, sizeof(PRINTER_INFO_2)); pi2.pServerName=NULL; pi2.pPrinterName = _TEXT(\"xxx1\"); pi2.pPortName = _TEXT(\"LPT1:\"); pi2.pDriverName = _TEXT(\"xxx2\"); pi2.pPrintProcessor = _TEXT(\"WinPrint\"); pi2.pDatatype = _TEXT(\"RAW\"); pi2.AveragePPM = 400; hPrinter = AddPrinter(NULL, 2, (LPBYTE)&pi2); ClosePrinter(hPrinter); |
|
21楼#
发布于:2003-07-01 13:34
@@,这是什么东东?
|
|
22楼#
发布于:2003-07-01 13:36
HANDLE Handle
PRINTER_DEFAULTS lpPrinter; Environment=_TEXT(\"Windows NT x86\"); ZeroMemory( &lpPrinter, sizeof(PRINTER_DEFAULTS) ); lpPrinter.DesiredAccess=PRINTER_ALL_ACCESS; OpenPrinter(_TEXT(\"xxx\"),&Handle,&lpPrinter); DeletePrinter(Handle); ClosePrinter(Handle); DeletePrinterDriver(NULL,Environment,_TEXT(\"xxx\")); |
|
23楼#
发布于:2003-07-15 00:46
songkiki你的安装程序写好了吗教我一下,我也做一个打印机安装程序,你的是用来干什么的呢
|
|
24楼#
发布于:2003-07-15 00:49
用电脑! :D
|
|
|
25楼#
发布于:2003-12-16 21:47
villien
你给的代码后半部分可以通过,能够添加一个打印机。(但前提是打印驱动必须存在) 你的前半部分AddPrinterDriver()不能通过,我运行成功以后,但是看不到已经添加了打印驱动。 ???????????/ 郁闷。。。。。。。。。。。。。 -------------------------------------------- ZeroMemory(&pi2, sizeof(PRINTER_INFO_2)); pi2.pServerName=NULL; pi2.pPrinterName = _TEXT(\"xxx1\"); pi2.pPortName = _TEXT(\"LPT1:\"); pi2.pDriverName = _TEXT(\"xxx2\"); pi2.pPrintProcessor = _TEXT(\"WinPrint\"); pi2.pDatatype = _TEXT(\"RAW\"); pi2.AveragePPM = 400; hPrinter = AddPrinter(NULL, 2, (LPBYTE)&pi2); ClosePrinter(hPrinter); ////////////////////////////////// songkiki: 你的问题解决没有? 如果解决了能把怎样添加驱动那部分(AddPrinterDriver())那部分代码提出来吗? kingfire@21cn.com |
|
26楼#
发布于:2004-03-17 16:43
大家好!!!我试了这里的用法。有些说创建一个进程用:"rundll32.exe printui.dll,PrintUIEntry /if /f I:\\printdriver\\Dragon.inf /r \"LPT1:\" /b \"DRoad USB Printer\" /m \"DRoad USB Printer\"", // Command line. 。可有些说可以用AddPrinterDriver后用AddPrinter安装。前者安装的缺点是inf所在的目录不好决定,请问你们是如何控制的?如果要卸载那么又该如何做的?后者安装在installshield里你是如何做的?卸载时你有如何用DeletePrinter和DeletePrinterDriver的 ?是不是写成一个.dll后在调用的呀?谢谢回复!!
|
|
|
27楼#
发布于:2004-03-24 22:16
各位,我也是用AddPrinter和AddPrinterDriver添加打印机的,安装成功,删除也没有问题,但是就是不能打印.word报错是找不到打印机.呜呜,这是怎么回事啊?
|
|
28楼#
发布于:2004-03-26 10:44
to villein and all, 请教各位高手,小弟在此看了这么多,尝试用AddPrinterDriver和AddPrinter来加,可是怎么不成功的。我XP下我的代码是:
PRINTER_INFO_2 pi2; DRIVER_INFO_3 di3; HANDLE hPrinter; char* Environment=_TEXT("Windows NT x86"); char lpDriverPath[MAX_PATH]; char lpBuffer[MAX_PATH]; DWORD uSize=0; BOOL b=GetPrinterDriverDirectory(NULL,Environment,1,(LPBYTE)lpBuffer,MAX_PATH,&uSize); lstrcpy(_TEXT(lpDriverPath),_TEXT(lpBuffer)); lstrcat(_TEXT(lpDriverPath),_TEXT("\\UNIDRV.DLL")); char lpDataFilePath[MAX_PATH]; lstrcpy(_TEXT(lpDataFilePath),_TEXT(lpBuffer)); lstrcat(_TEXT(lpDataFilePath),_TEXT("\\Dragon.GPD")); char lpConfigFilePath[MAX_PATH]; lstrcpy(_TEXT(lpConfigFilePath),_TEXT(lpBuffer)); lstrcat(_TEXT(lpConfigFilePath),_TEXT("\\UNIDRVUI.DLL")); char lpHelpFilePath[MAX_PATH]; lstrcpy(_TEXT(lpHelpFilePath),_TEXT(lpBuffer)); lstrcat(_TEXT(lpHelpFilePath),_TEXT("\\UNIDRV.HLP")); char lpDependecy[MAX_PATH]; memset(lpDependecy,0,sizeof(lpDependecy)); lstrcat(lpDependecy,_TEXT("UNIRES.DLL\\0STDNAMES.GPD\\0Dragon.INI\\0dragon.dll\0\0")); ZeroMemory(&di3, sizeof(DRIVER_INFO_3)); di3.cVersion = 3; di3.pName =_TEXT("DRoad USB Printer"); di3.pEnvironment = Environment; di3.pDriverPath = lpDriverPath; di3.pDataFile =lpDataFilePath; di3.pConfigFile =lpConfigFilePath; di3.pDependentFiles = lpDependecy; di3.pHelpFile = lpHelpFilePath; di3.pMonitorName = NULL; di3.pDefaultDataType = _TEXT("RAW"); if (!(b=AddPrinterDriver(NULL, 3, (LPBYTE)&di3))) { AfxMessageBox("AddPrinterDriver fail"); } ZeroMemory(&pi2, sizeof(PRINTER_INFO_2)); pi2.pServerName=NULL; pi2.pPrinterName = _TEXT("DRoad USB Printer"); pi2.pPortName = _TEXT("LPT1:"); pi2.pDriverName = _TEXT("DRoad USB Printer"); pi2.pPrintProcessor = _TEXT("WinPrint"); pi2.pDatatype = _TEXT("RAW"); pi2.AveragePPM = 400; hPrinter = AddPrinter(NULL, 2, (LPBYTE)&pi2); DWORD dwerr=GetLastError(); ClosePrinter(hPrinter); 在AddPrinterDriver时总是失败的。请众位高手多多指教呀。 另外我是不是要去找注册表看USB打印机是否已插上。如插上了再去创建端口和AddPrinterDriver和AddPrinter来加呀?如你有这方面的代码,可以给我发这段安装的给我么。多谢拉……望回复,再次谢谢了。。。davy_yang@163.com |
|
|
29楼#
发布于:2004-03-26 10:46
接上面的代码:
ZeroMemory(&di3, sizeof(DRIVER_INFO_3)); di3.cVersion = 3; di3.pName =_TEXT("DRoad USB Printer"); di3.pEnvironment = Environment; di3.pDriverPath = lpDriverPath; di3.pDataFile =lpDataFilePath; di3.pConfigFile =lpConfigFilePath; di3.pDependentFiles = lpDependecy; di3.pHelpFile = lpHelpFilePath; di3.pMonitorName = NULL; di3.pDefaultDataType = _TEXT("RAW"); if (!(b=AddPrinterDriver(NULL, 3, (LPBYTE)&di3))) { AfxMessageBox("AddPrinterDriver fail"); } ZeroMemory(&pi2, sizeof(PRINTER_INFO_2)); pi2.pServerName=NULL; pi2.pPrinterName = _TEXT("DRoad USB Printer"); pi2.pPortName = _TEXT("LPT1:"); pi2.pDriverName = _TEXT("DRoad USB Printer"); pi2.pPrintProcessor = _TEXT("WinPrint"); pi2.pDatatype = _TEXT("RAW"); pi2.AveragePPM = 400; hPrinter = AddPrinter(NULL, 2, (LPBYTE)&pi2); DWORD dwerr=GetLastError(); ClosePrinter(hPrinter); |
|
|
30楼#
发布于:2007-08-23 10:30
EzDriverSetup
|
|
31楼#
发布于:2007-08-28 23:02
我有代码,需要象征性收点费用~
|
|
32楼#
发布于:2007-09-03 20:47
象征性是多少啊?
|
|
33楼#
发布于:2007-09-12 10:13
我用VB写了打印机安装程序,在XP/2K,98系统下都成功安装及删除。
|
|
|
34楼#
发布于:2007-09-23 11:54
我邮箱是jsnjshuaigx@163.com
象征性是多少啊? |
|
驱动中牛
![]() |
35楼#
发布于:2007-09-24 12:40
可恶,就那么点代码还收费,鄙视这种人,
|
驱动中牛
![]() |
36楼#
发布于:2007-09-24 12:42
HRESULT hr = S_OK;
PRINTER_INFO_2 pi2; DRIVER_INFO_3 di3; HANDLE hPrinter; char lpDriverPath[MAX_PATH]; char lpDataFilePath[MAX_PATH]; char lpConfigFilePath[MAX_PATH]; char lpHelpFilePath[MAX_PATH]; char lpDependecy[MAX_PATH]; char lpBuffer[MAX_PATH]; char lpTemp[MAX_PATH],lpTemp2[MAX_PATH],lpTemp3[2]; char lpDriverName[MAX_PATH]; char lpPrinterName[MAX_PATH]; DWORD uSize=0,dwError; char* Environment=_TEXT("Windows NT x86"); return hr; |
驱动中牛
![]() |
37楼#
发布于:2007-09-24 12:52
上面是安装的,
|
驱动中牛
![]() |
38楼#
发布于:2007-09-24 12:52
HRESULT WINAPI UninstallDriver()
{ HRESULT hr = S_OK; char lpDriverName[MAX_PATH]; char lpPrinterName[MAX_PATH]; HANDLE Handle; PRINTER_DEFAULTS lpPrinter; char* Environment=_TEXT("Windows NT x86"); return hr; } |
驱动中牛
![]() |
39楼#
发布于:2007-09-24 12:53
这是卸载的
|