minimize to tray

Fragen zu Tkinter.
Pythonaya
User
Beiträge: 90
Registriert: Sonntag 26. Januar 2003, 11:34
Wohnort: Großbeeren (nahe Berlin)

minimize to tray

Beitragvon Pythonaya » Freitag 19. Dezember 2003, 11:31

Hi @ all!
Ich hab mal eine Frage zum Thema Tkinter:
Wie kann ich ein Fenster zu einem kleinen Icon
neben meiner Windowsuhr (JA, ich bekenne mich schuldig: WINDOWS :roll: ) verschwinden lassen?

Hat jemand da einen Befehl?
Ich weiss, das es gehen muss...

Danke,
Florian
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Re: minimize to tray

Beitragvon Voges » Freitag 19. Dezember 2003, 12:22

Hallo!
Pythonaya hat geschrieben:Ich weiss, das es gehen muss...
Woher? Ich bin sicher, dass das Tkinter nicht leistet.
Vorstellen könnte ich mir einen Weg über die Python Win32 Extensions, mit der MFC vielleicht. Aber der Aufwand für so'n winziges Icon ... ;-)
Jan
Pythonaya
User
Beiträge: 90
Registriert: Sonntag 26. Januar 2003, 11:34
Wohnort: Großbeeren (nahe Berlin)

Beitragvon Pythonaya » Samstag 20. Dezember 2003, 11:13

Hi Voges,
ich habe es in einem anderen Pythonprogramm zum torrent-downloading gesehen...

Kann sein, dass datt nich mit Python alleine geht...
aber irgendwie muss es gehen!

Hier ist die Seite von dem oben genannten Prog (ABC):
http://pingpong-abc.sourceforge.net/download.html

Ich hoffe ihr könnt mir helfen,
Florian
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Beitragvon Voges » Samstag 20. Dezember 2003, 11:21

Hallo!
Pythonaya hat geschrieben:Hier ist die Seite von dem oben genannten Prog (ABC):
http://pingpong-abc.sourceforge.net/download.html

Ich seh' da gar nichts von Tkinter. Auf der Homepage steht "Powered by : Python, wxPython, ...".

Jan
Pythonaya
User
Beiträge: 90
Registriert: Sonntag 26. Januar 2003, 11:34
Wohnort: Großbeeren (nahe Berlin)

Beitragvon Pythonaya » Samstag 20. Dezember 2003, 11:27

lad dir einfach mal den Quellcode runter!!!
Es gibt da insgesamt 4 Prozeduren für minimize to tray...
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Beitragvon Voges » Samstag 20. Dezember 2003, 11:49

Hallo!
Pythonaya hat geschrieben:Es gibt da insgesamt 4 Prozeduren für minimize to tray...

Und hast Du sie Dir angeguckt? Da kommt kein Tkinter zum Einsatz. wxPython-Funktionen sind da für das Tray-Handling verantwortlich.
Jan
Pythonaya
User
Beiträge: 90
Registriert: Sonntag 26. Januar 2003, 11:34
Wohnort: Großbeeren (nahe Berlin)

Beitragvon Pythonaya » Sonntag 21. Dezember 2003, 13:39

Naja,
hab bisher nur Erfahrungen mit Python...
Daher hab ich den Rest nich wirklich verstanden...

Hmpf, muss mal wxpython runterladen und datt dann probieren.

Danke für die "Aufklährung" *ggg*

Florian
Patrick
User
Beiträge: 49
Registriert: Montag 5. Juli 2004, 06:35
Wohnort: Berlin
Kontaktdaten:

Beitragvon Patrick » Dienstag 27. Juli 2004, 14:20

Gehts denn jetzt wirklich nicht so ohne weiteres?
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Beitragvon DER Olf » Dienstag 27. Juli 2004, 22:40

hm...

du brauchst die WinAPI dazu ;)

ich hab das zwar noch nie gemacht, aber du könntest eine DLL schreiben, die das kapselt, und diese DLL von deinem python programm importieren lassen.

mfg Olf
Patrick
User
Beiträge: 49
Registriert: Montag 5. Juli 2004, 06:35
Wohnort: Berlin
Kontaktdaten:

Beitragvon Patrick » Mittwoch 28. Juli 2004, 08:42

Wie kann ich denn eine DLL-Datei importieren in python?
Es gibt ja schon genug fertige DLL-Bibliotheken.
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Beitragvon DER Olf » Mittwoch 28. Juli 2004, 12:01

na wie wohl?

Code: Alles auswählen

import MyDll


unter linux geht das übrigens auch mit .so dateien ;)

mfg Olf
Patrick
User
Beiträge: 49
Registriert: Montag 5. Juli 2004, 06:35
Wohnort: Berlin
Kontaktdaten:

Beitragvon Patrick » Mittwoch 28. Juli 2004, 12:14

So kann ich leider nicht auf die DLL-Bibliothek zugreifen.

Wie ich bereits gelesen habe, gibts dafuer auch ein DLLInterface, was ich mir bereits runtergeladen habe, aber beim Ausfuehren vermisst er das Modul calldll, was ich nirgends im Netz runterladen kann.
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Beitragvon DER Olf » Mittwoch 28. Juli 2004, 14:11

afaik muss die .dll einen gewissen aufbau haben, mit einer init funktion.

mfg Olf
Christopy
User
Beiträge: 131
Registriert: Montag 15. Dezember 2003, 22:39

Beitragvon Christopy » Mittwoch 28. Juli 2004, 15:23

Auf dlls kannst Du mit ctypes zugreifen.
Ein Tray-Icon kann man afaik mit Shell_NotifyIcon() aus shell32.dll erstellen.
Ganz so einfach wirds aber vermutlich nicht sein, der Teufel wird im Detail stecken. Wenn ich Zeit finde versuche ich mich auch mal daran...
Patrick
User
Beiträge: 49
Registriert: Montag 5. Juli 2004, 06:35
Wohnort: Berlin
Kontaktdaten:

Beitragvon Patrick » Donnerstag 29. Juli 2004, 08:51

Folgendermaßen habe ichs jetzt gemacht:

Code: Alles auswählen

import sys
import os
import win32con
from win32api import *
from win32gui import *
from ctypes import *

hinst =  GetModuleHandle(None)
iconPathName = "C:\Programme\Python23\Lib\img\plone.ico"
icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
hicon = LoadImage(hinst, iconPathName, win32con.IMAGE_ICON, 0, 0, icon_flags)
flags = NIF_ICON | NIF_MESSAGE | NIF_TIP
nid = (tk, 0, flags, win32con.WM_USER+20, hicon, "Plone")
print windll.shell32.Shell_NotifyIcon(NIM_ADD,nid)


Folgende Fehlermeldung bekomme ich allerdings:

print windll.shell32.Shell_NotifyIcon(NIM_ADD,nid)
TypeError: while constructing argument 2:
Don't know how to convert parameter 2


Weiss einer, was er von mir will?
Ist doch alles schick. :?:

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder