horikon Posted June 24, 2023 Posted June 24, 2023 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. expandcollapse popupimport 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!
Moderators Melba23 Posted June 24, 2023 Moderators Posted June 24, 2023 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 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 columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Recommended Posts