Hello everyone, Since I got a simple answer from Roger on the Python Win32 web site I decided to post it here for those who would want that information, especially those who can not see. The first 2 lines are all that is needed along with the battery level instances using that object, ( BatteryPercentage = wmi.InstancesOf('win32_battery')) This program uses the computer voices and will list them if the specified one is not found. In this case I used Karen. When the list is displayed you do not need to insert everything in the name, just the obvious part of the name, like Karen. Just make sure you spell it correctly or you will always get the list printed on the screen. this also will sound off every minute because of the sleep amounts I use. It can also be changed to voice the percentage every percent change, just do what you want to do. Bruce #BatteryLevel.py import win32com.client wmi=win32com.client.GetObject('winmgmts:') from random import randint, uniform import msvcrt #INPUT KEYBOARD COMMANDS! import sys import time import pyTTS #VOICE SETUP! tts = pyTTS.Create() purge = pyTTS.tts_purge_before_speak async = pyTTS.tts_async PITCH=0 tts.Volume = 100 tts.Rate = 2 VOICECOUNT = len(tts.GetVoiceNames()) VOICES=[] for v in range( VOICECOUNT): VOICES.append( tts.GetVoiceNames()[v]) def setVoice2Name( name): "SET VOICE BY NAME!" t=-1 for v in range( VOICECOUNT): if name in VOICES[ v]: tts.SetVoiceByName( VOICES[v]) t=v if t==-1: tts.Speak( " %d Voices with %s Name Not Found! " % (VOICECOUNT, name)) print " %d Voices with %s Name Not Found! " % (VOICECOUNT, name) print "Voices:" for v in range( VOICECOUNT): print "%d= %s" % (v, VOICES[ v]) def Speak(text, pitch=999): if pitch==999: pitch=PITCH tts.Speak( "<pitch absmiddle='%s'/> %s" % (pitch, text), async, purge) def SpeakNext(text, pitch=999): if pitch==999: pitch=PITCH tts.Speak( "<pitch absmiddle='%s'/> %s" % (pitch, text), async) def setRate( rate): tts.Rate= rate if __name__ == '__main__': setVoice2Name( "Karen") PITCH=3 setRate( 2) # clear the keyboard buffer while msvcrt.kbhit(): ch = msvcrt.getch() ch=""; ch1=""; sch="" while ch != chr(27) and ch != chr(13): while msvcrt.kbhit(): ch1 = msvcrt.getch() ch = ch1 if ch1 == chr(0) or ch1 == chr(224): ch = msvcrt.getch() sch = ch1+ch #SAVE ANY MULTIKEYS! if ch != chr(27) and ch != chr(13): BatteryPercentage = wmi.InstancesOf('win32_battery') print (" %d Percent battery charge remaining! " % BatteryPercentage[0].EstimatedChargeRemaining) print "Hay! Battery power is getting low! Plug in the power cord:" print "Please Press Enter To Exit This Battery Alert!" SpeakNext(" %d Percent battery charge remaining! " % BatteryPercentage[0].EstimatedChargeRemaining) SpeakNext( "Hay! Battery power is getting low! Plug in the power cord:") SpeakNext( "Please Press Enter To Exit This Battery Alert!") # time.sleep(10) c = 0 while c < 30: if msvcrt.kbhit(): SpeakNext( "Key Was Hit!") c = 100 time.sleep(1) else: time.sleep(2) c += 1 # if msvcrt.kbhit(): # SpeakNext( "Key Was Hit!") # time.sleep(1) # else: # time.sleep(5) SpeakNext( "OK, Goodbye!") time.sleep(2) #RELEASE VOICE INSTANCE FROM MEMORY! del tts sys.exit()
_______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32