Пример #1
0
def processes():
    """processes returns a list of all active processes running on this computer and their creators."""
    finder = _getfinder()
    args = {}
    attrs = {}
    processnames = []
    processnumbers = []
    creators = []
    partitions = []
    used = []
    ## get the processnames or else the processnumbers
    args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prcs'),
                                           form="indx",
                                           seld=aetypes.Unknown(
                                               'abso', "all "),
                                           fr=None)
    _reply, args, attrs = finder.send('core', 'getd', args, attrs)
    if args.has_key('errn'):
        raise Error, aetools.decodeerror(args)
    p = []
    if args.has_key('----'):
        p = args['----']
        for proc in p:
            if hasattr(proc, 'seld'):
                # it has a real name
                processnames.append(proc.seld)
            elif hasattr(proc, 'type'):
                if proc.type == "psn ":
                    # it has a process number
                    processnumbers.append(proc.data)
    ## get the creators
    args = {}
    attrs = {}
    aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('prcs'),
                                      form="indx",
                                      seld=aetypes.Unknown('abso', "all "),
                                      fr=None)
    args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prop'),
                                           form="prop",
                                           seld=aetypes.Type('fcrt'),
                                           fr=aeobj_0)
    _reply, args, attrs = finder.send('core', 'getd', args, attrs)
    if args.has_key('errn'):
        raise Error, aetools.decodeerror(_arg)
    if args.has_key('----'):
        p = args['----']
        creators = p[:]
    ## concatenate in one dict
    result = []
    if len(processnames) > len(processnumbers):
        data = processnames
    else:
        data = processnumbers
    for i in range(len(creators)):
        result.append((data[i], creators[i]))
    return result
Пример #2
0
def processes():
    """processes returns a list of all active processes running on this computer and their creators."""
    finder = _getfinder()
    args = {}
    attrs = {}
    processnames = []
    processnumbers = []
    creators = []
    partitions = []
    used = []
    args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prcs'),
                                           form='indx',
                                           seld=aetypes.Unknown(
                                               'abso', 'all '),
                                           fr=None)
    _reply, args, attrs = finder.send('core', 'getd', args, attrs)
    if 'errn' in args:
        raise Error, aetools.decodeerror(args)
    p = []
    if '----' in args:
        p = args['----']
        for proc in p:
            if hasattr(proc, 'seld'):
                processnames.append(proc.seld)
            elif hasattr(proc, 'type'):
                if proc.type == 'psn ':
                    processnumbers.append(proc.data)

    args = {}
    attrs = {}
    aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('prcs'),
                                      form='indx',
                                      seld=aetypes.Unknown('abso', 'all '),
                                      fr=None)
    args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prop'),
                                           form='prop',
                                           seld=aetypes.Type('fcrt'),
                                           fr=aeobj_0)
    _reply, args, attrs = finder.send('core', 'getd', args, attrs)
    if 'errn' in args:
        raise Error, aetools.decodeerror(_arg)
    if '----' in args:
        p = args['----']
        creators = p[:]
    result = []
    if len(processnames) > len(processnumbers):
        data = processnames
    else:
        data = processnumbers
    for i in range(len(creators)):
        result.append((data[i], creators[i]))

    return result
Пример #3
0
class TestAepack(unittest.TestCase):
    OBJECTS = [
        aetypes.Enum('enum'),
        aetypes.Type('type'),
        aetypes.Keyword('kwrd'),
        aetypes.Range(1, 10),
        aetypes.Comparison(1, '<   ', 10),
        aetypes.Logical('not ', 1),
        aetypes.IntlText(0, 0, 'international text'),
        aetypes.IntlWritingCode(0,0),
        aetypes.QDPoint(50,100),
        aetypes.QDRectangle(50,100,150,200),
        aetypes.RGBColor(0x7000, 0x6000, 0x5000),
        aetypes.Unknown('xxxx', 'unknown type data'),
        aetypes.Character(1),
        aetypes.Character(2, aetypes.Line(2)),
    ]

    def test_roundtrip_string(self):
        o = 'a string'
        packed = aepack.pack(o)
        unpacked = aepack.unpack(packed)
        self.assertEqual(o, unpacked)

    def test_roundtrip_int(self):
        o = 12
        packed = aepack.pack(o)
        unpacked = aepack.unpack(packed)
        self.assertEqual(o, unpacked)

    def test_roundtrip_float(self):
        o = 12.1
        packed = aepack.pack(o)
        unpacked = aepack.unpack(packed)
        self.assertEqual(o, unpacked)

    def test_roundtrip_None(self):
        o = None
        packed = aepack.pack(o)
        unpacked = aepack.unpack(packed)
        self.assertEqual(o, unpacked)

    def test_roundtrip_aeobjects(self):
        for o in self.OBJECTS:
            packed = aepack.pack(o)
            unpacked = aepack.unpack(packed)
            self.assertEqual(repr(o), repr(unpacked))

    def test_roundtrip_FSSpec(self):
        try:
            import Carbon.File
        except:
            return
        o = Carbon.File.FSSpec(os.curdir)
        packed = aepack.pack(o)
        unpacked = aepack.unpack(packed)
        self.assertEqual(o.as_pathname(), unpacked.as_pathname())

    def test_roundtrip_Alias(self):
        try:
            import Carbon.File
        except:
            return
        o = Carbon.File.FSSpec(os.curdir).NewAliasMinimal()
        packed = aepack.pack(o)
        unpacked = aepack.unpack(packed)
        self.assertEqual(o.FSResolveAlias(None)[0].as_pathname(),
            unpacked.FSResolveAlias(None)[0].as_pathname())
Пример #4
0
def mkunknown(type, data):
    return aetypes.Unknown(type, data)
Пример #5
0
"""Utility routines depending on the finder,
Пример #6
0
'''
Пример #7
0
"""Tools for use in AppleEvent clients and servers: