Seite 1 von 1

WConio-Fehler

Verfasst: Dienstag 4. März 2008, 11:34
von mathi
Hallo,

folgendes funktioniert in der Win shell problemlos:

Code: Alles auswählen

# -*- coding: utf-8 -*-
import sys
import WConio

def printcolor(color,data):
    WConio.textcolor(color)
    #sys.stdout.write(data)
    print (data)
    WConio.textcolor(15)

printcolor(14,"hallo, wie gehts? ")
printcolor(12,"mir geht's heute gut.")
c=raw_input('frage')
unter
der Python IDLE kommt folgender Fehler:

Code: Alles auswählen

Traceback (most recent call last):
  File "e:/Eigene Dateien/test.py", line 11, in <module>
    printcolor(14,"hallo, wie gehts? ")
  File "e:/Eigene Dateien/test.py", line 6, in printcolor
    WConio.textcolor(color)
  File "C:\Python25\lib\site-packages\WConio.py", line 162, in textcolor
    bgcolor = gettextinfo()[4] & 0x00F0
error: GetScreenInfo Failed
wie kann ich das vermeiden?

Edit: - andere baustelle -
wenn ich das ganze mit pyinstaller packe erscheint folgender Hinweis:

Code: Alles auswählen

MSVCR71.dll could not be extracted!
danach kommt aber was ich erwartet habe :?:

Re: WConio-Fehler

Verfasst: Dienstag 4. März 2008, 14:28
von Leonidas
mathi hat geschrieben:wie kann ich das vermeiden?
Nicht IDLE verwenden. WConio funktioniert nur, wie das "Con" ja schon andeutet nur in Consolen.

Verfasst: Freitag 7. März 2008, 19:44
von mathi
ja aber ich muß ja irgendwie programmieren und das geschriebene ausprobieren :?:

Verfasst: Freitag 7. März 2008, 19:46
von Leonidas
mathi hat geschrieben:ja aber ich muß ja irgendwie programmieren und das geschriebene ausprobieren :?:
Ja und? Was hindert dich, eine Konsole zu verwenden? [wiki=FAQ#WieStarteIchSkripte]FAQ lesen hilft[/wiki].

Verfasst: Freitag 7. März 2008, 20:03
von mathi
ok, ich frage mal anders herum:
Gibt es eine Möglichkeit, im Code eine Abfrage zu machen, ob das Programm in der Win-CMD läuft oder wo anders? Dann könnte ich ja sowas Schreiben:

Code: Alles auswählen


if prog in CMD:
    nutze WConio
else:
    nutze WConio nicht

Verfasst: Samstag 8. März 2008, 17:39
von birkenfeld
Du kannst zum Beispiel einen dieser textcolor()-Befehle aufrufen und die Exception abfangen.

Code: Alles auswählen

try:
    WConio.textcolor(whatever)
    use_wconio = True
except WConio.error:
    use_wconio = False

def printcolor(color, msg):
    if use_wconio:
        ...