use var to form name of object
gel
geli at tasmail.com
Wed Jul 5 21:22:19 EDT 2006
Bruno Desthuilliers wrote:
> gel wrote:
> > gel wrote:
> >
> >
> >>Hi
> >>I would like to pass a variable in and use it as part of a name of an
> >>object, something like below, where I pass the variable software into
> >>the function and use it as part of the name of the object so that I can
> >>append to it using the other vairables. Any suggestions?
> >>
> >>
> >> def a_d(self,software,mac,time,extra):
> >> global d_software
> >> d_software.software.append([mac,time,extra])
> >
> >
> > I sorted it out
> >
> Then do a favour to other persons facing the same problem : share your
> solution. As a side effect, you'll also have your code checked by lot of
> confirmed Python programmer !-)
>
> --
> bruno desthuilliers
> python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
> p in 'onurb at xiludom.gro'.split('@')])"
OK, I would love to, the reason I did not was for fear of wasting
peoples time with basic stuff... I ended up doing it a bit differently
what I am doing is using pyro to make a package that can be run on PCs
to control how many PC on a network are running a piece of software,the
function
def a_d(self,software,mac):
global d_software
d_software[software][0].append(mac)
return d_software
is in the module on the pyro server. When this object is used on the
client it adds the clients mac address to the dictionary list. When
another client is runs the software being watched it checks how many
are already running by counting the number of mac addresses already in
there. If the number of PCs already running the software is below the
number allowed, which is set in the pyro module it is allowed to
continue to run it. If the limit has been reached the client software
kills the software, Below is the client and the pyro module...
Client
import wmi
import time
import Pyro.core
c = wmi.WMI()
o=Pyro.core.getAttrProxyForURI('PYRONAME://:Default.test')
for interface in c.Win32_NetworkAdapterConfiguration (IPEnabled=1):
# print interface.Description, interface.MACAddress
for ip_address in interface.IPAddress:
mac = interface.MACAddress
mac = 1
current_time = time.time()
sw = "notepad.exe"
#o.a_d(sw, mac, current_time, "Maybe More Extra Stuff too")
while 1:
time.sleep(1.0)
ps_li=[]
for process in c.Win32_Process ():
# print process.ProcessId, process.Name
ps_li += [process.Name]
if sw in ps_li:
if len(o.r_d()[sw][0]) != 0:
if mac in o.r_d()[sw][0]:
print "Already in there"
else:
#ps_id = ps_li.index(sw)
if len(o.r_d()[sw][0]) < o.r_l()[sw]:
o.a_d(sw, mac)
print "There are some"
print o.r_d()
else:
print "There are none"
for process in c.Win32_Process ():
if process.Name == "notepad.exe":
print process.ProcessId, process.Name
result = process.Terminate ()
print process.Name +" has been killed"
else:
o.a_d(sw, mac)
print "First in"
else:
print sw + " not running"
pyro module
class testclass:
import wmi
import time
global d_software
global l_notepad
global d_licence_numbers
d_licence_numbers = {"notepad.exe":1, "Adobe":1}
l_notepad =[]
d_software = {"notepad.exe":[[],[]], "Adobe":[[],[]]}
def r_len_d(self):
return len(d_licence_numbers)
def a_d(self,software,mac):
global d_software
d_software[software][0].append(mac)
return d_software
def r_d(self):
return d_software
def r_l(self):
return d_licence_numbers
More information about the Python-list
mailing list