Python Forum
Control click to minimized window
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Control click to minimized window
#1
Hi Brothers,
I'm Struggling with send mouse click to minimized (Calc.exe) to specific area
in autoit I was just need to get handle window and then use control send to it
so I tried with python :

hwnd = win32gui.FindWindow(None, "Calc")

but I coudn't any similar Func in python is there is any way to click on minimized window in python?
Reply
#2
show a large enough snippet of code that we can run it.
Reply
#3
Thanks for response,
This is One of my tries:
import win32gui
import win32con
import win32api
from time import sleep
import win32gui
import win32api
import win32con

hwndMain = win32gui.FindWindow(None, "Calculator")

while(True):
    temp = win32api.PostMessage(hwndChild, win32con.WM_CHAR, 0x44, 0)
    lParam = win32api.MAKELONG(501, 139)
    win32api.SendMessage(hwndChild, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lParam)
    win32api.SendMessage(hwndChild, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, lParam)
    #print(temp) prints the returned value of temp, into the console
    print(temp)
    #sleep(1) this waits 1 second before looping through again
    sleep(1)
Reply
#4
1. you don't need to import twice.
2. Are you a C programmer? This looks a lot like old C code that was converted directly to python.
there are much easier and better ways to do this with native code.
write exactly what you are trying to achieve.
There's a better way to write it.
Reply
#5
No I'm not a C programmer and I found this code is some forums and modified some data.
And Sorry I cant provide full code like this in Python.

I got idea that to get screenshot of minimized window and then search inside captured minimized window About the button i want.
So I tried with this code:
import win32gui
import win32ui
from ctypes import windll
from  PIL import Image

hwnd = win32gui.FindWindow(None, 'Calculator')

# Change the line below depending on whether you want the whole window
# or just the client area. 
#left, top, right, bot = win32gui.GetClientRect(hwnd)
left, top, right, bot = win32gui.GetWindowRect(hwnd)
w = right - left
h = bot - top

hwndDC = win32gui.GetWindowDC(hwnd)
mfcDC  = win32ui.CreateDCFromHandle(hwndDC)
saveDC = mfcDC.CreateCompatibleDC()

saveBitMap = win32ui.CreateBitmap()
saveBitMap.CreateCompatibleBitmap(mfcDC, w, h)

saveDC.SelectObject(saveBitMap)

# Change the line below depending on whether you want the whole window
# or just the client area. 
#result = windll.user32.PrintWindow(hwnd, saveDC.GetSafeHdc(), 1)
result = windll.user32.PrintWindow(hwnd, saveDC.GetSafeHdc(), 0)
print (result)

bmpinfo = saveBitMap.GetInfo()
bmpstr = saveBitMap.GetBitmapBits(True)

im = Image.frombuffer(
    'RGB',
    (bmpinfo['bmWidth'], bmpinfo['bmHeight']),
    bmpstr, 'raw', 'BGRX', 0, 1)

win32gui.DeleteObject(saveBitMap.GetHandle())
saveDC.DeleteDC()
mfcDC.DeleteDC()
win32gui.ReleaseDC(hwnd, hwndDC)

if result == 1:
    #PrintWindow Succeeded
    im.save("test.png")
it's successfully capture calculator but win I press (minimize) from Calculator application and try to take screenshot window again it gains only top of calculator window....
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Is there a way to call and focus any popup window outside of the main window app? Valjean 6 1,611 Oct-02-2023, 04:11 PM
Last Post: deanhystad
  Pyspark Window: perform sum over a window with specific conditions Shena76 0 1,131 Jun-13-2022, 08:59 AM
Last Post: Shena76

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020