Ändern der Titelnamen anderer Programme

Für allgemeine Fragen zur Programmierung mit PureBasic.
Power P
Beiträge: 36
Registriert: 05.08.2014 04:02

Ändern der Titelnamen anderer Programme

Beitrag 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.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Ändern der Titelnamen anderer Programme

Beitrag 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_().
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Power P
Beiträge: 36
Registriert: 05.08.2014 04:02

Re: Ändern der Titelnamen anderer Programme

Beitrag 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.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Ändern der Titelnamen anderer Programme

Beitrag 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. :)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Power P
Beiträge: 36
Registriert: 05.08.2014 04:02

Re: Ändern der Titelnamen anderer Programme

Beitrag 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
Antworten