Jump to content

WM_KEYUP and WM_KEYDOWN don't work properly - (Locked)


Recommended Posts

Hello all, 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!

Link to comment
Share on other sites

  • Moderators

Welcome to the AutoIt forum.

Unfortunately you appear to have missed the Forum rules on your way in. Please read them now - particularly the bit about not discussing game automation - and then you will understand why you will get no help and this thread will now be locked.

See you soon with a legitimate question I hope.

The Moderation team

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...