[python-win32] Advice about usinf win32com
Marchand, Pascal
Pascal.Marchand at Honeywell.com
Mon Mar 19 06:20:04 EDT 2018
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20180319/7f23c428/attachment-0001.html>
More information about the python-win32
mailing list