Programmfenster von fremden Programm ändern
Programmfenster von fremden Programm ändern
Hallo,
ich möchte mit einem unter Purebasic geschriebenen Programm die Fenstergröße von einem fremden Programm ändern. Der Programmname ist bekannt und bleibt immer gleich.
Ist dieses Vorhaben machbar? Wie schwer ist es und wie könnte man vorgehen? Bisher habe ich noch keine Möglichkeit gefunden auf andere Programme zuzugreifen.
Grüße moin
ich möchte mit einem unter Purebasic geschriebenen Programm die Fenstergröße von einem fremden Programm ändern. Der Programmname ist bekannt und bleibt immer gleich.
Ist dieses Vorhaben machbar? Wie schwer ist es und wie könnte man vorgehen? Bisher habe ich noch keine Möglichkeit gefunden auf andere Programme zuzugreifen.
Grüße moin
- 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: Programmfenster von fremden Programm ändern
Ich nehme mal an, unter Windows. Also der einfache Weg:
FindWindow_() API
um das Handle zu ermitteln und:
MoveWindow_() API
um das Fenster zu verschieben / grösse zu ändern.
Gruß
Thomas
// edit - primitives Beispiel:
FindWindow_() API
um das Handle zu ermitteln und:
MoveWindow_() API
um das Fenster zu verschieben / grösse zu ändern.
Gruß
Thomas
// edit - primitives Beispiel:
Code: Alles auswählen
EnableExplicit
Define hWnd
RunProgram("notepad.exe")
Delay(200)
hWnd = FindWindow_(0, "Unbenannt - Editor")
If hWnd
MoveWindow_(hWnd, 10, 10, 300, 300, #False)
EndIf
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: Programmfenster von fremden Programm ändern
Hallo Thomas,
eine Nachfrage hätte ich noch:
Wenn ich diesen Code von einem Fenster aus ausrufen möchte (Button wird gedrückt, ...) funktioniert er plötzlich nicht mehr.
Kann es sein, das mein neues Programm mit dem Fenster-Änderungs-Code erst inaktiv geschaltet werden muss und das zu verändernde Fenster aktiv werden muss?
Grüße moin
eine Nachfrage hätte ich noch:
Wenn ich diesen Code von einem Fenster aus ausrufen möchte (Button wird gedrückt, ...) funktioniert er plötzlich nicht mehr.
Kann es sein, das mein neues Programm mit dem Fenster-Änderungs-Code erst inaktiv geschaltet werden muss und das zu verändernde Fenster aktiv werden muss?
Grüße moin
Re: Programmfenster von fremden Programm ändern
Nein.
Da hast du irgendwo einen Fehler.
Da hast du irgendwo einen Fehler.
Code: Alles auswählen
EnableExplicit
Define hWnd
RunProgram("notepad.exe")
Delay(200)
OpenWindow(0, 0, 0, 200, 100, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
ButtonGadget(0, 0, 0, 200, 100, "Drück Mich")
Repeat
Select WaitWindowEvent(20)
Case #PB_Event_Gadget
If EventGadget()=0
hWnd = FindWindow_(0, "Unbenannt - Editor")
If hWnd
MoveWindow_(hWnd, 10, 10, 300, 300, #False)
EndIf
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Signatur und so
Re: Programmfenster von fremden Programm ändern
Vielen Dank.
Ich werde erst einmal eine Nacht darüber schlafen. Dann lässt sich der Fehler leichter finden
Grüße moin
Ich werde erst einmal eine Nacht darüber schlafen. Dann lässt sich der Fehler leichter finden

Grüße moin
-
- Beiträge: 234
- Registriert: 27.02.2007 10:54
- Wohnort: Germany
Re: Programmfenster von fremden Programm ändern
Hallo,
Wo wir Gerda schon beim Thema Programmfenster ändern sind wie kann ich in einer anderen anderen Applikation die ButtonGadget's ansprechen.
Der Programmcode hier Funktioniert zwar aber nicht in jeder Applikation wo dran kann das liegen oder wie könnte man noch versuchen die ButtonGadget's einer fremden Applikation anzusprechen?
(Die stellen die ich Kommentiert habe, habe ich den jeweiligen Programm natürlich immer angepasst gehabt.)
Danke schon mal im voraus für die Hilfe
.
Grüße,
Wo wir Gerda schon beim Thema Programmfenster ändern sind wie kann ich in einer anderen anderen Applikation die ButtonGadget's ansprechen.
Code: Alles auswählen
Define hwnd
Define subhwnd
hwnd = FindWindow_(0,"Das Fenster") ;Den Fenstertitel ändern.
Debug hwnd
If hwnd
subhwnd=FindWindowEx_(hwnd, 0, Button, "Der Button") ;Den Klassen Namen und den Namen des Button ändern.
Debug subhwnd
If subhwnd
SendMessage_(subhwnd, #BM_CLICK, 0, 0)
EndIf
EndIf
(Die stellen die ich Kommentiert habe, habe ich den jeweiligen Programm natürlich immer angepasst gehabt.)
Danke schon mal im voraus für die Hilfe

Grüße,
Zuletzt geändert von Coder Pinhead am 14.10.2011 21:21, insgesamt 1-mal geändert.
Windows 8.1 x64 | PureBasic v5.x x86/x64
Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.
Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.
Re: Programmfenster von fremden Programm ändern
@Pinhead
Das wurde auch grad im englischen Forum diskutiert: http://www.purebasic.fr/english/viewtop ... 13&t=47854
Da findest Du Lösungen für XP und Windows 7
Das wurde auch grad im englischen Forum diskutiert: http://www.purebasic.fr/english/viewtop ... 13&t=47854
Da findest Du Lösungen für XP und Windows 7
-
- Beiträge: 234
- Registriert: 27.02.2007 10:54
- Wohnort: Germany
Re: Programmfenster von fremden Programm ändern
Danke, hat geklappt.



Windows 8.1 x64 | PureBasic v5.x x86/x64
Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.
Sämtliche Syntax, Tipp und Rechtschreibfehler unterliegen dem Copyright des Verfassers.