|
list all network printers
i used this loop to list all network printes
dim x as printer
for each x in printers
cboprinters.additem x.devicename
next
but it doesn't seem working.
any idea?
thx, chris
solidworks 2007 (office pro.) sp5.0
testing solidworks 2009 (pro) sp0.0
dell precision t3400
2 cpu (8500) 3.16 ghz, 3.25 gb of ram
window xp pro sp2
nvidia fx 570 6.14.11.6262
chris,
what's the error? if you add a watch on the printers object, do you see your printers?
i have used the for each x in printer method and also enumprinters (search msdn for enumprinters). both work fine for me, but enumprinters method takes more code.
mike
i got the error: user-defined type not defined
see the att. image for ref
thx, chris
solidworks 2007 (office pro.) sp5.0
testing solidworks 2009 (pro) sp0.0
dell precision t3400
2 cpu (8500) 3.16 ghz, 3.25 gb of ram
window xp pro sp2
nvidia fx 570 6.14.11.6262
ok, you are right to look under references. i used visual basic 6.0 with the printers object. with some digging, the reference it needs is "visual basic objects and procedures" (vb6.olb). this is not a listed reference in solidworks vba. that did not stop me though and i used the browse button to manually select vb6.olb. the dim statement then reconized the object, but when it got to the for each x in printer statement, it crashed solidworks.
so the bottom line is, it does not look like you can use the printers object in solidworks vba. vb6 works great with printer object though, so if you have it, that's the way to go. if you don't have vb6, i would suggest trying the enumprinters method. it's a bit involved, but it does work inside solidworks vba.
-mb
i do have vb6
how to load it into the sw vba?
thx, chris
solidworks 2007 (office pro.) sp5.0
testing solidworks 2009 (pro) sp0.0
dell precision t3400
2 cpu (8500) 3.16 ghz, 3.25 gb of ram
window xp pro sp2
nvidia fx 570 6.14.11.6262
paste the following code into a new vb6 project and set your references as shown in the attachment. i'm not sure what you are asking about "load it into the sw vba", but the last couple lines in this example gets the solidworks object and the modeldoc object from vb6.
-mb
private sub main()
dim x as printer
dim swapp as sldworks.sldworks
dim swmodeldoc as modeldoc2
'printers
for each x in printers
if x.devicename = "pdf995" then
set printer = x
printer.papersize = 158
exit for
end if
next
'linking to solidworks
set swapp = createobject("sldworks.application")
set swmodeldoc = swapp.activedoc
end sub
click for full image
michael,
i never have problem with vb6 - so this code works fine
dim x as printer
for each x in printers
cboprinters.additem x.devicename
next
however, when i add them to solidworks vba, i got an error
thx, chris
solidworks 2007 (office pro.) sp5.0
testing solidworks 2009 (pro) sp0.0
dell precision t3400
2 cpu (8500) 3.16 ghz, 3.25 gb of ram
window xp pro sp2
nvidia fx 570 6.14.11.6262
chris,
as far as i can tell it does not look like you can use the "printers" object in solidworks vba. (in a prior post i said i had attempted to add the vb6 reference (vb6.olb) to solidworks vba, but it crashes solidworks). i would suggest using the enumprinters method.
-mike
quick |
|