startdoc

合集下载

python学习笔记(win32printAPI介绍)

python学习笔记(win32printAPI介绍)

python学习笔记(win32printAPI介绍)最近博主在研究⽤python控制打印机这⾥整理下win32print的API介绍,官⽹地址OpenPrinter 打开指定的打印机,并获取打印机的句柄GetPrinter 取得与指定打印机有关的信息SetPrinter 对⼀台打印机的状态进⾏控制ClosePrinter 关闭⼀个打开的打印机对象AddPrinterConnection 连接指定的打印机DeletePrinterConnection 删除与指定打印机的连接EnumPrinters 枚举系统中安装的打印机GetDefaultPrinter 取得默认打印机名称 <type 'str'>GetDefaultPrinterW 取得默认打印机名称 <type 'unicode'>SetDefaultPrinter 对⼀台打印机名称 <type 'str'> 设置成默认打印机SetDefaultPrinterW 对⼀台打印机名称 <type 'unicode'> 设置成默认打印机StartDocPrinter 在后台打印的级别启动⼀个新⽂档EndDocPrinter 在后台打印程序的级别指定⼀个⽂档的结束AbortPrinter 删除与⼀台打印机关联在⼀起的缓冲⽂件StartPagePrinter 在打印作业中指定⼀个新页的开始EndPagePrinter 指定⼀个页在打印作业中的结尾StartDoc 开始⼀个打印作业EndDoc 结束⼀个成功的打印作业AbortDoc 取消⼀份⽂档的打印StartPage 打印⼀个新页前要先调⽤这个函数EndPage ⽤这个函数完成⼀个页⾯的打印,并准备设备场景,以便打印下⼀个页WritePrinter 将发送⽬录中的数据写⼊打印机EnumJobs 枚举打印队列中的作业GetJob 获取与指定作业有关的信息SetJob 对⼀个打印作业的状态进⾏控制DocumentProperties 打印机配置控制函数EnumPrintProcessors 枚举系统中可⽤的打印处理器EnumPrintProcessorDatatypes 枚举由⼀个打印处理器⽀持的数据类型EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序EnumForms 枚举⼀台打印机可⽤的表单AddForm 为打印机的表单列表添加⼀个新表单DeleteForm 从打印机可⽤表单列表中删除⼀个表单GetForm 取得与指定表单有关的信息SetForm 为指定的表单设置信息AddJob ⽤于获取⼀个有效的路径名,以便⽤它为作业创建⼀个后台打印⽂件。

python3 win32print开发文档 -回复

python3 win32print开发文档 -回复

python3 win32print开发文档-回复Python3 win32print开发文档Win32print是一个Python扩展模块,它提供了与Windows打印机子系统交互的功能。

本篇文章将为你介绍win32print的使用方法和详细文档,以帮助你在开发过程中轻松实现与打印机相关的功能。

1. Win32print安装和导入首先,你需要安装pywin32库。

可以通过在命令行中运行"pip install pywin32"来安装它。

安装完成后,你可以在Python代码中导入win32print模块,通过以下代码实现:import win32print2. 获取打印机列表首先,在开始使用win32print之前,我们需要了解系统中存在哪些打印机。

通过调用win32print的EnumPrinters函数,我们可以获取打印机列表。

以下是一个示例代码:def get_printer_list():printer_list = []printer_info =win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL) for printer in printer_info:printer_list.append(printer[2])return printer_listprint(get_printer_list())通过调用get_printer_list函数,我们就可以在控制台上打印出系统中的打印机列表。

3. 设置默认打印机在打印之前,你可能需要将某个特定的打印机设置为默认打印机。

通过调用win32print的SetDefaultPrinter函数,可以很轻松地实现这一功能。

以下是一个示例代码:def set_default_printer(printer_name):printer_info =win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL) for printer in printer_info:if printer[2] == printer_name:win32print.SetDefaultPrinter(printer[2])print("默认打印机已设置为: " + printer[2])returnprint("找不到指定的打印机: " + printer_name)set_default_printer("Microsoft Print to PDF")通过调用set_default_printer函数,我们可以将打印机设置为系统中的某个打印机。

打印机编程

打印机编程

打印机编程1、检测当前打印机状态用内嵌汇编调用中断INT 17H,读取打印机的状态字节加以分析,即可得到其当前状态.例:输入参数:如果有3个打印端口LPT1、LPT2、LPT3,那么输入参数LPTPort就是1、2、3。

function TestPrinterStatus(LPTPort : word):byte;var status : byte;CheckLPT : word;beginstatus := 0;if (LPTPort >=1) and (LPTPort <=3) thenbeginCheckLPT := LPTPort -1;asmmov dx,CheckLPT;mov al,0;mov ah,2;int 17H;mov &status,ah;end;end;result := status;end;返回值有以下几种:01H:超时08H:I/O错误10H:打印机未联机20H:打印机缺纸80H:打印机空闲。

2、如何获取当前打印机的名称、驱动程序、打印端口信息:以下是来自Borland公司的完整例子。

请注意其中两条判断语句,这说明有时候仅仅凭getprinters并不能保证信息的正确,还需要WIN.INI的帮助。

uses printers;{$IFNDEF WIN32}const MAX_PATH = 144;{ENDIF}procedure TForm1.Button1Click(Sender : TObject);varpDevice : pChar;pDriver : pChar;pPort : pChar;hDMode : THandle;beginif PrintDialog1.Execute then beginGetMem(pDevice,cchDeviceName);GetMem(pDriver,MAX_PATH);GetMem(pPort,MAX_PATH);Printer.GetPrinter(pDevice,pDriver,pPort,hDMode);if lStrLen(pDriver) = 0 then beginGetProfileString('Devices',pDevice,'',pDriver,MAX_PATH);pDriver[pos(',',pDriver) - 1] := #0;end;if lStrLen(pPort) = 0 then beginGetProfileString('Devices',pDevice,'',pPort,MAX_PATH);lStrCpy(pPort,@pPort[lStrLen(pPort) + 2]);end;FreeMem(pDevice,cchDeviceName);FreeMem(pDriver,MAX_PATH);FreeMem(pPort,MAX_PATH);end;end;3、获取打印机队列的状态信息:在有些情况下,需要获取打印机队列的状态信息,可以通过WindowsAPI函数ENumJobs来获取打印机队列的状态信息。

使用MFC实现打印功能

使用MFC实现打印功能

使用MFC实现打印功能如果程序不是文档视图结构的,我们要使用MFC来进行打印,可以通过建立一个虚拟的文档视图结构来进行打印。

MFC的打印的强大功能是在CView里提供的,而CView类的对象是一个子窗口,它必须是某一个框架窗口的子窗口,而在对话框程序中,我们只需要打印,而不需要显示这个框架窗口和视图。

我们以按下按钮"打印"来执行打印程序,例如按钮为ID为IDC_PNT,消息相应函数为OnPnt(),即:ON_BN_CLICKED(IDC_PNT, OnPnt);需要在OnPnt中建立一个框架窗口,同时使某个CView类的对象为该窗口的子窗口。

因此需要建立两个类,一个为框架窗口类CPrintFrame,另一个为CPrintView。

在新建一个用于打印的虚拟框架窗口时,需要将执行打印的对话框的指针传给框架窗口,这以便在对话框来响应WM_BEGIN_PRINTING和WM_END_PRINTING消息,使对话框可以完成打印的初始化和释放操作。

在执行一个打印任务时,将打印的流程交给CView来进行,而这个CView是虚拟的,只是用来完成打印一些操作,其它内容则完全不负责处理,而当要执行CView::OnPrint时,则又将处理的具体内容传回到对话框,而对话框则只需要响应WM_MY_PRINT消息即可:pFrame->m_pCallerDlg->SendMessage(WM_MY_PRINT,(WPARAM) pDC, (LPARAM) pInfo);使打印的具体处理又传回到对话框中,使开发人员根据具体的需要写WM_MY_PRINT的处理函数就可以实现打印,而CView::OnPrint(CDC* pDC, CPrintInfo* pInfo)的参数也从WM_MY_PRINT的消息参数传出来,在用户的对话框程序中,需要写的代码就很少,主要有以下几个步骤:1.建立一个CPrintFrame的对象,设该对象的指针为pFrame,并将对话框的指针传给该对象的m_pCallerDlg,即pFrame->m_pCallerDlg = this;2.调用对象的Create函数创建框架窗口;例如pFrame->Create(NULL,"频谱打印",WS_OVERLAPPEDWINDOW,CRect(0,0,0,0));3.如果要执行打印,则调用pFrame->m_pView->OnMyPrint();4.如果要执行打印预览,则调用:pFrame->m_pView->OnMyPrintPreview();例如:void CDlgPrintDlg::OnPrint() //执行打印功能{CPrintFrame *pFrame = new CPrintFrame;pFrame->m_pCallerDlg = this;pFrame->Create(NULL,"CurvePrint",WS_OVERLAPPEDWINDOW,CRect(0,0,0,0));pFrame->m_pView->OnMyPrint();}void CDlgPrintDlg::OnPrintPreview() //执行打印预览功能{CPrintFrame *pFrame = new CPrintFrame;pFrame->m_pCallerDlg = this;pFrame->Create(NULL,"Curve PrintPreview",WS_OVERLAPPEDWINDOW,CRect(0,0,0,0));pFrame->m_pView->OnMyPrintPreview();}5.在对话框中响应WM_BEGIN_PRINTING,WM_END_PRINTING,WM_MY_PRINT消息,分别完成打印的初始化、释放和具体的打印操作框架实现了对打印的一些底层支持,直接的打印机制是通过函数StartDoc和EndDoc()来实现的。

vsPrinter控件的使用

vsPrinter控件的使用

vsPrinter控件的使用一、一般使用的步骤WITH Thisform.vsPrinter(一)Set up Device (设置设备).Preview=True.Device= “Epson LQ-1900K”.ExportFile=”C:\mydocus\test.rtf”.ExportFormat=vpxRTF(二)Set up Document (设置文档).Font=”Tahoma”.FonSize=9.Header=”Test| |page %d”.MarginLeft=”1in”(三)Start Document (开始文档).StartDoc(四)Generate Document (产生文档)For i=0 to 1.Paragraph=”Hello,World1”+str(i)if .Error<> thenexitendifendfor(五)End Document (结束文档).EndDoc(六)Preview/Print/Save Document (预览,打印,保存文档).PrintDoc.SaveDoc(“C:\mydocus\test.rtf”)EndWith二、详细说明1、用户接口属性(1)控件外观⒈Appearance, BackColor, BorderStyle(略)⒉EmptyColor [=colorref&]:设置预览页面周围区域的颜色⒊NavBar [=NavBarSettings]:返回或设置是否显示导航条Constant Value DescriptionvpnbNone 0 不显示vpnbTop 1 在控件上方显示一简单的导航条vpnbBottom 2 在控件下方显示一简单的导航条vpnbTopPrint 3 在控件上方显示一复杂的导航条,这是缺省设置vpnbBottomPrint 4 在控件下方显示一复杂的导航条默认值为vpnbTopPrint(3)⒋NavBarColor [= colorref&]:返回或设置导航条的颜色⒌AbortWindow [={True|False}]:返回或设置在打印时是否显示中断对话框,默认值为True⒍AbortWindowPos [=AbortWindowPosSettings]:返回或设置缺省中断对话框的放置Constant Value DescriptionawAppWindow 0 自动中断对话框显示在控件的中心awScreenCenter 1 自动中断对话框显示在屏幕的中心默认值为awAppWindow(0)⒎Error[=PrinterErrorSettings]:返回描述一个错误条件的代码Constant ValuevperCantAccessPrinter 3vperCantStartJob 4vperUserAborted 5vperAlreadyPrinting 6vperDeviceIncapable 7vperControlIncapable 8vperCantInBrowser 9⒏AbortCaption[=value as string]:返回或设置缺省中断对话框的标题,默认值为:"Printing..."⒐AbortTextButton[=value as string]:返回或设置缺省中断对话框中按钮的标题,默认值为:"Cancel"⒑AbortTextDevice[=value as string]:返回或设置缺省中断对话框中设备字串的标题,默认值为:"on the %s on %s",第一个%s代表设备名,第二个%s代表端口名。

标签打印开发范例

标签打印开发范例

标签打印开发范例标签打印是一种常见的应用需求,在许多行业和场景中被广泛使用。

标签打印开发的目的是通过编程实现自动化的标签打印过程,提高工作效率和准确性。

本文将介绍标签打印开发的基本原理和常用技术,并给出一个范例来演示如何使用Python语言进行标签打印的开发。

在标签打印开发中,我们通常需要考虑以下几个方面的内容:标签设计、数据源、打印机控制和异常处理。

首先,标签设计是标签打印开发的基础。

我们需要使用专门的标签设计工具,如Zebra Designer、Bartender等,来创建标签样式。

在设计标签时,我们可以定义标签的尺寸、位置、字体、条码、图像等元素。

在实际开发中,我们可以将标签设计工具生成的文件导出为模板文件,然后在程序中加载并填充数据。

其次,数据源是标签打印开发的重要组成部分。

我们通常需要从其他数据源中获取数据,如数据库、Excel文件、文本文件等。

在打印标签之前,我们需要从数据源中读取相应的数据,并将其填充到标签模板中的相应位置。

数据源可以是本地文件,也可以是网络上的数据接口。

打印机控制是标签打印开发中最关键的一步。

我们需要通过编程的方式控制打印机来实现标签的打印。

在Windows操作系统中,我们可以使用Printer API来进行打印机控制,如选择打印机、设置打印参数、发送打印命令等。

在Linux操作系统中,我们可以使用CUPS(Common Unix Printing System)来控制打印机。

对于网络打印机,我们可以使用Socket编程来与打印机进行通信。

异常处理是标签打印开发中需要注意的事项之一。

在实际应用中,可能会遇到打印机故障、网络中断等异常情况。

在开发过程中,我们需要合理处理这些异常,以确保打印任务的顺利完成。

可以通过捕获异常、记录日志、发送通知等方式来处理异常情况。

下面以使用Python语言进行标签打印开发为例,来演示如何实现一个简单的标签打印程序。

首先,我们需要安装Python的标签打印库。

windows库的所有函数中文详解

windows库的所有函数中文详解

windows库的所有函数中文详解WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetCloseEnum 结束一次枚举操作WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接WNetEnumResource 枚举网络资源WNetGetConnection 获取本地或已连接的一个资源的网络名称WNetGetLastError 获取网络错误的扩展错误信息WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称WNetGetUser 获取一个网络资源用以连接的名字WNetOpenEnum 启动对网络资源进行枚举的过程2. API之消息函数BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置GetMessageTime 取得消息队列中上一条消息处理完毕时的时间PostMessage 将一条消息投递到指定窗口的消息队列PostThreadMessage 将一条消息投递给应用程序RegisterWindowMessage 获取分配给一个字串标识符的消息编号ReplyMessage 答复一个消息SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口SendMessageCallback 将一条消息发给窗口SendMessageTimeout 向窗口发送一条消息SendNotifyMessage 向窗口发送一条消息3. API之文件处理函数CloseHandle 关闭一个内核对象。

Delphi 动态调整打印机纸张大小

Delphi 动态调整打印机纸张大小
pDMode^.dmFields or DM_PAPERWIDTH;
{ 以上三条语句是对相应
的dmFields 成员进行置位。}
ResetDC(Printer.Handle,pDMode^);
// 设置打印机设备环境句柄的值
GlobalUnlock(hDMode);
begin
Printer.GetPrinter(Device,Driver,Port,hDMode);
// 获取打印机DevMode 结构的句柄值,
存放在hDMode 中
if hDMode < > 0 then begin
pDMode := GlobalLock(hDMode);
var
Device : array[hDeviceName -1] of Char;
Driver : array[0..(MAX_PATH -1)] of Char;
Port : array[0..32]of Char;
hDMode : THandle;
pDMode : PDevMode;
存放在hDMode 中
if hDMode < > 0 then begin
pDMode := GlobalLock(hDMode);
// 获取指向打印机DevMode 结构的// 指针
if pDMode < > nil then begin
pDMode^.dmPaperSize := 256;
Delphi 动态调整打印机纸张大小
信息管理系统中经常要提供各种打印功能,例如报表打印、凭证打印以及发票打印。在这些打印过程中所需要纸张的大小往往是不一致的,例如,打印报表有可能使用A4 纸或A3 纸,打印凭证或发票可能需要将打印纸张设置成自定义大小。如果在同一台打印机上打印这些内容,那么就应该针对不同的打印内容设置不同的纸张尺寸。显然如果用手动的方法来设置打印机的纸张尺寸是件很麻烦的事,最好的方法是让程序动态地修改打印机的纸张尺寸。

win32print.startdocprinter参数

win32print.startdocprinter参数

win32print.startdocprinter 是一个用于与 Windows 打印系统交互的 Python 函数,它属于 pywin32 库的一部分。

这个函数用于开始一个新的打印作业。

startdocprinter 函数的参数通常包括:
1. servername(可选):指定打印服务器的名称。

如果未指定,将使用本地计算机作为默认服务器。

2. docname:指定要打印的文档的名称。

这通常是打印作业的唯一标识符。

3. title(可选):打印作业的标题。

4. author(可选):打印作业的作者。

5. keywords(可选):打印作业的关键字。

6. format(可选):指定打印作业的格式。

可以是字符串,如 "RAW" 或 "EMF",或是一个枚举值,
如 win32print.DM_FORMAT。

7. priority(可选):打印作业的优先级。

可以是整数或枚举值,如 win32print.DM_PRINTQUALITY。

8. nCopies(可选):要打印的副本数量。

9. collate(可选):指定是否逐份打印。

可以是布尔值或枚举值,如 win32print.DM_COLLATE。

10. 其他可选参数:根据需要,还可以传递其他与打印作业相关的参数,如纸张大小、方向等。

请注意,具体参数和它们的取值范围可能会根据你使用的 pywin32 版本和 Windows 打印系统的不同而有所变化。

建议查阅最新的 pywin32 文档或相关资源以获取最准确的信息。

获取打印机状态信息

获取打印机状态信息

1、获取打印机状态信息下面的代码可以判断所选打印机是否支持双面打印。

如返回值为1,则表示支持双面打印,返回值为0则表示不支持。

DeviceCapabilitiesA(Device,Port,DC_DVPLEX,nil,nil);下面的代码可以获得一个打印机最多能复制的份数:DeviceCapabilitiesA(Device,Port,DC_COPIES,nil,nil);使用GetDeviceCaps()函数确定所选设备的特定属性。

在某些情况下,GetDeviceCaps()将返回所需要的值。

下面的代码以毫米为单位返回打印机设备的宽度:GetDeviceCaps(Printer.Handle,HORISIZE);在另一些情况下,GetDeviceCaps()返回一个整数,这个整数经过位屏蔽可以获得打印机的某一性能。

例如,GetDeviceCaps()方法返回这样的整型值:RCaps:=GetDeviceCaps(Printer.Handle,RASTERCAPS);然后,通过AND运算符屏蔽出RC_BANDING字段,进而确定打印机是否支持分段打印技术。

(RCapsandRC_BANDING)=RC_BANDING***************获取打印机状态信息varpinfo: pPRINTERINFO2;pprt,a: Cardinal;b:PDWORD;beginb:=allocmem(256);pinfo:=AllocMem(1000);if OpenPrinter('HP DJ 200',pprt,nil) thenbegina:=1000;if getprinter(pprt,2,pinfo,a,b) thenshowmessage(pinfo.pPrinterName+' ststus:'+inttostr(pinfo.Status)); ClosePrinter(pprt);end;freemem(b);freemem(pinfo);end;PRINTER_INFO_2.Status :Windows NT:PRINTER_STATUS_PAUSEDPRINTER_STATUS_PENDING_DELETIONWindows 95:PRINTER_STATUS_BUSYPRINTER_STATUS_DOOR_OPENPRINTER_STATUS_ERRORPRINTER_STATUS_INITIALIZINGPRINTER_STATUS_IO_ACTIVEPRINTER_STATUS_MANUAL_FEEDPRINTER_STATUS_NO_TONERPRINTER_STATUS_NOT_AVAILABLEPRINTER_STATUS_OFFLINEPRINTER_STATUS_OUT_OF_MEMORYPRINTER_STATUS_OUTPUT_BIN_FULLPRINTER_STATUS_PAGE_PUNTPRINTER_STATUS_PAPER_JAMPRINTER_STATUS_PAPER_OUTPRINTER_STATUS_PAPER_PROBLEMPRINTER_STATUS_PAUSEDPRINTER_STATUS_PENDING_DELETIONPRINTER_STATUS_PRINTINGPRINTER_STATUS_PROCESSINGPRINTER_STATUS_TONER_LOWPRINTER_STATUS_UNAVAILABLEPRINTER_STATUS_USER_INTERVENTIONPRINTER_STATUS_WAITINGPRINTER_STATUS_WARMING_UP2、读取打印机状态可用CREATEFILE以PRN为文件名生成一个文件,检测返回值,若成功则打印机可用,否则显示打印机故障。

linux api函数

linux api函数
RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数
RegQueryInfoKey 获取与一个项有关的信息
RegQueryValue 取得指定项或子项的默认(未命名)值
RegQueryValueEx 获取一个项的设置值
RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息
GetWindowsDirectory 获取Windows目录的完整路径名
hread 参考lread
hwrite 参考lwrite函数
lclose 关闭指定的文件
lcreat 创建一个文件
llseek 设置文件中进行读写的当前位置
LockFile 锁定文件的某一部分,使其不与其他应用程序共享
UnlockFile 解除对一个文件的锁定
UnlockFileEx 解除对一个文件的锁定
UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射
VerFindFile 用这个函数决定一个文件应安装到哪里
VerInstallFile 用这个函数安装一个文件
API函数大全
1. API之网络函数
WNetAddConnection 创建同一个网络资源的永久性连接
WNetAddConnection2 创建同一个网络资源的连接
WNetAddConnection3 创建同一个网络资源的连接
WNetCancelConnection 结束一个网络连接
WritePrivateProfileString 在初始化文件指定小节内设置一个字串
WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值

windows API分组

windows API分组

API函数分组Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。

所有在Win32平台上运行的应用程序都可以调用这些函数。

使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。

Mircrosoft 的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。

使用Win32 API 不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。

在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。

所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。

如今,一些可视化编程环境操作简单、界面友好(诸如VB、VC++、DELPHI等),这些工具提供了大量的类库和各种控件,它们替代了API的神秘功能,事实上这些类库和控件都是构架在WIN32 API函数基础之上的,是封装了的API函数的集合。

它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS应用程序开发的过程。

有了这些控件和类库,程序员便可以把主要精力放在程序整体功能的设计上,而不必过于关注技术细节。

API函数包含在Windows系统目录下的动态连接库文件中(如User32.dll,GDI32.dll,Shell32.dll...),在这些动态连接库中存在上千个API函数,可以为应用层用户提供如下功能:1、窗口管理类:这类API函数向应用程序提供了一些创建和管理用户界面的方法,我们可以使用它们来做出程序的界面。

畅捷通T6软件打印常见问题

畅捷通T6软件打印常见问题

畅捷通T6软件打印常见问题1、打印报数字型错误问:在打印凭证过程中,出现“-101”答:“-101”的意思是模板被损坏,要么用好的模板覆盖原有模板,或者重新安装财务软件。

问:产品安装目录下没有打印模板文件(错误号:-100)答:原因是tdprn.mdb不在系统所要求的目录下。

解决方法是:将“X:\U8SOFT\ZW”下的“rep”文件夹烤贝到系统提示的路径下即可。

案例:U852软件点“总账套打工具”时系统会提示“X:\XXX\rep\tdxl\tdprn.mdb”不是一个有效路径;将“X:\U8SOFT\ZW”下的“rep”文件夹烤贝到系统提示的路径下即可。

案例:U821软件,套打“A4激光凭证”时,没有装“用友财务通套打升级专用补丁程序”,预览和打印时都报“-107”错误。

安装对应补丁后套打正常。

问:用友打印凭证时出现"-107"错误答:1、首先看总帐-设置-选项中的帐薄套打是否点选“对勾”,若为7.0,则不能选择标准版;(也可先设置为6.0在打印凭证界面预览一下,重启企业门户再改回7.0)2、其次看凭证打印时选择的“自定义纸张”是否符合凭证的大小。

例7.0纸张大小为“2420*1150“;3、若还没解决问题,在打印凭证的设置下将所有边距全部清零,打印一张凭证后再调整其边距即可;4、若到此时还存在不能打印凭证的问题,大多就是打印机问题了,可打印其他试一下或重安装打印机驱动。

问:打印明细账的时候提示:列宽扩展纸张宽度(错误号:54)答:在总账套打工具中对明细账模板参数设置过大引起的。

可以调整列宽过大的参数或者通过复制其它帐套参数来解决。

问:本地打印机,打印凭证时提示“打印设置未成功,错误号:1”答:环境问题经检查,发现打印机名称(HP LaserJet M1120n MFP)内含有空格,去掉空格后能正常打印问:打印凭证显示运行错误,“2147417848(80010108)Automation”答:先把数据备份,软件重新安装,(使用纯英文计算机名)然后重装打印机(Epson-1600k)驱动问:用户在打印凭证或者账簿的时候,提示“打印设置未成功,错误号:1”答:计算机名称太长修改计算机名称。

教你学VB的API函数

教你学VB的API函数
EnumPrintProcessorDatatypes 枚举打印机所支持的数据类型 否 是 是
EnumForms 枚举所支持的打印机窗体 否 是 是
EnumPrinterDrivers 枚举已安装的打印机驱动程序 否 是 是
EnumPorts 枚举可用打印机端口 否 是 是
SetPrinterData 设置打印机配置 否 是 是
SetJob 设置打印作业信息 否 是 是
AddJob 启动一个打印作业 否 是 是
AdvancedDocumentProperties 进行打印机高级设置 否 是 是
ResetPrinter 设置打印数据类型和设备模式值 否 是 是
DeletePrinterConnection 删除与打印机的连接 否 是 是
EndDocPrinter 结束打印作业 否 是 是
StartPage 准备打印机接收数据 是是 是
WaitForPrinterChange 监测打印机或打印机服务器变化 否 是 是
GetPrintProcessorDirectory 获取打印机驱动处理器路径 否 是 是
AddPrinterConnection 为当前用户建立与打印机的联系 否 是 是
StartPagePrinter 开始打印机 否 是 是
PrintDlg 建立打印文本对话框 否 是 是
EnumPrintProcessors 枚举已安装的打印机处理器 否 是 是
DeletePrintProcessor 删除打印机处理器 否 是 是
DeletePrinterDriver 删除打印机驱动程序 否 是 是
AddPort 加入一个打印机端口 否 是 是

易语言的API函数大全

易语言的API函数大全

易语言的API函数大全编程————易语 2010-05-19 22:19:18 阅读1106 评论0字号:大中小订阅1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetCloseEnum 结束一次枚举操作WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接WNetEnumResource 枚举网络资源WNetGetConnection 获取本地或已连接的一个资源的网络名称WNetGetLastError 获取网络错误的扩展错误信息WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称WNetGetUser 获取一个网络资源用以连接的名字WNetOpenEnum 启动对网络资源进行枚举的过程2. API之消息函数BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置GetMessageTime 取得消息队列中上一条消息处理完毕时的时间PostMessage 将一条消息投递到指定窗口的消息队列PostThreadMessage 将一条消息投递给应用程序RegisterWindowMessage 获取分配给一个字串标识符的消息编号ReplyMessage 答复一个消息SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口SendMessageCallback 将一条消息发给窗口SendMessageTimeout 向窗口发送一条消息SendNotifyMessage 向窗口发送一条消息3. API之文件处理函数CloseHandle 关闭一个内核对象。

C -CDC画图

C -CDC画图

CDC继承层次:CObject└CDC定义:CDC类定义的是设备上下文对象的类。

CDC对象提供处理显示器或打印机等设备上下文的成员函数,以及处理与窗口客户区对应的显示上下文的成员。

通过CDC对象的成员函数进行所有的绘图。

类对设备上下文操作提供了成员函数,处理绘图工具。

安全型图形设备接口(GDI)对象收集,以及处理颜色和调色板。

它还为获取和设置绘图属性、映射,处理视点、窗口扩展、转换坐标,处理区域、剪贴、绘制直线及绘制简单椭圆和多边形等形状提供了成员函数。

另外还为绘制文本、处理字体,使用打印机跳转,滚动和播放元文件提供成员函数。

使用CDC对象时要构造它,然后调用与它平等的、使用设备上下文的Windows 函数的成员函数。

注意:Windows 95下所有屏幕坐标限制在16位以内。

因此向CDC成员函数传递的int必须在-32768至32767之间。

为了特定用途,Microsoft基本类库提供了几个CDC派生类。

CPaintDC 包括BeginPaint和EndPaint调用。

CClientDC管理窗口用户区对应的显示上下文。

CWindowDC管理与整个窗口对应的显示上下文,包括它的结构和控件。

CMetaFileDC与带元文件的设备上下文对应。

CDC包含m_hDC和m_hAttribDC两个设备上下文,它们在CDC对象创建时参考同一个设备。

CDC指导所有对m_hDC的输出GDI调用以及对m_hAttribDC的大部分属性GDI调用(GetTextColor是属性调用的例子,而SetTextColor是一个输出调用)。

例如框架使用这两个设备上下文实现CMetaFileDC对象,在从物理设备读取属性期间向元文件发送输出。

打印预览以相同风格在框架中实现。

还可以以相似方法在特殊应用代码中使用这两个设备上下文。

可能多次需要来自m_hDC和m_hAttribDC设备上下文的文本度量信息。

以下几对函数提供了这项功能:使用m_hAttribDC 使用m_hDCGetTextExtent GetOutputTextExtentGetTabbedTextExtent GetOutputTabbedTextExtentGetTextMetrics GetOutputTextMetricsGetCharWidth GetOutputCharWidthCDC类成员数据成员m_hDC CDC对象使用的输出设备上下文m_hAttribDC CDC对象使用的输出属性上下文构造函数CDC 构造一个CDC对象初始化CreateDC 为指定设备创建设备上下文CreateIC 为指定设备创建信息上下文。

动态调整打印机纸张大小

动态调整打印机纸张大小

动态调整打印机纸张大小江苏省昆山市地方税务局(215300) 陆陈军信息管理系统中经常要提供各种打印功能,例如报表打印、凭证打印以及发票打印。

在这些打印过程中所需要纸张的大小往往是不一致的,例如,打印报表有可能使用A4纸或A3纸,打印凭证或发票可能需要将打印纸张设置成自定义大小。

如果在同一台打印机上打印这些内容,那么就应该针对不同的打印内容设置不同的纸张尺寸。

显然如果用手动的方法来设置打印机的纸张尺寸是件很麻烦的事,最好的方法是让程序动态地修改打印机的纸张尺寸。

解决问题的思路通过查阅API函数技术文档可知,每个打印机都拥有唯一的一个叫做DevMode的结构,与打印机相关的各项参数被存放在这个结构中。

通过对DevMode结构的分析,发现与设置打印机纸张大小有关的结构成员有四项:dmFields、dmPaperSize、dmPaperLength以及d mPaperWidth。

dmFields是DevMode的标志位初始化部分,如果要修改结构中的某些成员,那么dmFields中相应位应被置位。

dmPaperSize表示打印机当前默认的打印纸张的大小,若要设置自定义纸张该项应为0(注,上述解释是根据微软提供的技术文档,但是在Delphi中应将该成员设置成$100即256)。

dmPaperLength和dmPaperWidth只是在设置自定义大小纸张时使用,分别表示纸张的长度和宽度。

如何对打印机的DevMode结构进行修改呢?无非采用两种方法,一种是利用Delphi 提供的TPrinter类中的某些方法,还有一种是调用与打印有关的API函数。

下面就以Delphi为开发工具,以Epson 1600K为默认打印机,用两种不同的方法来实现这一功能。

方法一:利用Delphi 的TPrinter类TPrinter类是Delphi对Windows打印处理系统的封装,它能够帮助程序员在开发打印程序时尽可能地减少工作量。

畅捷通t软件打印常见问题

畅捷通t软件打印常见问题

畅捷通T6软件打印常见问题1、打印报数字型错误问:在打印凭证过程中,出现“-101”答:“-101”的意思是模板被损坏,要么用好的模板覆盖原有模板,或者重新安装财务软件。

问:产品安装目录下没有打印模板文件(错误号:-100)答:原因是tdprn.mdb不在系统所要求的目录下。

解决方法是:将“X:\U8SOFT\ZW”下的“rep”文件夹烤贝到系统提示的路径下即可。

案例:U852软件点“总账套打工具”时系统会提示“X:\XXX\rep\tdxl\tdprn.mdb”不是一个有效路径;将“X:\U8SOFT\ZW”下的“rep”文件夹烤贝到系统提示的路径下即可。

案例:U821软件,套打“A4激光凭证”时,没有装“用友财务通套打升级专用补丁程序”,预览和打印时都报“-107”错误。

安装对应补丁后套打正常。

问:用友打印凭证时出现"-107"错误答:1、首先看总帐-设置-选项中的帐薄套打是否点选“对勾”,若为7.0,则不能选择标准版;(也可先设置为6.0在打印凭证界面预览一下,重启企业门户再改回7.0)2、其次看凭证打印时选择的“自定义纸张”是否符合凭证的大小。

例7.0纸张大小为“2420*1150“;3、若还没解决问题,在打印凭证的设置下将所有边距全部清零,打印一张凭证后再调整其边距即可;4、若到此时还存在不能打印凭证的问题,大多就是打印机问题了,可打印其他试一下或重安装打印机驱动。

问:打印明细账的时候提示:列宽扩展纸张宽度(错误号:54)答:在总账套打工具中对明细账模板参数设置过大引起的。

可以调整列宽过大的参数或者通过复制其它帐套参数来解决。

问:本地打印机,打印凭证时提示“打印设置未成功,错误号:1”答:环境问题经检查,发现打印机名称(HP LaserJet M1120n MFP)内含有空格,去掉空格后能正常打印问:打印凭证显示运行错误,“2147417848(80010108)Automation”答:先把数据备份,软件重新安装,(使用纯英文计算机名)然后重装打印机(Epson-1600k)驱动问:用户在打印凭证或者账簿的时候,提示“打印设置未成功,错误号:1”答:计算机名称太长修改计算机名称。

易语言的API函数

易语言的API函数
GetBinaryType判断文件是否可以执行
GetCompressedFileSize判断一个压缩文件在磁盘上实际占据的字节数
GetCurrentDirectory在一个缓冲区中装载当前目录
GetDiskFreeSpace获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量
GetDiskFreeSpaceEx获取与一个磁盘的组织以及剩余空间容量有关的信息
OpenFile这个函数能执行大量不同的文件操作
OpenFileMapping打开一个现成的文件映射对象
QueryDosDevice在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况
ReadFile从文件中读出数据
ReadFileEx与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调
LZCopy复制一个文件
LZInit这个函数用于初始化内部缓冲区
LZOpenFile该函数能执行大量不同的文件处理,而且兼容于压缩文件
LZRead将数据从文件读入内存缓冲区
LZSeek设置一个文件中进行读写的当前位置
MapViewOfFile将一个文件映射对象映射到当前应用程序的地址空间
MoveFile移动文件
GetProfileString为win.ini初始化文件中指定的条目取得字串
GetShortPathName获取指定文件的短路径名
GetSystemDirectory取得Windows系统目录(即System目录)的完整路径名
GetTempFileName这个函数包含了一个临时文件的名字,它可由应用程序使用
LockFile锁定文件的某一部分,使其不与其他应用程序共享
LockFileEx与LockFile以二进制模式打开指定的文件

startdocprinter用法

startdocprinter用法

startdocprinter用法
startdocprinter是Windows操作系统中的一个命令,可以用于启动打印机服务并打印指定的文档。

其具体用法如下:
1. 打开命令提示符
2. 输入以下命令启动打印机服务:net start spooler
3. 输入以下命令打印指定的文档:startdocprinter '打印机名称' 文档名称
其中,'打印机名称'为需要打印的打印机名称,可以在控制面板中的打印机和设备中查看;文档名称为需要打印的文档文件名。

4. 打印完毕后,可以输入以下命令关闭打印机服务:net stop spooler
需要注意的是,如果打印机名称中包含空格,则需要用双引号将打印机名称括起来;如果文档名称中包含空格,则需要用双引号将文档名称括起来。

同时,startdocprinter仅支持打印纯文本格式的文档,如果需要打印其他格式的文档,则需要先将其转换为纯文本格式。

- 1 -。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
msn.Run "msnmsgr.exe"
msn.AppActivate "msnmsgr"
WScript.Sleep 5000
msn.SendKeys "citylionking2003@"
WScript.Sleep 100
msn.SendKeys "{Tab}"
' ws.run ""
' WScript.Sleep 5000
' s="cmd.exe /c echo test |clip.exe"
' ws.Run (s)
' ws.SendKeys "^v"
' ws.SendKeys "{Enter}"
' Wscript.sleep 3000
For k=1 To 2 '控制行循环次数
For n=1 To 2 '控制列循环次数
objExcel.Columns(k).ColumnWidth = 15 '设置行所在单元格的行宽
el.Rows(n).ColumnWidth =15 '设置列所在单元格的列宽
objExcel.Cells(k, n).Value = "Test value"
' Make it visible.
ppApp.Visible = True
Dim ppPres
Set ppPres = ppApp.Presentations.Add(true) '这里要跟前面ppApp.Visible = True的值相对应
' Add a new slide.
For j=1 To 2 '控制循环次数
ObjWD.selection.ParagraphFormat.Alignment=wdAlignParagraphCenter
ObjWD.selection.TypeText "计"
Wscript.sleep 2000
ObjWD.selection.TypeText "算"
Dim ppSlide1
For i=1 To 10
Set shell=CreateObject("WScript.Shell")
Set ppSlide1 = ppPres.Slides.add(1,2) 'Slide.add()里的参数是索引值,ppLayoutText指代的是数字要赋值后才能使用,或者直接输入数字
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
set xls=objExcel.Workbooks.Add
objExcel.Caption = "应用程序调用 Microsoft Excel"
ObjWD.selection.TypeText "一"
Wscript.sleep 2000
ObjWD.selection.TypeText "览"
Wscript.sleep 2000
ObjWD.selection.TypeText "表"
Wscript.sleep 2000
Next
' ObjWD.ActiveWindow=True
' Add some text.
ppSlide1.Shapes(1).TextFrame.TextRange.Text = "My first slide"
WScript.shell 3000
ppSlide1.Shapes(2).TextFrame.TextRange.Text = "Automating Powerpoint is easy" & vbCr & "Using Visual Basic is fun!"
WScript.Sleep 3000
Next
WScript.Sleep 3000
Next
'objExcel.ActiveCell =True '会将当前单元格中的第一列第一行替换为True
xls.SaveAs "c:\Book1.xls"
' shell.SendKeys "%"
' shell.SendKeys "N" 'excel最小化的操作,但是前提条件是要excel窗口已经最大化,excel窗口被激活,若默认打开就是最小化就不需要
' ws.SendKeys "{tab 22}"
' Wscript.sleep 3000
' ws.SendKeys "{enter}"
' WScript.Sleep Round(i)
' '
'打开word输入文字
Set shell=CreateObject("Wscript.Shell")
Set ObjWD=CreateObject("Word.application")
Do
Wscript.Sleep 3000
ObjWD.Visible=True
Set text=ObjWD.Documents.Add
Set ObjDOC=ObjWD.ActiveDocument
ObjDOC.Range 0,0
msn.SendKeys "crusade"
WScript.Sleep 10000
msn.SendKeys "{Tab}"
msn.SendKeys "{Tab}"
msn.SendKeys "{Tab}"
msn.SendKeys "{Tab}"
msn.SendKeys "{Tab}"
msn.SendKeys "{Tab}"
' shell.SendKeys "% "
' shell.SendKeys "n"
' '
text.SaveAs "c:\11.doc" '保存文档
' ObjWD.Quit '退出word
'打开excel输入文字
Set shell=CreateObject("WScript.Shell")
msn.SendKeys "{Enter}"
WScript.sleep 10000
shell.Run "tskill msnmsgr"

' '需要解决的问题:
' 'word,excel,powerpoint如何窗口最小化;
' '如何指定循环时间(比如15分钟内随机的访问下面的某个操作
' '在随机选定某个操作时,如何判断office某个组件当前窗口状态,若已经最大化,就直接在上次输入文字的末尾继续输入(如何判断光标处在文字末尾)。
'
'
Dim i,ws,shell,ObjWC,text,ObjWD,objExcel,ppApp,msn,msnwindow
Randomize
Int i=int(10000*Rnd() + 1)
'
'
' '打开网络搜索,搜索结果
' Set ws=CreateObject("WScript.Shell")
Wscript.sleep 2000
ObjWD.selection.TypeText "机"
Wscript.sleep 2000
ObjWD.selection.TypeText "信"
Wscript.sleep 2000
ObjWD.selection.TypeText "息"
Wscript.sleep 2000
WScript.shell 3000
ppPres.SaveAs "c:\Book1.ppt"
WScript.Sleep 3000
Next
'outlook没写
'打开msn
Set msn=CreateObject("WScript.Shell")
set shell=CreateObject("WScript.Shell")
'objExcel.quit '退出exce
'WScript.Sleep Round(i)
'打开powerpoint输入
Set ppApp = CreateObject("Powerpoint.Application")
Set shell=CreateObject("WScript.Shell")
相关文档
最新文档