我们都知道在XP中通过[打印机服务器-属性]中可以创建新格式,通过API我也可以实现,但问题是我发现如果把所有打印机都删除后,就无法通过AddForm添加新格式了,因为AddForm需要一个打印机句柄,可是在[打印机服务器-属性]中仍然可以创建新格式,而且该新格式在添加了打印机后依然可以通过EnumForms获取并可以在打印机中使用,我想知道这该如何实现。

解决方案 »

  1.   

    昨晚我曾经想过通过AddPrinter添加一个打印机,然后再AddForm,然后再DeletePrinter,但能力有限,AddPrinter就老是通不过,不知道大侠们是如何实现的。
      

  2.   

    没有必要自己添加阿,可以调出对话框提醒用户没有打印机,无法打印
    Public Function ShowPrinterDialog() As BooleanOn Error Resume Next
    Shell "rundll32 shell32.dll,SHHelpShortcuts_RunDLL AddPrinter", _
      vbNormalFocus
    ShowPrinterDialog = Err.Number = 0End Function
      

  3.   

    虽然楼上是一种思路,但不是正解,人气见少啊,接分吧。另外,我已经测试过了,可以通过AddPrinterDriver-AddPrinter-AddForm-DeletePrinter-DeletePrinterDriver的方法曲线完成这个隐形操作,但有些描猫画虎,很显然,XP的服务器属性中添加Form的方法不是这样的,有待继续研究。
      

  4.   

    把所有打印机都删掉,再Addform试试,不行的
    但服务器属性中却可以..