PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Beitrag von Kiffi »

RSBasic hat geschrieben:Klappt es bei euch auch?
Leider nicht. Das ist abhängig davon, welches 'Layout' man in der IDE eingestellt hat. Mit dem Problem hat auch STARGÅTE im englischen Forum gepostet.

Grüße ... Peter
Hygge
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Beitrag von RSBasic »

Hm schade. Du kannst bei dir mal WinSpy ausführen und schauen (wenn du Zeit hast^^), was für Gadgets bei dir gefunden werden, die du mit Hilfe von WinAPI gezielt ansteuern kannst. Aber wenn sich das Layout je Version und/oder je Einstellung ändert, dann ist das schwieriger.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
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: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Beitrag von ts-soft »

Der Code von RSBasic versagt leider, beim Auffinden.
Ansonsten wird kein Text eingefügt.

Die Sidebar ist ja flexibel, also "Proceduren" muß nicht vorhanden sein, ausserdem könnte sich dort noch
ein zweites Element befinden, welches "ListBox" nutzt, zumindest in späteren Versionen.

Bisher also zu unsicher das ganze, aber es gibt bestimmt noch anderen Möglichkeiten.

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

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Beitrag von RSBasic »

@Kiffi & @ts-soft
Klappt es jetzt bei euch?

Code: Alles auswählen

EnableExplicit

Define Handle
Define msg.s = "huhu"

Handle = FindWindow_(0, "PureBasic 5.30 (x86)") ; Hier dann später: Val( GetEnvironmentVariable("PB_TOOL_MainWindow") )
Handle = FindWindowEx_(Handle, 0, "PureSplitter", 0)
Handle = FindWindowEx_(Handle, 0, "PureSplitter", 0)
Handle = FindWindowEx_(Handle, 0, "ListBox", 0)
If Handle
  SendMessage_(Handle, #LB_ADDSTRING, 0, @msg)
  SendMessage_(Handle, #LB_SETTOPINDEX, SendMessage_(Handle, #LB_GETCOUNT, 0, 0) -1, 0)
EndIf
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Beitrag von Kiffi »

@RSBasic: ja, das funktioniert bei mir jetzt. Wie sieht's bei den anderen aus?

Das größte Problem sehe ich allerdings darin, dass selbst wenn wir einen Weg finden, diese Information irgendwo zuverlässig in der IDE anzuzeigen, einen unverhältnismäßig großen Aufwand betreiben müssen, um den Code auf allen OS lauffähig zu bekommen.

Eigentlich halte ich nach wie vor die MessageRequester-Lösung noch immer für die einfachste (auch wenn sie dröge anmutet). Das Ding kann man so lange offen lassen, wie man will und via 'Return', 'Space' oder 'Escape' quittieren (die Hände sind ja ohnehin an der Tastatur).

Ich habe jetzt den Code im ersten Posting mit dem Tipps von Sicro (vielen Dank dafür :allright:) aktualisiert.

Grüße ... Peter
Hygge
Benutzeravatar
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: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Beitrag von ts-soft »

RSBasic hat geschrieben:@Kiffi & @ts-soft
Klappt es jetzt bei euch?
Jetzt klappt es. Aber ehrlich gesagt, EnumChildWindow_ ist der empfohlene Weg von MS und
FindWindowEx_ sollte man vermeiden (gilt natürlich auch für FindWindow_).

"huhu" sehe ich auch, hatte vorher auf die falsche ListBox geschielt (in der SideBar) :oops:
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.
Bild
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Beitrag von Derren »

RSBasic hat geschrieben:@Kiffi & @ts-soft
Klappt es jetzt bei euch?
Klappt bei mir nicht. PB 5.22
Oder läuft das nur als Tool und nicht direkt ausgeführt?
Signatur und so
Benutzeravatar
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: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Beitrag von ts-soft »

@Derren
Hast Du den String angepaßt, damit er Deine IDE findet?

Code: Alles auswählen

Handle = FindWindow_(0, "PureBasic 5.22 (x86)")
wahrscheinlich
Zuletzt geändert von ts-soft am 21.08.2014 21:31, insgesamt 1-mal geändert.
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.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Beitrag von RSBasic »

Man könnte auch den anderen Code verwenden, aber im Enum-Code muss aber auf jeden Fall besser abgefragt werden, weil sonst passieren kann, dass er die falsche ListBox nimmt, wie bei mir vorhin. Also auch nicht so ganz sicher.
Mal schauen, ob es eine andere Möglichkeit gibt.

@Derren
Falls es nach der Titelanpassung immernoch nicht klappt, dann ist möglicherweise die interne Gadget-Struktur in der von dir verwendete Version anders. Versuche den folgenden Code: http://purebasic.fr/german/viewtopic.ph ... 50#p324950
Ich hatte vorhin auch eine ältere Version (5.21) und da wars anders.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: PB-Tool: Namen der aktuellen Procedure ausgeben lassen

Beitrag von Derren »

@ts-soft: Ne -_- :coderselixir:
Ging trotzdem nicht

@RSBasic: Jop, der Code geht :)


Am besten wär's doch, wenn man Tools in der Sidebar einfügen könnte. So Widget-mäßig. Fred, Freak? :mrgreen:
(dann hab ich auch das Wetter im Blick ohne die IDE verlassen zu müssen :lol: )
Signatur und so
Antworten