mirror of
https://github.com/frida/frida-python
synced 2026-06-08 14:16:17 +00:00
34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from Foundation import NSNotFound, NSObject
|
|
|
|
|
|
class ProcessList(NSObject):
|
|
def __new__(cls, device):
|
|
return cls.alloc().initWithDevice_(device)
|
|
|
|
def initWithDevice_(self, device):
|
|
self = self.init()
|
|
self.processes = sorted(device.enumerate_processes(), key=lambda d: d.name.lower())
|
|
self._processNames = []
|
|
self._processIndexByName = {}
|
|
for i, process in enumerate(self.processes):
|
|
lowerName = process.name.lower()
|
|
self._processNames.append(lowerName)
|
|
self._processIndexByName[lowerName] = i
|
|
return self
|
|
|
|
def numberOfItemsInComboBox_(self, comboBox):
|
|
return len(self.processes)
|
|
|
|
def comboBox_objectValueForItemAtIndex_(self, comboBox, index):
|
|
return self.processes[index].name
|
|
|
|
def comboBox_completedString_(self, comboBox, uncompletedString):
|
|
lowerName = uncompletedString.lower()
|
|
for i, name in enumerate(self._processNames):
|
|
if name.startswith(lowerName):
|
|
return self.processes[i].name
|
|
return None
|
|
|
|
def comboBox_indexOfItemWithStringValue_(self, comboBox, value):
|
|
return self._processIndexByName.get(value.lower(), NSNotFound)
|