villein
驱动牛犊
驱动牛犊
  • 注册日期2002-08-04
  • 最后登录2010-12-05
  • 粉丝2
  • 关注1
  • 积分63分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
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);
songkiki
驱动牛犊
驱动牛犊
  • 注册日期2003-03-18
  • 最后登录2004-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2003-07-01 13:34
@@,这是什么东东?
villein
驱动牛犊
驱动牛犊
  • 注册日期2002-08-04
  • 最后登录2010-12-05
  • 粉丝2
  • 关注1
  • 积分63分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
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\"));
watersoft
驱动牛犊
驱动牛犊
  • 注册日期2003-07-14
  • 最后登录2006-09-06
  • 粉丝1
  • 关注1
  • 积分5分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2003-07-15 00:46
songkiki你的安装程序写好了吗教我一下,我也做一个打印机安装程序,你的是用来干什么的呢
猪爸爸
论坛版主
论坛版主
  • 注册日期2001-08-15
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分1040分
  • 威望438点
  • 贡献值0点
  • 好评度129点
  • 原创分0分
  • 专家分0分
  • 社区居民
24楼#
发布于:2003-07-15 00:49
用电脑! :D
俺是[color=red]猪爸爸[/color] [img]http://bbs.zndev.com/image/post/smile/mrgreen.gif[/img] 【[url=http://shop33397538.taobao.com][color=red]猪爸爸本本美容[/color][/url]】 BELKIN贝尔金核心代理
wookin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-05
  • 最后登录2004-07-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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
davy_yang
驱动牛犊
驱动牛犊
  • 注册日期2004-01-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
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后在调用的呀?谢谢回复!!
davy_yang@163.com
houjun
驱动牛犊
驱动牛犊
  • 注册日期2003-12-21
  • 最后登录2004-11-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2004-03-24 22:16
各位,我也是用AddPrinter和AddPrinterDriver添加打印机的,安装成功,删除也没有问题,但是就是不能打印.word报错是找不到打印机.呜呜,这是怎么回事啊?
davy_yang
驱动牛犊
驱动牛犊
  • 注册日期2004-01-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
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
davy_yang@163.com
davy_yang
驱动牛犊
驱动牛犊
  • 注册日期2004-01-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
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);
davy_yang@163.com
beelzebub918
驱动牛犊
驱动牛犊
  • 注册日期2004-08-31
  • 最后登录2009-09-21
  • 粉丝2
  • 关注0
  • 积分6分
  • 威望88点
  • 贡献值0点
  • 好评度63点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2007-08-23 10:30
EzDriverSetup
tfp_unix
驱动小牛
驱动小牛
  • 注册日期2003-07-10
  • 最后登录2008-01-25
  • 粉丝0
  • 关注0
  • 积分639分
  • 威望75点
  • 贡献值0点
  • 好评度72点
  • 原创分0分
  • 专家分0分
31楼#
发布于:2007-08-28 23:02
我有代码,需要象征性收点费用~
qingpingle
驱动牛犊
驱动牛犊
  • 注册日期2007-08-29
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
32楼#
发布于:2007-09-03 20:47
象征性是多少啊?
yidie
驱动牛犊
驱动牛犊
  • 注册日期2007-06-30
  • 最后登录2008-03-28
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
33楼#
发布于:2007-09-12 10:13
我用VB写了打印机安装程序,在XP/2K,98系统下都成功安装及删除。
用心去创造,什么事都是小菜一碟!
jsnjsgx
驱动牛犊
驱动牛犊
  • 注册日期2007-09-23
  • 最后登录2008-11-19
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
34楼#
发布于:2007-09-23 11:54
我邮箱是jsnjshuaigx@163.com
象征性是多少啊?
angel_dolphin_i
驱动中牛
驱动中牛
  • 注册日期2007-08-16
  • 最后登录2011-09-06
  • 粉丝1
  • 关注0
  • 积分289分
  • 威望444点
  • 贡献值1点
  • 好评度552点
  • 原创分0分
  • 专家分0分
35楼#
发布于:2007-09-24 12:40
可恶,就那么点代码还收费,鄙视这种人,
angel_dolphin_i
驱动中牛
驱动中牛
  • 注册日期2007-08-16
  • 最后登录2011-09-06
  • 粉丝1
  • 关注0
  • 积分289分
  • 威望444点
  • 贡献值1点
  • 好评度552点
  • 原创分0分
  • 专家分0分
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;
angel_dolphin_i
驱动中牛
驱动中牛
  • 注册日期2007-08-16
  • 最后登录2011-09-06
  • 粉丝1
  • 关注0
  • 积分289分
  • 威望444点
  • 贡献值1点
  • 好评度552点
  • 原创分0分
  • 专家分0分
37楼#
发布于:2007-09-24 12:52
上面是安装的,
angel_dolphin_i
驱动中牛
驱动中牛
  • 注册日期2007-08-16
  • 最后登录2011-09-06
  • 粉丝1
  • 关注0
  • 积分289分
  • 威望444点
  • 贡献值1点
  • 好评度552点
  • 原创分0分
  • 专家分0分
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;
}
angel_dolphin_i
驱动中牛
驱动中牛
  • 注册日期2007-08-16
  • 最后登录2011-09-06
  • 粉丝1
  • 关注0
  • 积分289分
  • 威望444点
  • 贡献值1点
  • 好评度552点
  • 原创分0分
  • 专家分0分
39楼#
发布于:2007-09-24 12:53
这是卸载的
游客

返回顶部