Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
development:python:windows [2019-04-09 18:01] – Martin Prochnow | development:python:windows [2019-07-26 15:02] (aktuell) – Martin Prochnow | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Windows ====== | ====== Windows ====== | ||
- | ===== Schnipsel | + | ===== Programmfenster in Vordergrund bringen |
- | Modalen Dialog anzeigen: | + | Folgende Funktion kann genutzt werden, um unter Windows ein Programm-Fenster in den Vordergrund zu bringen. Parameter ist der Fenstername (wie er in der Titelleiste steht). Text, der dem Namen nachgestellt ist, wird ignoriert. |
<sxh python> | <sxh python> | ||
- | import | + | def raiseWindowByName(title): |
+ | | ||
+ | import win32gui | ||
- | ctypes.windll.user32.MessageBoxA(0, | + | wins = [] |
- | | + | win32gui.EnumWindows(lambda x, y: y.append(x), wins) |
- | | + | |
- | | + | |
- | sys.winver, | + | |
- | ), "%s - Message" | + | |
- | ) | + | if win32gui.IsIconic(winId): |
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | break | ||
</ | </ | ||
Zeile 27: | Zeile 35: | ||
makepy.main() | makepy.main() | ||
</ | </ | ||
+ | |||
+ | ===== Nutzung von IPv4 erzwingen ===== | ||
+ | Unter neueren Windows-Versionen wird unter Python bei der Namensauflösung für Windows-Rechner (z.B. auch // | ||
+ | |||
+ | Eine Lösung wäre es natürlich, IPv6 im Betriebssystem zu deaktivieren. Das hat aber was von "mit Kanonen auf Spatzen schießen" | ||
+ | |||
+ | <sxh python> | ||
+ | import socket | ||
+ | origGetAddrInfo = socket.getaddrinfo | ||
+ | |||
+ | def getAddrInfoWrapper(host, | ||
+ | return origGetAddrInfo(host, | ||
+ | |||
+ | socket.getaddrinfo = getAddrInfoWrapper | ||
+ | </ | ||
+ | |||
+ | [[http:// | ||
===== Windows-Service ===== | ===== Windows-Service ===== | ||
Zeile 36: | Zeile 61: | ||
import inspect | import inspect | ||
path = inspect.currentframe().f_code.co_filename | path = inspect.currentframe().f_code.co_filename | ||
+ | </ | ||
+ | |||
+ | ===== Schnipsel ===== | ||
+ | Modalen Dialog anzeigen: | ||
+ | <sxh python> | ||
+ | import os, sys, ctypes | ||
+ | |||
+ | ctypes.windll.user32.MessageBoxA(0, | ||
+ | " | ||
+ | os.path.abspath(os.curdir), | ||
+ | os.path.abspath(os.path.dirname(sys.argv[0])), | ||
+ | sys.winver, | ||
+ | ), "%s - Message" | ||
+ | ) | ||
</ | </ | ||
{{tag> | {{tag> | ||