1

Тема: AHK: Вставка изображения из буфера обмена в Gui

Как?))

2

Re: AHK: Вставка изображения из буфера обмена в Gui

Нашел код teadrinker-a , спасибо тебе что ты есть)

DetectHiddenWindows, On
Send, {PRINTSCREEN}
FileAppend,, %A_ScriptDir%\PrScr.bmp
Run, mspaint %A_ScriptDir%\PrScr.bmp,, Hide
WinWait, PrScr.bmp - Paint
PostMessage, 0x111, 57637, 0, , PrScr.bmp - Paint
PostMessage, 0x111, 57603, 0, , PrScr.bmp - Paint
PostMessage, 0x111, 57665, 0, , PrScr.bmp - Paint
WinWaitClose, PrScr.bmp - Paint
gui,add,pic,x0 y0,%A_ScriptDir%\PrScr.bmp
FileDelete,%A_ScriptDir%\PrScr.bmp
gui,show
return

GuiClose:
GuiEscape:
ExitApp

3 (изменено: serzh82saratov, 2017-09-24 00:01:10)

Re: AHK: Вставка изображения из буфера обмена в Gui


#SingleInstance Force
#NoEnv

Gui, Margin, 0, 0
Gui, Add, Pic, x0 y0 vPic
Gosub, PicView

1::
PicView:
	if !hBitmap := hBitmapFromClipboard(Width)
		Return
	GuiControl, , Pic, % "*w" Width " *h-1 HBITMAP:*" hBitmap
	Gui, Show, AutoSize
	GuiControl, +Redraw, Pic
	Return
	
hBitmapFromClipboard(Byref Width) {
	Static Ptr := A_PtrSize = 8 ? "UPtr" : "UInt"
	if !DllCall("OpenClipboard", Ptr, 0)
		Return 0
	if !DllCall("IsClipboardFormatAvailable", "UInt", 8)
		Return 0, DllCall("CloseClipboard")
	if !hBitmap := DllCall("GetClipboardData", "UInt", 2, Ptr)
		Return 0, DllCall("CloseClipboard")
	DllCall("CloseClipboard")
	DllCall("gdiplus\GdipCreateBitmapFromHBITMAP", Ptr, hBitmap, Ptr, 0, Ptr "*", pBitmap)
	DllCall("DeleteObject", Ptr, hBitmap)
	DllCall("gdiplus\GdipGetImageWidth", Ptr, pBitmap, "UInt*", Width)
	DllCall("gdiplus\GdipDisposeImageAttributes", Ptr, pBitmap)
	Return hBitmap
}

GuiClose:
GuiEscape:
	ExitApp
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui