platutils_win32.py
43 lines
| 1.4 KiB
| text/x-python
|
PythonLexer
/ IPython / platutils_win32.py
ville
|
r988 | # -*- coding: utf-8 -*- | ||
""" Platform specific utility functions, win32 version | ||||
Importing this module directly is not portable - rather, import platutils | ||||
to use these functions in platform agnostic fashion. | ||||
""" | ||||
#***************************************************************************** | ||||
# Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu> | ||||
# | ||||
# Distributed under the terms of the BSD License. The full license is in | ||||
# the file COPYING, distributed as part of this software. | ||||
#***************************************************************************** | ||||
import os | ||||
Fernando Perez
|
r1852 | ignore_termtitle = True | ||
ville
|
r988 | |||
try: | ||||
import ctypes | ||||
Fernando Perez
|
r1331 | |||
SetConsoleTitleW = ctypes.windll.kernel32.SetConsoleTitleW | ||||
SetConsoleTitleW.argtypes = [ctypes.c_wchar_p] | ||||
def set_term_title(title): | ||||
"""Set terminal title using ctypes to access the Win32 APIs.""" | ||||
ville
|
r988 | SetConsoleTitleW(title) | ||
except ImportError: | ||||
Fernando Perez
|
r1331 | def set_term_title(title): | ||
"""Set terminal title using the 'title' command.""" | ||||
global ignore_termtitle | ||||
try: | ||||
# Cannot be on network share when issuing system commands | ||||
curr = os.getcwd() | ||||
os.chdir("C:") | ||||
ret = os.system("title " + title) | ||||
finally: | ||||
os.chdir(curr) | ||||
ville
|
r988 | if ret: | ||
Fernando Perez
|
r1331 | # non-zero return code signals error, don't try again | ||
ignore_termtitle = True | ||||