Seite 1 von 1

Ändern der Titelnamen anderer Programme

Verfasst: 09.03.2017 05:49
von Power P
Hallo...

...mit der Software AutoIT kann man z.B. WordPad starten und den Namen in der Titelleiste ändern. Funktioniert das auch mit PureBasic?
Mit RunProgram() lassen sich zwar Programme öffnen, aber wie man den Titel des Programmes bearbeiten kann, habe ich noch nicht herausgefunden.

Ich habe dass in einem AutoIt-Tutorial gesehen und finde diese und weitere Möglichkeiten recht interessant.

Re: Ändern der Titelnamen anderer Programme

Verfasst: 09.03.2017 10:17
von RSBasic
Power P hat geschrieben:Funktioniert das auch mit PureBasic?
Aber natürlich funktioniert es mit PB bzw. mit Hilfe der API-Schnittstelle des jeweiligen Betriebssystems.

Hier ein Beispielcode für Windows:

Code: Alles auswählen

EnableExplicit

Define Handle

RunProgram("cmd.exe")
Delay(2000)
Handle = FindWindow_("ConsoleWindowClass", 0)
SendMessage_(Handle, #WM_SETTEXT, 0, "Power P ist Gott und hat den Fenstertitel eines Programms geändert :O Darf er das? :D")
Um den Klassennamen eines beliebigen Fensters ermitteln zu können, brauchst du dafür spezielle Tools, wie z.B.:
ShoWin: http://www.rsbasic.de/temp/ShoWin.exe
WinSpy: http://www.rsbasic.de/temp/WinSpy.exe

Mit Hilfe des Klassennamens kannst du mit FindWindow_() das Fenster finden. Oder noch besser mit EnumWindows_().

Re: Ändern der Titelnamen anderer Programme

Verfasst: 09.03.2017 17:57
von Power P
Vielen Dank, das funktioniert ja super...

Naja Gott bin ich glaube nicht, sonst hätte ich die Frage garnicht erst stellen müssen. :lol:

Mit der API-Schnittstelle werd ich mich mal mehr beschäftigen.
Gibt es da ein gutes Tutorial? Irgendwie verstehe ich den Zusammenhang mit PureBasic und der WinAPI nicht so richtig. In der PureBasic Hilfe ist da nichts zu finden.

Re: Ändern der Titelnamen anderer Programme

Verfasst: 09.03.2017 20:06
von RSBasic
WinAPI ist eine von Microsoft entwickelte Programmiersschnittstelle und ist deshalb auch nur unter Windows verfügbar. Es hat nichts mit PB zu tun, sondern ist von Microsoft. PB unterstützt es nur, damit man auch in PB auf die vielen nützlichen WinAPI-Funktionen zugreifen kann.
Mit der WinAPI hast du viel mehr Möglichkeiten, als mit PB, da PB nur ein Bruchteil unterstützt und anbietet.
WinAPI-Funktionen werden in PB am Ende immer mit dem Unterstrich gekenntzeichnet. Beispiel: SendMessage_([...])

Wenn du Hilfe bezüglich dieser Schnittstelle brauchst, musst du auf der MSDN-Seite von Microsoft suchen: https://msdn.microsoft.com/de-de/librar ... s.85).aspx
Weitere nützliche Links:
Liste der Funktionen von A bis Z: https://msdn.microsoft.com/en-us/library/aa383688.aspx
Liste der Funktionen in Kategorien: https://msdn.microsoft.com/en-us/library/aa383686.aspx

Die Hilfe-Seiten sind immer oder meistens auf Englisch.

Wenn du Beispielcodes brauchst, kann ich dir meine WinAPI Library empfehlen (sorry für Eigenwerbung :( ): http://www.rsbasic.de/winapi-library/
Die Bibliothek kannst du auch herunterladen und offline nutzen: http://www.rsbasic.de/download/
Meine Bibliothek enthält bis jetzt 1.077 Beispielcodes.

Falls du API-Beispielcodes für Linux brauchst, gibt es von Omi auch eine Sammlung: http://www.chabba.de

Ansonsten wenn du nicht weiter kommst, kannst du gerne hier im Forum fragen. Ich hoffe, ich konnte dir weiterhelfen. :)

Re: Ändern der Titelnamen anderer Programme

Verfasst: 10.03.2017 09:01
von Power P
Danke für die ausführliche Antwort und den vielen Links.

Deine Beispielcodes finde ich dabei besonders hilfreich. Na dann habe ich ja erstmal einiges zu tun. :D