Fenster aktivieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Anfänger1911
User
Beiträge: 62
Registriert: Donnerstag 17. November 2005, 16:25

Hi!

Ich möchte das Programmfenster von FileMaker Pro aktivieren, also in den Vordergrund stellen. Wie mache ich das am einfachsten? Ich denke es müsste irgendwie mit win32com gehen aber wie? Hier ein Versuch (ich kann es leider nicht testen):

Code: Alles auswählen

import win32com.client
import win32con
FMP = win32com.client.Dispatch("FileMaker Pro.ApplicationFMP")
FMP.SW_SHOWNORMAL
Ich vermute mal es ist ziemlich falsch...
Geht das so überhaupt und wenn ja wie ist es richtig?

Mfg
Henne
linuxfan
User
Beiträge: 11
Registriert: Mittwoch 19. September 2007, 16:05

Mein Vorschlag wäre ein Tk-Fenster. Dazu schreibe folgenden Text:

Code: Alles auswählen

from Tkinter import*
root=Tk() #"root" ist mein Vorschlag
root.focus_force() #focus_force aktiviert das Fenster bzw. stellt es in den Vordergrund
Viel Glück! :wink:
Gruß linuxfan
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Hi,

mit pywinauto kann man Window-Programme fernsteuern. Ich weiß nicht, ob es Dir momentan hilft, aber wollt nur gesagt haben, dass es dies gibts.

Gruß Andy
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

linuxfan hat geschrieben:Mein Vorschlag wäre ein Tk-Fenster. Dazu schreibe folgenden Text:

Code: Alles auswählen

from Tkinter import*
root=Tk() #"root" ist mein Vorschlag
root.focus_force() #focus_force aktiviert das Fenster bzw. stellt es in den Vordergrund
Viel Glück! :wink:
Und wie soll das - ein logisch gesehen - funktionieren? Filemaker Pro ist ein *bestehendes* Programm, welches zum Glück kein Tk benutzt. Also wie soll man solche Programme via Tkinter fernsteuern?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
abgdf

Also, mit Word geht das so:

Code: Alles auswählen

word = win32com.client.Dispatch('Word.Application')
word.Visible = 1
word.WindowState = 1
Ich schätze mal, bei FileMaker wird das ähnlich sein.

Aber, wenn Du's nicht testen kannst :roll:, ich kann's erst recht nicht :wink:.

Gruß
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo Leute!

COM hat nichts damit zu tun. Also vergesst ``win32com.client.Dispatch``.

Code: Alles auswählen

>>> import win32ui
>>> hwnd = win32ui.FindWindow(None, "<Text aus der Titelleiste>")
>>> hwnd
object 'PyCWnd' - assoc is 01B8E7E0, vi=<None>, notify=0,ch/u=0/0, mh=0, kh=0
>>> hwnd.BringWindowToTop()
>>>
pywinauto kann das noch besser. Aber auf den Tipp von Andy ist niemand eingegangen. pywinauto kann auch dann ein Fenster identifizieren, wenn nur ein Teil des Titels bekannt ist. Wie man so ein Fenster findet und sich darauf bezieht, findet man auf der pywinauto-Website.

Code: Alles auswählen

>>> import pywinauto
>>> hwnd = pywinauto.findwindows.find_window(title=None, title_re="Das deutsche Python.*")
>>> pywinauto.win32functions.BringWindowToTop(hwnd)
1
>>>

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
linuxfan
User
Beiträge: 11
Registriert: Mittwoch 19. September 2007, 16:05

Sorry wegen dem Beitrag mit Tk!!
War total verplant! :roll:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

linuxfan hat geschrieben:Sorry wegen dem Beitrag mit Tk!!
War total verplant! :roll:
Nein, kein Problem. Ich habe nur nachgebessert, damit andere Leute die den Thread später lesen nicht durch den Tkinter-Code verwirrt werden. Nichts für ungut.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten