moin moin!
kennst jemand eine kleine "einfuehrung" in pywin32? .. oder howto oder tutorial??
ich will nicht einfach blind drauf los testen ... und nur stumpf die referenzen durch lesen bin ich zu faul! ...
pywin32 ??
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Sollen wir bei dir vorbeikommen und sie im Chor vorlesen, damit du dich nicht überarbeitest?mulder hat geschrieben:und nur stumpf die referenzen durch lesen bin ich zu faul! ...
Nein, im Ernst: Das wirst du wohl machen müssen, wenn du damit was machen willst. Aber keine Sorge: pywin32 ist eher schlecht dokumentiert, daher gibt es nicht allzuviel zu lesen. Mir hat oft eine Google-Suche mehr geholfen. Oft kann man an der Stelle von pywin32 ebenso einfach ctypes verwenden. Manchmal findest du auch hier was.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sowas macht ihr? .. das ist aber nett .. okay ich haette am donnerstag zeit ...Sollen wir bei dir vorbeikommen und sie im Chor vorlesen, damit du dich nicht überarbeitest?
danke .. also doch die "harte" tour! .. naja ..
" schlimmer als stress ist, keinen zu haben"
Ich empfehle dir, ein paar C, C++ oder Pascal Tutorials zur Win32 Programmierung durchzulesen. Wenn du das dann beherrschst ist es eine Kleinigkeit, das dort gelesene mit Hilfe der Referenz (einige Funktionsaufrufe wurden OOP-isiert, einige Funktionen haben weniger Parameter, da man sich ja nicht selbstständig um Buffergrößen und dergleichen kümmern muss) nach Python zu übersetzen.
Kleines Beispiel (nicht getestet): Alle Desktop Fenster anzeigen lassen
C++ (ich verzichte mal auf stl)
und so in python:
mit ein wenig verständnis für die winapi und ein wenig Doku lesen und ausprobieren (gerade die aufspaltung auf die module macht ein wenig arbeit.
beispiel: GetCurrentThreadId() befindet sich in win32api (glaube ich zumindest), aber GetThreadDesktop() befindet sich in win32service
liebe grüße, olf
Kleines Beispiel (nicht getestet): Alle Desktop Fenster anzeigen lassen
C++ (ich verzichte mal auf stl)
Code: Alles auswählen
BOOL CALLBACK enumProc(HWND hWnd, LPARAM lParam)
{
int len = GetWindowTextLength(hWnd) + 1;
char* buf = new buf[len];
GetWindowText(hWnd, buf, len);
printf("%s\n", buf);
delete[] buf;
return TRUE;
}
[...]
HDESK hDesk = GetThreadDesktop(GetCurrentThreadId());
EnumDesktopWindows(hDesk, enumProc, 0);
Code: Alles auswählen
#! /usr/bin/python
import win32api
import win32gui
import win32service
_id = win32api.GetCurrentThreadId()
desk = win32service.GetThreadDesktop(_id)
windowList = desk.EnumDesktopWindows()
for w in windowList:
print win32gui.GetWindowText(w)
beispiel: GetCurrentThreadId() befindet sich in win32api (glaube ich zumindest), aber GetThreadDesktop() befindet sich in win32service
liebe grüße, olf