Titelzeile von Firefox auslese
Titelzeile von Firefox auslese
Hi Leute,
Ich habe vor kurzem den Entschluss gefasst meine Zeit auf zeitfressenden Seiten (facebook youtube, ect.) zu beschränken.
Das ganze würde ich gerne programmiertechnisch lösen. Sodass diese Seiten nur für eine gewisse Zeit geöffnet sein dürfen und danach irgendeine Strafe kommt ^^
Ich hab allerdings keine Ahnung, wie ich erkennen kann, welche websiten gerade geöffnet sind. Ein Ansatz wäre die Titelzeile des momentan geöffneten Fensters auszulesn und zu schauen ob bestimmte Schlagwörter vorkommen. Geht das auslesen mit purebasic bordmitteln? Gibt es bessere Möglichkeiten?
das ganze sollte unter ubuntu laufen. Es wäre schön, wenn es auch unter windows ging, ist aber nicht essentiell.
Hat jemand eine Idee?
Danke,
teamO
Ich habe vor kurzem den Entschluss gefasst meine Zeit auf zeitfressenden Seiten (facebook youtube, ect.) zu beschränken.
Das ganze würde ich gerne programmiertechnisch lösen. Sodass diese Seiten nur für eine gewisse Zeit geöffnet sein dürfen und danach irgendeine Strafe kommt ^^
Ich hab allerdings keine Ahnung, wie ich erkennen kann, welche websiten gerade geöffnet sind. Ein Ansatz wäre die Titelzeile des momentan geöffneten Fensters auszulesn und zu schauen ob bestimmte Schlagwörter vorkommen. Geht das auslesen mit purebasic bordmitteln? Gibt es bessere Möglichkeiten?
das ganze sollte unter ubuntu laufen. Es wäre schön, wenn es auch unter windows ging, ist aber nicht essentiell.
Hat jemand eine Idee?
Danke,
teamO
Re: Titelzeile von Firefox auslese
Leider nein. Ich hätte ein WinAPI-Befehl vorgeschlagen, aber du möchtest ja lieber unter Ubuntu ermitteln.teamO hat geschrieben:Geht das auslesen mit purebasic bordmitteln?
Re: Titelzeile von Firefox auslese
für ubuntu müsste es auch was wie die winAPI geben, oder?
ist es für normalsterbliche möglich damit umzugehen?
im Zweifelsfall würde ich es jetzt nur für ubuntu programmieren. Wäre auch schon ein Anfang.
ist es für normalsterbliche möglich damit umzugehen?
im Zweifelsfall würde ich es jetzt nur für ubuntu programmieren. Wäre auch schon ein Anfang.
Re: Titelzeile von Firefox auslese
Ja für Ubuntu (Linux) gibt es auch eine API-Schnittstelle, aber damit kenn' ich mich nicht aus und kann dir auch nicht helfen.
Wenn du zwar APIs verwenden möchtest, aber dennoch gewährleisten möchtest, dass spezifische Funktionen überall angeboten werden, kannst du dein Code etwa so aufbauen:
Wenn du zwar APIs verwenden möchtest, aber dennoch gewährleisten möchtest, dass spezifische Funktionen überall angeboten werden, kannst du dein Code etwa so aufbauen:
Code: Alles auswählen
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
;Win32 API[...]
CompilerCase #PB_OS_Linux
;Linux API[...]
CompilerEndSelect
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Titelzeile von Firefox auslese
Warum nicht einfach einen eigenen Browser programmieren? WebGadget bietet doch viele Möglichkeiten.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: Titelzeile von Firefox auslese
Unter Linux gibts Xlib für X-Server. Da Ubuntu aber ja was ganz eigenes sein will hat man auf einen X-Server verzichtet und Unity eingebaut. D.h. da musst du wieder zwischen 2 APIs unterscheiden
. Viel spaß. Bin schon am Wrappen der Xlib aus Motivationsgründen gescheitert. Da nutze ich doch lieber eine Programmiersprache in der es bereits Anbindungen dafür gibt.

Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Re: Titelzeile von Firefox auslese
Ich habe einfach mal mein Ubuntu 10.10 in VirtualBox gestartet und einen Versuch gewagt. Der Code funktioniert bei mir und sollte auch noch unter Ubuntu 11.04 funktionieren, da hier Standardmäßig ein X Server verwendet wird. Die Umstellung auf Wayland (dem XServer Ersatz) ist noch nicht vollzogen kann aber optional installiert werden.
Damit der Code funktioniert, brauchst du noch die passenden Libs, welche mit folgendem Befehl installiert werden können:
Und hier der Code:
Mfg,
Dark
Damit der Code funktioniert, brauchst du noch die passenden Libs, welche mit folgendem Befehl installiert werden können:
Code: Alles auswählen
sudo apt-get install xorg-dev
Code: Alles auswählen
EnableExplicit
Structure children
*window[0]
EndStructure
Structure XTextProperty
*value
enconding.i
format.i
nitems.l
EndStructure
ImportC "/usr/lib/libX11.a"
XOpenDisplay (*Display_name)
XDefaultRootWindow (*Display)
XQueryTree (*Display, *Window, *root_return, *parent_return, *children_return.children, *nchildren_return.i)
XFetchName (*Display, *Window, *Name)
XInternAtom (*Display, atom_name.p-ascii, only_if_exists.i)
XGetWindowProperty (*Display, *Window, property.i, long_offset.i, long_length.i, delete.i, req_type.i, *actual_type_return.i, *actual_format_return.i, *nitems_return, *bytes_after_return, *prop_return)
XGetTextProperty (*Display, *Window, *text_prop_return, property.i)
XCloseDisplay (*Display)
XFree (*Memory)
EndImport
;Wir brauchen die libs nur um die Abhängigkeiten aufzulösen
ImportC "/usr/lib/libxcb.a"
EndImport
ImportC "/usr/lib/libXau.a"
EndImport
ImportC "/usr/lib/libXdmcp.a"
EndImport
Global _NET_WM_VISIBLE_NAME.i
Global _NET_WM_NAME.i
Global WM_NAME.i
Global UTF8_STRING.i
Procedure.s GetWindowName(*Display, *Window)
Protected Result.s
If UTF8_STRING
Protected Type.i
Protected Format.i
Protected nItems.i
Protected bytes_after.i
Protected *Name
If _NET_WM_VISIBLE_NAME
If XGetWindowProperty(*Display, *Window, _NET_WM_VISIBLE_NAME, 0, 256, #False, UTF8_STRING, @Type, @Format, @nItems, @bytes_after, @*Name) = 0
If Type = UTF8_STRING And nItems > 0 And format = 8
Result = PeekS(*Name, -1, #PB_UTF8)
XFree(*Name)
ProcedureReturn Result
EndIf
XFree(*Name)
EndIf
If XGetWindowProperty(*Display, *Window, _NET_WM_NAME, 0, 256, #False, UTF8_STRING, @Type, @Format, @nItems, @bytes_after, @*Name) = 0
If Type = UTF8_STRING And nItems > 0 And format = 8
Result = PeekS(*Name, -1, #PB_UTF8)
XFree(*Name)
ProcedureReturn Result
EndIf
XFree(*Name)
EndIf
EndIf
EndIf
Protected Text.XTextProperty
If XGetTextProperty(*Display, *Window, @Text, WM_NAME)
If text\value
If text\format = 8 And text\enconding = UTF8_STRING And text\nitems > 0
Result = PeekS(text\value, -1, #PB_UTF8)
EndIf
XFree(text\value)
EndIf
EndIf
ProcedureReturn Result
EndProcedure
Procedure Enumerate(*Display, *Window)
Protected *childrens.children
Protected nchildren.i = 256
Protected *root
Protected *parent
If XQueryTree(*Display, *Window, @*root, @*parent, @*childrens, @nchildren)
If *childrens
If nchildren > 0
Protected i.i
For i = 0 To nchildren -1
Protected Name.s = GetWindowName(*Display, *childrens\window[i])
If Name <> ""
If FindString(Name, "Mozilla Firefox", 1)
Debug ">>>> " + Name
Else
Debug Name
EndIf
EndIf
Enumerate(*Display, *childrens\window[i])
Next
EndIf
Xfree(*childrens)
EndIf
EndIf
EndProcedure
Define *Display = XOpenDisplay(0)
If *Display
Define *RootWindow = XDefaultRootWindow(*Display)
_NET_WM_VISIBLE_NAME = XInternAtom(*Display, "_NET_WM_VISIBLE_NAME", #True)
_NET_WM_NAME = XInternAtom(*Display, "_NET_WM_NAME", #True)
WM_NAME = XInternAtom(*Display, "WM_NAME", #True)
UTF8_STRING = XInternAtom(*Display, "UTF8_STRING", #True)
Enumerate(*Display, *RootWindow)
XCloseDisplay(*Display)
EndIf
Dark
Mein Blog: http://fds-team.de/cms/
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Titelzeile von Firefox auslese
Funktioniert unter Ubuntu 11.04 nicht, libX11.a usw. fehlen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Titelzeile von Firefox auslese
Darks Beispiel funktioniert einwandfrei unter Ubuntu 11.04, wenn man sich ein bißchents-soft hat geschrieben:Funktioniert unter Ubuntu 11.04 nicht, libX11.a usw. fehlen.
mehr Mühe gibt...

Neben dem von Dark beschriebenen
zur Installation der unbedingt benötigten X-Server Libs muß unter Ubuntu 11.04 nochDark hat geschrieben:sudo apt-get install xorg-dev
der Pfad zu den Libs angepaßt werden. Die 4 Zeilen mit
ImportC "/usr/lib/lib..."
müssen in
ImportC "/usr/lib/i386-linux-gnu/lib..."
abgeändert werden...

Re: Titelzeile von Firefox auslese
@Dark:
wow! gleich ein funktionierender code!
vielen Dank!
das hätte meine Fähigkeiten nun doch deutlich überstiegen ^^
ganz verstanden hab ich aber noch nicht, was da abgeht. kommen die Funktionen mit dem X am anfang von dem XServer?
muss mir das ganze noch ein bisschen anschauen und versuchen es nachzuvollziehen
@all: hab es schon mal gesagt, will es aber nochmal sagen: echt eine super community hier!
wow! gleich ein funktionierender code!
vielen Dank!

das hätte meine Fähigkeiten nun doch deutlich überstiegen ^^
ganz verstanden hab ich aber noch nicht, was da abgeht. kommen die Funktionen mit dem X am anfang von dem XServer?
muss mir das ganze noch ein bisschen anschauen und versuchen es nachzuvollziehen

@all: hab es schon mal gesagt, will es aber nochmal sagen: echt eine super community hier!