CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  API 调用

api问题,请各位高手解答,在线等待

楼主fzymr(风中游牧人)2002-01-15 21:14:54 在 PowerBuilder / 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

相关问题

  • 在线等待解答,今天结贴
  • 急求解答,在线等待!!!
  • 送分,在线,解答完就结(在线等待)
  • 如何过滤日期?在线等待!解答马上给分!
  • 希望斑竹帮助解答!!在线等待
  • 小问题,请帮忙!(70分在线等待你的解答)
  • 2个基础问题,急需解答,在线等待,高分!!!!
  • 高手请进,一个菜鸟问题在线等待解答
  • 关于adoquery2的问题,请高手解答!(在线等待)
  • 取数据问题,在线等待哪位大侠解答!

关键词

  • win32
  • 函数
  • 文件夹
  • 结构
  • pb
  • 模式
  • api
  • 版本
  • 打印
  • 数据

得分解答快速导航

  • 帖主:fzymr
  • pbworm
  • ylg007
  • alex_deng

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo