【求助】DocumentProperties 控制打印的问题

kangss 2014-04-21 07:15:39
http://hi.baidu.com/myvfp/item/28c267bf9dd667e94fc7fd54
行者的文章中的2个示例,
示例1:用DocumentProperties函数来更改当前程序打印机的打印方向,弹出的对话框确实变了,但不起作用。
示例2:用SetPrinter来进行系统打印机的走向和纸张设置,起作用,但它是修改了操作系统的打印机默认值。
比如:你执行示例2之后,你打开VFP9,你看看VFP9里面的打印页面设置也变了。

为啥用DocumentProperties函数来更改当前程序打印机的打印方向打印预览不起作用呢?用sys(1037)就可以呢?

—————————以下是行者的文章个———————————————————
VFP下打印机的设置编程 VFP本身提供了部分相关打印机的数据返回函数以及部分设置项,但在打印机的直接控制方面没有提供
相应的策略,这里从分析打印机的Devmode和PRINTER_INFO_2的结构来详细说明一下VFP打印机的相关操作编程。首先看下打印机的基本数据结构Devmode:

Private Type DEVMODE
dmDeviceName As String * 32 &&打印设备名称,每个打印机驱动程序都有一个唯一的字符串。
dmSpecVersion As Integer &&指定 Win32 软件开发工具包中 DEVMODE 结构的版本号。
dmDriverVersion As Integer &&指定由打印机驱动程序开发商分配的打印机驱动程序版本号。
dmSize As Integer &&指定 DEVMODE 结构的字节大小。
dmDriverExtra As Integer &&指定设备的数据可选 dmDriverData 成员的字节大小。
dmFields As Long &&指定 DEVMODE 结构中的哪些其余成员已被初始化。
dmOrientation As Integer &&指定纸张的方向。它可以为 1(纵向)或 2(横向)。
dmPaperSize As Integer &&指定打印的纸张大小。
dmPaperLength As Integer &&替代由PaperSize成员为自定义纸张大小的高度,PaperSize为0或256时有效。
dmPaperWidth As Integer &&代由PaperSize成员为自定义纸张大小的宽度,PaperSize为0或256时有效。
dmScale As Integer &&指定打印输出的缩放系数,输出的纸张大小是按缩放值/100从实际纸张大小缩放得到的。
dmCopies As Integer &&指定打印份数(如果打印设备支持多页打印)。
dmDefaultSource As Integer &&指定送纸的默认纸盒。
dmPrintQuality As Integer &&指定打印机的分辨率。值: -4高品质、-3中品质、-2低品质和 -1草稿。
dmColor As Integer &&指定是否以彩色打印输出结果。值为 1(彩色)和 2(单色)。
dmDuplex As Integer &&指定是否在纸张的双面打印输出结果。1单面、2水平、3垂直。(需要打印机支持)
dmYResolution As Integer &&指定打印机的 y 方向分辨率(以每英寸点数 (dpi) 为单位)。
dmTTOption As Integer &&指定如何打印 TrueType 字体。
dmCollate As Integer &&指定在打印多份时是否使用逐份打印。
dmFormName As String * 32 &&指定要使用的纸张大小;例如,“Letter”或“Legal”。
dmUnusedPadding As Integer &&用于在将来的版本中填充空格、字符或数值。
dmBitsPerPel As Integer &&指定显示设备的颜色分辨率(以每像素的位数为单位)。
dmPelsWidth As Long &&指定可见设备表面(屏幕或打印机)的宽度(以像素为单位)。
dmPelsHeight As Long &&指定可见设备表面(屏幕或打印机)的高度(以像素为单位)。
dmDisplayFlags As Long &&指定设备的显示模式。
dmDisplayFrequency As Long &&指定显示设备在特定模式下的频率(以赫兹(每秒周数)为单位)。
End Type

从上面的Devmode的结构我们可以看出,该结构几乎囊口了打印机设置的全部参数,那么我们在进行打印机的相关
编程设计时只要改变该结构的相关参数值就可以了,而且打印机的专用动态连接库winspool.drv也为我们提供了
两个相关的设置函数:DocumentProperties和SetPrinter,我们先看下这两个函数的VFP声明及相关说明:
DECLARE INTEGER DocumentProperties IN winspool.drv;
INTEGER hWnd,;
INTEGER hPrinter,;
STRING pDeviceName,;
STRING @pDevModeOutput,;
STRING @pDevModeInput,;
INTEGER fMode
说明:
这是一个灵活的打印机配置控制函数。该函数定义了两个DEVMODE结构,可在创建一个设备场景时为单个应用程序改变
打印机设置。甚至能在文档打印期间改变打印机设置 。
返回值:
Long,由fMode字段的值决定。如下所示:
若fMode为零,这个函数就返回DEVMODE结构的尺寸。注意这个结构可能比类型定义文件API32.TXT中规定的尺寸大
若fMode设置了DM_IN_PROMPT标志,那么打印机设置对话框就会出现。在这种情况下,
返回值将是常数IDOK 或IDCANCEL——具体由用户关闭对话框时按下的按钮决定
在其他任何情况下,该函数执行成功后会返回IDOK。而在任何情况下,如函数执行失败,都会返回一个负数 。
参数表
参数 类型 及说明
hwnd Long,对话框父窗口的句柄。这通常是当前的活动窗体
hPrinter Long,一个已打开的打印机对象的句柄
pDeviceName String,打印机的名字
pDevModeOutput Long,指向一个DEVMODE数据结构的指针。请参考DocumentProperties运行模式表。
注意这个指针必须引用一个足够大的缓冲区,它能同时容下专用打印机驱动程序数据,以及标准的DEVMODE结构
pDevModeInput Long,指向一个DEVMODE数据结构的指针。请参考DocumentProperties运行模式表
fMode Long,决定这个函数运作模式的一个标志。请参考DocumentProperties运行模式表。

这个函数应当注意的一点就是它是设置针对当前的单个应用程序有效的,如果要设置全局有效则使用SetPrinter函数。
我们再看下SetPrinter的声明:
DECLARE INTEGER SetPrinter IN winspool.drv;
INTEGER hPrinter,;
INTEGER lvl,;
STRING @ pPrinter,;
INTEGER cmd
说明
对一台打印机的状态进行控制
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表 参数 类型及说明
hPrinter Long,指定一个已打开的打印机的句柄(用OpenPrinter取得)
Level Long,0,2或3(4或5用于windows95,5或6用于NT 4.0)。如Command不是零,则这个参数必须是零
pPrinter Byte,包含一个PRINTER_INFO_x的结构的缓冲区,其中的x代表级别的设定(Level)。
Command Long,下述值之一:
零 根据PRINTER_INFO_x结构改变打印机
PRINTER_CONTROL_PAUSE 暂停打印机
PRINTER_CONTROL_PURGE 删除打印机的所有作业
PRINTER_CONTROL_RESUME 恢复一台暂停的打印机
PRINTER_CONTROL_SET_STATUS 载入打印机的PRINTER_CONTROL_STATUS结构(不可在NT 3.51下使用)
注解
在PRINTER_INFO_2结构的基础上设置打印机状态时,pServerName,AveragePPM,Status和cJobs字段都会被忽略

改函数被用来对某一打印机进行一个全局设置。
改函数引用了一个在PRINTER_INFO_X结构,起结构定义如下:
Type PRINTER_INFO_2
pServerName As Long
pPrinterName As Long
pShareName As Long
pPortName As Long
pDriverName As Long
pComment As Long
pLocation As Long
pDevMode As Long &&DevMode结构指针
pSepFile As Long
pPrintProcessor As Long
pDataType As Long
pParameters As Long
pSecurityDescriptor As Long
Attributes As Long
Priority As Long
DefaultPriority As Long
StartTime As Long
UntilTime As Long
Status As Long
cJobs As Long
AveragePPM As Long
End Type

OK!现在我们就可以来根据这两个结构来定义自己的打印机了,首先我们先看下如何用DocumentProperties函数和DEVMODE
结构来定义当前程序的打印机:

本篇文章所需要的API声明:


DECLARE INTEGER OpenPrinter IN winspool.drv;
STRING pPrinterName, INTEGER @phPrinter, INTEGER pDefault
DECLARE INTEGER GetProfileString IN kernel32;
STRING lpApp, STRING lpKey, STRING lpDefault,;
STRING @lpReturnedString, INTEGER nSize
DECLARE INTEGER ClosePrinter IN winspool.drv INTEGER hPrinter
DECLARE INTEGER DocumentProperties IN winspool.drv;
INTEGER hWnd, INTEGER hPrinter, STRING pDeviceName,;
STRING @pDevModeOutput, STRING @pDevModeInput, INTEGER fMode
DECLARE INTEGER SetPrinter IN winspool.drv;
INTEGER hPrinter,;
INTEGER lvl,;
STRING @ pPrinter,;
INTEGER cmd
DECLARE INTEGER GetPrinter IN winspool.drv AS GetPrinterA;
INTEGER hPrinter,;
INTEGER Lvl,;
STRING @pPrinter,;
INTEGER cbBuf,;
INTEGER @ pcbNeeded


示例1:用DocumentProperties函数来更改当前程序打印机的打印方向:
*-----------------------------------------------------------------*
*-VFP应用程式算法群:12787940 行者孙:310727570-*
*-----------------------------------------------------------------*
#DEFINE IDCANCEL 2&&横向
#DEFINE DM_OUT_BUFFER 2
#DEFINE DM_IN_BUFFER 8
#DEFINE DM_IN_PROMPT 4
local hWindow, cPrinter, cDriver, cPort, hPrinter, nBufsize, cDevmode
APRINTERS(gaPrinters)&&改函数用来获取VFP默认打印机名称,注意VFP默认并不代表系统全局默认。
cPrinter=gaPrinters(1,1)
hPrinter = 0
OpenPrinter(cPrinter,@hPrinter,0)
IF hPrinter = 0
Messagebox("不能打开默认打印机!", 48, "错误")
RETURN
ENDIF
nBufsize = DocumentProperties(hWindow, hPrinter, cPrinter,0,0,0)&&获取DEVMODE结构大小
cDevmode = Repli(Chr(0), nBufsize)
nOrient= DMORIENT_LANDSCAPE&&横向
DocumentProperties(hWindow, hPrinter, cPrinter, @cDevmode, 0, DM_OUT_BUFFER)&&获取DEVMODE结构缓冲区字串
cDevmode=SUBSTR(cDevmode,1,44)+BINTOC(nOrient,'2rs')+SUBSTR(cDevmode,47,nBufsize-47)&&更改DEVMODE结构中打印走向的部分
DocumentProperties(hWindow, hPrinter, cPrinter, @cDevmode,@cDevmode,DM_IN_BUFFER+DM_OUT_BUFFER)&&更新打印机DEVMOD
DocumentProperties(hWindow, hPrinter, cPrinter, @cDevmode, @cDevmode, DM_IN_PROMPT+DM_IN_BUFFER+DM_OUT_BUFFER)&&看看变了没
ClosePrinter(hPrinter)

这样设置打印机是不是很简单?如果在VFP中测试本段代码会发现在VFP中打印机设置确实变了,但在控制面板中并没有变,这就是所谓的
DocumentProperties函数是用来设置当前单一程序的打印机。
OK,接下来我们再利用SetPrinter来设置系统打印机:
示例2:用SetPrinter来进行系统打印机的走向和纸张设置
*-----------------------------------------------------------------*
*-VFP应用程式算法群:12787940 行者孙:310727570-*
*-----------------------------------------------------------------*
nOrient=2&&横向
PaperSize=0x0B&& A5
nSize=0
lcBuffer = Repli(Chr(0), 120)
GetProfileString("Windows", "Device", ",,,", @lcBuffer, Len(lcBuffer))
lcBuffer = STRTRAN(lcBuffer, Chr(0), "")
cPrinter = SUBSTR(lcBuffer, 1, AT(",", lcBuffer, 1)-1)&&系统当前默认打印机名称
hPrinter = 0
OpenPrinter(cPrinter,@hPrinter,0)
nBufsize = DocumentProperties(0, hPrinter,cPrinter,0,0,0)
GetPrinterA(hPrinter,2,0,0,@nSize)
pPrinter=REPLICATE(CHR(0),nSize)
GetPrinterA(hPrinter,2,@pPrinter,nSize,@nSize)
s=CTOBIN(SUBSTR(pPrinter,29,4),'4rs')
cDevmode=SYS(2600,s,nBufsize)&&读取Devmode结构
aDevmode=AT(cDevmode,pPrinter)&&找出Devmode结构在PRINTER_INFO_2中的位置
&&设置新的走向,就是把PRINTER_INFO_2中的Devmode结构中的走向改掉
pPrinter=STUFF(pPrinter,aDevmode+44,1,CHR(nOrient))
pPrinter=STUFF(pPrinter,aDevmode+76,1,CHR(nOrient))
&&纸张就是把PRINTER_INFO_2中的Devmode结构中的纸张改掉
pPrinter=STUFF(pPrinter,aDevmode+46,1,CHR(PaperSize))
pPrinter=STUFF(pPrinter,aDevmode+78,1,CHR(PaperSize))
SetPrinter(hPrinter,2,@pPrinter,0)
ClosePrinter(hPrinter)

再打开控制面板中的默认打印机看看是不是走向和纸张都变了?
就这么简单,大家可以利用Devmode结构设计出几乎包括打印机设置参数的程式。
...全文
288 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
4. API之打印函数 AbortDoc 取消一份文档的打印 AbortPrinter 删除与一台打印机关联在一起的缓冲文件 AddForm 为打印机的表单列表添加一个新表单 AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 AddMonitor 为系统添加一个打印机监视器 AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口 AddPrinter 在系统中添加一台新打印机 AddPrinterConnection 连接指定的打印机 AddPrinterDriver 为指定的系统添加一个打印驱动程序 AddPrintProcessor 为指定的系统添加一个打印处理器 AddPrintProvidor 为系统添加一个打印供应商 AdvancedDocumentProperties 启动打印机文档设置对话框 ClosePrinter 关闭一个打开的打印机对象 ConfigurePort 针对指定的端口,启动一个端口配置对话框 ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 DeleteForm 从打印机可用表单列表中删除一个表单 DeleteMonitor 删除指定的打印监视器 DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 DeletePrinter 将指定的打印机标志为从系统中删除 DeletePrinterConnection 删除与指定打印机的连接 DeletePrinterDriver 从系统删除一个打印机驱动程序 DeletePrintProcessor 从指定系统删除一个打印处理器 DeletePrintProvidor 从系统中删除一个打印供应商 DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 DocumentProperties 打印机配置控制函数 EndDocAPI 结束一个成功的打印作业 EndDocPrinter 在后台打印程序的级别指定一个文档的结束 EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 EndPagePrinter 指定一个页在打印作业中的结尾 EnumForms 枚举一台打印机可用的表单 EnumJobs 枚举打印队列中的作业 EnumMonitors 枚举可用的打印监视器 EnumPorts 枚举一个系统可用的端口 EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 EnumPrinters 枚举系统中安装的打印机 EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 EnumPrintProcessors 枚举系统中可用的打印处理器 Escape 设备控制函数 FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 GetForm 取得与指定表单有关的信息 GetJob 获取与指定作业有关的信息 GetPrinter 取得与指定打印机有关的信息 GetPrinterData 为打印机设置注册表配置信息 GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 OpenPrinter 打开指定的打印机,并获取打印机的句柄 PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 ReadPrinter 从打印机读入数据 ResetDC 重设一个设备场景 ResetPrinter 改变指定打印机的默认数据类型及文档设置 ScheduleJob 提交一个要打印的作业 SetAbortProc 为Windows指定取消函数的地址 SetForm 为指定的表单设置信息 SetJob 对一个打印作业的状态进行控制 SetPrinter 对一台打印机的状态进行控制 SetPrinterData 设置打印机的注册表配置信息 StartDoc 开始一个打印作业 StartDocPrinter 在后台打印的级别启动一个新文档 StartPage 打印一个新页前要先调用这个函数 StartPagePrinter 在打印作业中指定一个新页的开始 WritePrinter 将发送目录中的数据写入打印机 5. API之文本和字体函数 AddFontResource 在Windows系统中添加一种字体资源 CreateFont 用指定的属性创建一种逻辑字体 CreateFontIndirect 用指定的属性创建一种逻辑字体 CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 DrawText 将文本描绘到指定的矩形中 DrawTextEx 与DrawText相似,只是加入了更多的功能 EnumFontFamilies 列举指定设备可用的字体 EnumFontFamiliesEx 列举指定设备可用的字体 EnumFonts 列举指定设备可用的字体 ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸 GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 GetCharWidth 调查字体中一个或多个字符的宽度 GetFontData 接收一种可缩放字体文件的数据 GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息 GetKerningPairs 取得指定字体的字距信息 GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 GetTextAlign 接收一个设备场景当前的文本对齐标志 GetTextCharacterExtra 判断额外字符间距的当前值 GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 GetTextColor 判断当前字体颜色。通常也称为"前景色" GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 GetTextExtentPoint 判断一个字串的大小(范围) GetTextFace 获取一种字体的字样名 GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 PolyTextOut 描绘一系列字串 RemoveFontResource 从Windows系统中删除一种字体资源 SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 TabbedTextOut 支持制表站的一个文本描绘函数 TextOut 文本绘图函数 6. API之菜单函数 AppendMenu 在指定的菜单里添加一个菜单项 CheckMenuItem 复选或撤消复选指定的菜单条目 CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 CreateMenu 创建新菜单 CreatePopupMenu 创建一个空的弹出式菜单 DeleteMenu 删除指定的菜单条目 DestroyMenu 删除指定的菜单 DrawMenuBar 为指定的窗口重画菜单 EnableMenuItem 允许或禁止指定的菜单条目 GetMenu 取得窗口中一个菜单的句柄 GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 GetMenuContextHelpId 取得一个菜单的帮助场景ID GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 GetMenuItemCount 返回菜单中条目(菜单项)的数量 GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 GetMenuState 取得与指定菜单条目状态有关的信息 GetMenuString 取得指定菜单条目的字串 GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 GetSystemMenu 取得指定窗口的系统菜单的句柄 HiliteMenuItem 控制顶级菜单条目的加亮显示状态 InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 InsertMenuItem 插入一个新菜单条目 IsMenu 判断指定的句柄是否为一个菜单的句柄 LoadMenu 从指定的模块或应用程序实例中载入一个菜单 LoadMenuIndirect 载入一个菜单 MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 ModifyMenu 改变菜单条目 RemoveMenu 删除指定的菜单条目 SetMenu 设置窗口菜单 SetMenuContextHelpId 设置一个菜单的帮助场景ID SetMenuDefaultItem 将一个菜单条目设为默认条目 SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√) SetMenuItemInfo 为一个菜单条目设置指定的信息 TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 作者Blog:http://blog.csdn.net/daiguopeng/ 相关文章 用VC 6.0实现串行通信的三种方法 windows运行命令详解 Windows API函数大全四 Windows API函数大全三 Windows API函数大全二
API之网络函数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 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 CompareFileTime 对比两个文件的时间 CopyFile 复制文件 CreateDirectory 创建一个新目录 CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 CreateFileMapping 创建一个新的文件映射对象 DeleteFile 删除指定文件 DeviceIoControl 对设备执行指定的操作 DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值 FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值 FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间 FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 FindClose 关闭由FindFirstFile函数创建的一个搜索句柄 FindFirstFile 根据文件名查找文件 FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 GetBinaryType 判断文件是否可以执行 GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 GetCurrentDirectory 在一个缓冲区中装载当前目录 GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息 GetDriveType 判断一个磁盘驱动器的类型 GetExpandedName 取得一个压缩文件的全名 GetFileAttributes 判断指定文件的属性 GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 GetFileSize 判断文件长度 GetFileTime 取得指定文件的时间信息 GetFileType 在给出文件句柄的前提下,判断文件类型 GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息

2,718

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧