0

I have written small code that would interact with minimized minecraft window, but WM_KEYUP and WM_KEYDOWN functions work similar. I mean WM_KEYUP works same way.


    import time
    from time import sleep
    import win32gui, win32ui, win32con, win32api
    VK_KEY_W = 0x57
    VK_KEY_A = 0x41
    VK_KEY_S = 0x53
    VK_KEY_D = 0x44
    VK_KEY_P = 0x50
    VK_SHIFT = 0xA0
    VK_ESCAPE = 0x1B
    
    def main():
        window_name = "Minecraft 1.8.9"
        hwnd = win32gui.FindWindow(None, window_name)
        # hwnd = get_inner_windows(hwnd)['RICHEDIT50W']
        win = win32ui.CreateWindowFromHandle(hwnd)
    
        #win.SendMessage(win32con.WM_CHAR, ord('A'), 0)
        #win.SendMessage(win32con.WM_CHAR, ord('B'), 0)
        #win.SendMessage(win32con.WM_KEYDOWN, 0x1E, 0)
        #sleep(0.5)
        #win.SendMessage(win32con.WM_KEYUP, 0x1E, 0)
        #win32api.SendMessage(hwnd, win32con.WM_KEYDOWN, VK_KEY_S, 1)
        #time.sleep(1)
        #win32api.SendMessage(hwnd, win32con.WM_KEYUP, VK_KEY_S, 0)
        #time.sleep(1)
        time.sleep(1)
        win32api.SendMessage(hwnd, win32con.WM_IME_KEYDOWN, VK_KEY_W, 0)
        time.sleep(1)
        win32api.SendMessage(hwnd, win32con.WM_IME_KEYUP, VK_KEY_W, 0)
    
        # win32api.SendMessage(hwnd, win32con.WM_KEYDOWN, VK_ESCAPE, 0)
        # sleep(0.5)
        # win32api.SendMessage(hwnd, win32con.WM_KEYUP, VK_ESCAPE, 0)
        # sleep(1)
        # win.SendMessage(win32con.WM_CHAR, ord('A'), 0)
    
    
    
    
    def list_window_names():
        def winEnumHandler(hwnd, ctx):
            if win32gui.IsWindowVisible(hwnd):
                print(hex(hwnd), '"' + win32gui.GetWindowText(hwnd) + '"')
        win32gui.EnumWindows(winEnumHandler, None)
    
    
    def get_inner_windows(whndl):
        def callback(hwnd, hwnds):
            if win32gui.IsWindowVisible(hwnd) and win32gui.IsWindowEnabled(hwnd):
                hwnds[win32gui.GetClassName(hwnd)] = hwnd
            return True
        hwnds = {}
        win32gui.EnumChildWindows(whndl, callback, hwnds)
        return hwnds
    
    
    main()
    ```
    
    
    time.sleep(1)
    
    win32api.SendMessage(hwnd, win32con.WM_IME_KEYDOWN, VK_KEY_W, 0)
    
    time.sleep(1)
    
    win32api.SendMessage(hwnd, win32con.WM_IME_KEYUP, VK_KEY_W, 0)

These four lines.

I will be happy with help!



I tried postmessage too,but result was exactly same. May be this is a problem with minecraft
toyota Supra
  • 3,181
  • 4
  • 15
  • 19
horikon
  • 1
  • 1

0 Answers0