api问题,请各位高手解答,在线等待
1,我用api函数setprinter()设置了纸张的大小(对一个什么结构的paperwidth,paperlength赋值),并用getprinter()函数检验,表明确实成功了,但是数据窗口打印预览还是默认的纸张大小,为什么?(打印机可以自定义纸张大小)
2,有没有什么api可以复制文件夹(文件夹中包含子文件夹)?
问题点数:50、回复次数:30Top
1 楼fzymr(风中游牧人)回复于 2002-01-15 23:50:08 得分 0
救命!!!!!Top
2 楼pbworm(pb菜鸟)回复于 2002-01-16 09:44:58 得分 20
1、你打印的时候纸张的大小符合标准吗?
2、好象没有Top
3 楼fzymr(风中游牧人)回复于 2002-01-16 09:47:28 得分 0
自定义的纸张大小在范围之内Top
4 楼ylb_and_xy(黑狐狸)回复于 2002-01-16 09:49:49 得分 0
2.需要使用几个API函数:in msdn:Platform SDK\Win32 API\Reference
\Functions in Alphabetical Order\Functions by Category\File I/O Functions
Top
5 楼pbworm(pb菜鸟)回复于 2002-01-16 09:56:25 得分 0
2、使用moveFile可以移动文件夹,但是不可以复制。Top
6 楼fzymr(风中游牧人)回复于 2002-01-16 10:04:54 得分 0
to pbworm(pb菜鸟)、ylb_and_xy(蜗牛先生)
我是准备做一个版本自动更新的程序,如果服务器的版本升级后,客户机从服务器上拷贝最新程序,movefile好像不行。在msdn上有一个函数getfirstfile,但是有结构参数不知道该怎么定义,主要是结构中的元素的数据类型pb中没有Top
7 楼pbworm(pb菜鸟)回复于 2002-01-16 10:32:42 得分 0
getfirstfile??
没有找到啊?Top
8 楼pbworm(pb菜鸟)回复于 2002-01-16 10:37:23 得分 0
老兄,你的文件要是不多的话使用copyFile也是可以的,不过很麻烦了Top
9 楼linda_gao(linda)回复于 2002-01-16 10:40:11 得分 0
in print specifications , set paper size to user defined or default.Top
10 楼fzymr(风中游牧人)回复于 2002-01-16 10:49:01 得分 0
to pbworm(pb菜鸟)
不好意思,弄错了,是FindFirstFile(),它的参数中有一个结构:
WIN32_FIND_DATA应该怎么定义?
Top
11 楼ylg007(你注意到早晨的霞光吗?)回复于 2002-01-16 10:50:18 得分 15
to: fzymr(风中游牧人)
我也需要一个版本自动更新的程序,做好能不能给我一份。
ylg007@sina.comTop
12 楼alex_deng(天天天蓝)回复于 2002-01-16 10:58:12 得分 0
实际上不同的打印机对自定义纸张的支持是不一样的,可以用api函数察看所安装的打印机对纸张的支持情况,必须要返回256才支持自定义纸张,随便一个打印机硬是要设定其papersize = 256 是不行的。据我目前所知:只有zebra系列打印机(用seagull开发的驱程)才能真正的支持自定义纸张大小。其他打印机均不支持(不过我还不太清楚微软的office是怎么让任何打印机都支持自定义的)。我建议你还是先安装zebra系列打印机(用seagull开发的驱程),在试试设定papersize = 256 ,之后在设定纸张大小,看看如何。
setprinter()很弱智的,明明修改没有生效,返回值却是正确的
这是我的个人看法,其他各位要是有什么心得,可以同我交流:Alex@trans-cosmos.com.cn Top
13 楼fzymr(风中游牧人)回复于 2002-01-16 10:58:25 得分 0
做好了当然没有问题!Top
14 楼fzymr(风中游牧人)回复于 2002-01-16 11:03:13 得分 0
to alex_deng(爱一个人好难!)
可是我在"打印机属性"中自定义了几种打印纸,却没有问题!Top
15 楼pbworm(pb菜鸟)回复于 2002-01-16 11:18:11 得分 0
to fzymr(风中游牧人)
WIN32_FIND_DATA是一个结构,你定义一个结构不可以吗?
Top
16 楼fzymr(风中游牧人)回复于 2002-01-16 11:23:33 得分 0
to pbworm(pb菜鸟)
可是结构中的filetime类型怎么定义?我很菜,不好意思,能不能帮忙定义一下?谢谢了Top
17 楼pbworm(pb菜鸟)回复于 2002-01-16 11:35:11 得分 0
$PBExportHeader$str_test.srs
global type str_test from structure
unsignedlong lowDataTime
unsignedlong highDataTime
end type
这个我没有用过,不过应该是这样定义的。你写到文件name.srs中,再导入就可以了。Top
18 楼pbworm(pb菜鸟)回复于 2002-01-16 11:37:34 得分 0
其实这个类型也是一个结构。Top
19 楼alex_deng(天天天蓝)回复于 2002-01-16 13:32:16 得分 15
to fzymr(风中游牧人):
什么叫“在"打印机属性"中自定义了几种打印纸,却没有问题”?
我没明白Top
20 楼fzymr(风中游牧人)回复于 2002-01-16 14:01:18 得分 0
在控制面板中的打印机中设置了纸张的大小,然后设置为默认,在数据窗口预览和打印时都是我定义的纸张大小Top
21 楼alex_deng(天天天蓝)回复于 2002-01-16 14:37:16 得分 0
那是当然了
我指的自定义是随意设定纸张的大小 如100X207,58X124等等
Top
22 楼fzymr(风中游牧人)回复于 2002-01-16 15:15:13 得分 0
对阿,纸张大小是我随意设置的Top
23 楼alex_deng(天天天蓝)回复于 2002-01-16 15:28:20 得分 0
什么打印机?
Top
24 楼fzymr(风中游牧人)回复于 2002-01-16 15:34:24 得分 0
松下kx-p1121,老机子了Top
25 楼alex_deng(天天天蓝)回复于 2002-01-16 15:42:17 得分 0
这样的话你的问题就和我的问题一样了
有用pb调用api-setprinter研究了两星期,结果跟你的一样
但是我手头的一个mfc写的函数就没问题,我看过了其实也是用setprinter
语法也差不多——我差不多逐一将原话翻译成pb的,还是不行
可能微软做了什么手脚Top
26 楼alex_deng(天天天蓝)回复于 2002-01-16 15:44:16 得分 0
我的任务已经搁浅了,
祝愿你的早日有答案!
最后请给我加几分,因为我一共才3分Top
27 楼fzymr(风中游牧人)回复于 2002-01-16 15:50:33 得分 0
to alex_deng(爱一个人好难!):
等会儿再给分吧,我现在比较忙!
真是同病相怜,我也被困扰了好久了,难道没人肯告诉我吗?Top
28 楼alex_deng(天天天蓝)回复于 2002-01-16 16:29:55 得分 0
没有问题
毕竟,解决了这个问题对我们来说都很重要Top
29 楼fzymr(风中游牧人)回复于 2002-01-16 17:36:12 得分 0
还有,我从打印机手册上知道了我的打印机有两种仿真模式:
1、epson lq-850模式
2、ibm proprinter x24e模式
打印机预设为epson模式,然后又讲了在epson lq 850下的软件命令,其中纸张格式选择栏中讲了设置纸张大小的命令如下:
以英寸为单位设置页长: ESC "C" 0n (0<=n<=22) (十进制)
然后我写了一下程序:
lONG job
Job = PrintOpen( )
PrintSend(Job," ~ h1BC ~ 03 ~ ")
Print(Job, "1111111111")
PrintSend(Job)
PrintClose(Job)
但是,打印机翻页时没有按printsend设定的页长走纸,是不是printsend写错了,请指教!
Top
30 楼dolt(笨小孩)回复于 2002-01-16 19:35:59 得分 0
用mHand.dll吧Top




