Guten Tag,
gibt es in Python ein Modul/Funktion welches herausfindet welcher Browser gerade offen ist?
Also im Grunde einfach den Namen zurückgibt: z.B Chrome, Firefox oder Internet Explorer.
Am liebsten dann noch die URLs von den Tabs die gerade offen sind.
Abfragen welcher Browser offen ist
Nicht mit einer speziell dafür vorgesehenen magischen Funktion. Python ist weder speziell für bestimmte externe Programme, noch für spezielle Betriebssysteme gebaut.Eng1996 hat geschrieben:gibt es in Python ein Modul/Funktion welches herausfindet welcher Browser gerade offen ist?
Vielleicht können wir dir konkretere Ansatzpunkte liefern wenn du uns sagst, ob du bei den Betriebssystemen eine bestimmte Einschränkung vornehmen kannst.
Netterweise sollte man noch erwähnen, dass psutil nicht in der Standardbibliothek vorhanden ist. Du kannst aber psutil im Python Package Index (pypi) finden.darktrym hat geschrieben:Mit psutil.process_iter() kommt man an einer Liste aktiver Prozesse, k.A. wie man da auf die URL kommt.
Was meinst du konkret damit? Wir benutzen hier Windows als angepasstes Image, nur leider wurde vergessen einen "Browserlook" einzubinden so das nur ein Browser verwendet werden darf. Jetzt habe ich die Aufgabe bekommen diesen im Nachhinein selber zu schreiben. Wie ich in auf knapp 1000 Rechner bekomme? Wir haben hier in der It ein Tool mit dem wir auf jedes Verzeichnis auf den Rechnern der Verwaltung zugreifen können und über eine Schnittelle kann man mit ein paar Klicks Programme und Scripts installieren./me hat geschrieben:Vielleicht können wir dir konkretere Ansatzpunkte liefern wenn du uns sagst, ob du bei den Betriebssystemen eine bestimmte Einschränkung vornehmen kannst.
Gut dann schau ich mir erstmal process_iter() an. Danke für den Tipp.
@Eng1996: welche Programme ausgeführt werden dürfen, kann man soweit ich weiß in den Windows Komponenten Richtlinien festlegen. Jede andere Methode, vor allem irgendwelches selbstgeschriebene Zeug, läßt sich mit einfachsten Mitteln aushebeln.
Alle Konsolen abmurksen.Eng1996 hat geschrieben:Gut dann schau ich mir erstmal process_iter() an.
Code: Alles auswählen
import psutil
def main():
consoles = [p for p in psutil.process_iter() if p.as_dict(attrs=['name'])['name'] == 'cmd.exe']
for proc in consoles:
proc.kill()
if __name__ == '__main__':
main()
@/me: Gibt es einen Grund für die komplizierte ``if``-Bedingung? Warum nicht einfach ``p.name == 'cmd.exe'``?
Zumindest bei mir verhält sich das nicht so wie erwartet.BlackJack hat geschrieben:@/me: Gibt es einen Grund für die komplizierte ``if``-Bedingung? Warum nicht einfach ``p.name == 'cmd.exe'``?
Code: Alles auswählen
for proc in psutil.process_iter():
print(proc.name)
Code: Alles auswählen
<bound method Process.name of <psutil.Process(pid=0, name='System Idle Process') at 33128048>>
<bound method Process.name of <psutil.Process(pid=4, name='System') at 33128112>>
<bound method Process.name of <psutil.Process(pid=128) at 33128240>>
<bound method Process.name of <psutil.Process(pid=348) at 33128208>>
[...]
Code: Alles auswählen
for proc in psutil.process_iter():
print(proc.name())
Code: Alles auswählen
System Idle Process
System
Traceback (most recent call last):
File "C:/pyjects/test/libraries/psutil_/r1.py", line 39, in <module>
main()
File "C:/pyjects/test/libraries/psutil_/r1.py", line 27, in main
print(proc.name())
File "C:\Python27\lib\site-packages\psutil\__init__.py", line 490, in name
name = self._proc.name()
File "C:\Python27\lib\site-packages\psutil\_pswindows.py", line 185, in wrapper
return fun(self, *args, **kwargs)
File "C:\Python27\lib\site-packages\psutil\_pswindows.py", line 220, in name
return os.path.basename(self.exe())
File "C:\Python27\lib\site-packages\psutil\_pswindows.py", line 192, in wrapper
raise AccessDenied(self.pid, self._name)
psutil.AccessDenied: (pid=128)
@/me: Das `name()` jetzt eine Methode ist scheint mit `psutil` 2.0 so zu sein. Und das mit der Zugriffsausnahme ist mir unter Linux noch nie passiert, das scheint eine Windows-Eigenschaft zu sein.