Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import sys
- import pythoncom, pyHook
- import win32api
- import subprocess
- import ctypes
- def kbeventhandler(event,instance):
- if event.Key=='Home':
- instance.play_prev()
- if event.Key=='End':
- instance.play_next()
- return True
- class vlc(object):
- def __init__(self,filepath,vlcp):
- self.fn=filepath
- self.vlcpath=vlcp
- self.process = subprocess.Popen([self.vlcpath, self.fn])
- def kill(self):
- PROCESS_TERMINATE = 1
- handle = ctypes.windll.kernel32.OpenProcess(PROCESS_TERMINATE, False, self.process.pid)
- ctypes.windll.kernel32.TerminateProcess(handle, -1)
- ctypes.windll.kernel32.CloseHandle(handle)
- print self.process.poll()
- def play_next(self):
- self.kill()
- f=self.get_new_file(1)
- self.process = subprocess.Popen([self.vlcpath, f])
- self.fn=f
- def play_prev(self):
- self.kill()
- f=self.get_new_file(-1)
- self.process = subprocess.Popen([self.vlcpath, f])
- self.fn=f
- def get_new_file(self,switch):
- dirname= os.path.dirname(self.fn)
- supplist=['.mkv','.flv','.avi','.mpg','.wmv']
- files = [os.path.join(dirname,f) for f in os.listdir(dirname) if (os.path.isfile(os.path.join(dirname,f)) and os.path.splitext(f)[-1]in supplist)]
- files.sort()
- try: currentindex=files.index(self.fn)
- except: currentindex=0
- i=0
- if switch==1:
- if currentindex<(len(files)-1):i=currentindex+1
- else:
- if currentindex>0:i=currentindex-1
- return files[i]
- def main():
- vlcpath='vlc'
- if os.name=='nt': vlcpath='C:/Program Files (x86)/VideoLAN/VLC/vlc.exe'
- fn='H:\\Anime\\needless\\Needless_[E-D]\\[Exiled-Destiny]_Needless_Ep11v2_(04B16479).mkv'
- if len(sys.argv)>1:
- fn=sys.argv[1] #use argument if available or else use default file
- instance=vlc(fn,vlcpath)
- hm = pyHook.HookManager()
- def kbwrap(event):
- kbeventhandler(event,instance)
- hm.KeyDown = kbwrap
- hm.HookKeyboard()
- pythoncom.PumpMessages()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement