Hello,
I don't know how to do something with the win32com module (or maybe with
another...).
I post my problem on stack overflow but I didn't get any reply.
I do that piece of code for a project in my job for testing some possibilities
of a zebra scanner, I chose python because it's interpreted and very easy for
doing tests and because I know it a bit and I didn't want to invest time and
money in Visual studio.
I'm trying to discuss with a Zebra RFID/bar code scanner using the WMI provider
as recommended in dev guides, it runs fairly well with properties, I got method
names and parameters too, but I didn't reach to make run method with byref
parameter e.g. method(inpar, outpar) both parameters are strings (xml message),
the function returns a status code correctly, see code below.
I searched on the net without finding solution, I give the corresponding .net
c# code to call the method after python code (from the prog examples of the SDK
guide for scanner), if it can help you to help me
Python code
# -*- coding: utf-8 -*-
import win32com.client
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
strComputer = "."
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
oos = objSWbemServices.ExecQuery("SELECT * FROM Symbol_BarcodeScanner")
oo = oos[0]
# list all object properties
for op in oo.Properties_:
print(op.Name, op.Value)
# list all object methods
for om in oo.Methods_:
out_parameter_names = []
in_parameters_names = []
if om.OutParameters:
out_parameter_names = [(i.Name, i.IsArray) for i in
om.OutParameters.Properties_]
if om.InParameters:
in_parameters_names = [(i.Name, i.IsArray) for i in
om.InParameters.Properties_]
print('func : ',om.Name)
print('In : ',in_parameters_names)
print('Out : ',out_parameter_names)
inxml="<attrib_list>533,534</attrib_list>"
outxml=""
oo._FlagAsMethod('GetAttributes')
a = = oo.GetAttributes(inxml,outxml)
.net C# code to call a method.
ManagementObject o = new ManagementObject();
o.Scope = mgmtScope;
o.Path = new
ManagementPath("Symbol_BarcodeScanner.PartNumber='" + strPartNumber +
"',SerialNumber='" + strSerialNumber + "'");
// Create ManagementBaseObject and get the parameters to the Method
"GetAttributes"
inParams = o.GetMethodParameters("GetAttributes");
// Fill the Parameter "attNumberList" with the
attributeList string
inParams["attNumberList"] = attributeList;
// Invoke the "GetAttributes" Method and save the
result to a new ManagementBaseObject
outparams = o.InvokeMethod("GetAttributes", inParams,
null);
Thanks for your help
Regards.
Pascal.
_______________________________________________
python-win32 mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-win32