-
Recently Browsing 0 members
No registered users viewing this page.
-
Similar Content
-
By Jemboy
Hi,
For an internal project I want to write internal script to mail some special request to an external party.
To make it a little bit universal I decided that the user should be able to write or edit the e-mail signature.
Because I wanted to put a logo into the e-mail, I decided to use RichEdit.
I I found the following code by @UEZ and adapted it a little to save and load.
When I start the script and edit the text only, I can save and load the signature.rtf.
However the moment I resize one of the images (with the mouse), the script wil only save the edited image.
Somehow resizing an image deletes the other content of the RichEdit object.
Does anyone know a solution for me?
P.s. you need to delete signature.rtf to reset the file.
#include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <GuiRichEdit.au3> #include <WindowsConstants.au3> Example() Func Example() Local $hGui, $iMsg, $idBtnExit, $hRichEdit $hGui = GUICreate("Example (" & StringTrimRight(@ScriptName, StringLen(".exe")) & ")", 520, 550, -1, -1) $hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 500, 490, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL)) $idBtnExit = GUICtrlCreateButton("Exit", 10, 510, 40, 30) $GoodRead = False If FileExists(@ScriptDir & "\signature.rtf") Then $ResSFF = _GUICtrlRichEdit_StreamFromFile($hRichEdit, @ScriptDir & "\signature.rtf") If $ResSFF=true then $GoodRead = True EndIf If $GoodRead=False Then _GUICtrlRichEdit_InsertText($hRichEdit, "Inserting image..." & @LF & @LF) _GUICtrlRichEdit_InsertText($hRichEdit, @LF & "JPG image scaled:" & @LF & @LF) _GUICtrlRichEdit_InsertBitmap($hRichEdit, "c:\Program Files (x86)\AutoIt3\Examples\GUI\mslogo.jpg", "\qc", "\picw6747\pich1058\picwgoal6690\pichgoal1860\") ;\qc = centered _GUICtrlRichEdit_InsertText($hRichEdit, @LF & @LF & "PNG image:" & @LF & @LF) _GUICtrlRichEdit_InsertBitmap($hRichEdit, "c:\Program Files (x86)\AutoIt3\Examples\GUI\Torus.png") _GUICtrlRichEdit_InsertText($hRichEdit, @LF & @LF & "Done.") EndIf GUISetState(@SW_SHOW) While True Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idBtnExit _GUICtrlRichEdit_StreamToFile($hRichEdit, @ScriptDir & "\signature.rtf") _GUICtrlRichEdit_Destroy($hRichEdit) ; needed unless script crashes GUIDelete() Exit EndSwitch WEnd EndFunc ;==>Example Func _GUICtrlRichEdit_InsertBitmap($hWnd, $sFile, $sFormatFunctions = "\", $sBitmapFunctions = "\", $iBgColor = Default) ;coded by UEZ build 2016-02-16 If Not FileExists($sFile) Then Return SetError(0, 0, 1) If Not _WinAPI_IsClassName($hWnd, $__g_sRTFClassName) Then Return SetError(0, 0, 2) _GDIPlus_Startup() Local $hImage = _GDIPlus_ImageLoadFromFile($sFile) If @error Then _GDIPlus_Shutdown() Return SetError(0, 0, 3) EndIf Local Const $aDim = _GDIPlus_ImageGetDimension($hImage) Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($aDim[0], $aDim[1]), $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap) If $iBgColor = Default Then $iBgColor = 0xFF000000 + _WinAPI_SwitchColor(_GUICtrlRichEdit_GetBkColor($hWnd)) EndIf _GDIPlus_GraphicsClear($hGfx, $iBgColor) _GDIPlus_GraphicsDrawImageRect($hGfx, $hImage, 0, 0, $aDim[0], $aDim[1]) _GDIPlus_GraphicsDispose($hGfx) Local $binStream = _GDIPlus_StreamImage2BinaryString($hBitmap, "BMP") If @error Then _GDIPlus_ImageDispose($hImage) _GDIPlus_ImageDispose($hBitmap) _GDIPlus_Shutdown() Return SetError(0, 0, 4) EndIf Local $binBmp = StringMid($binStream, 31) Local Const $binRtf = "{\rtf1\viewkind4" & $sFormatFunctions & " {\pict{\*\picprop}" & $sBitmapFunctions & "dibitmap " & $binBmp & "}\par}" ;check out http://www.biblioscape.com/rtf15_spec.htm _GUICtrlRichEdit_AppendText($hWnd, $binRtf) $binStream = 0 $binBmp = 0 _GDIPlus_ImageDispose($hImage) _GDIPlus_ImageDispose($hBitmap) _GDIPlus_Shutdown() Return 1 EndFunc ;==>_GUICtrlRichEdit_InsertBitmap Func _GDIPlus_StreamImage2BinaryString($hBitmap, $sFormat = "JPG", $iQuality = 80, $bSave = False, $sFileName = @ScriptDir & "\Converted.jpg") ;coded by UEZ 2013 build 2014-01-25 (based on the code by Andreik) Local $sImgCLSID, $tGUID, $tParams, $tData Switch $sFormat Case "JPG" $sImgCLSID = _GDIPlus_EncodersGetCLSID($sFormat) $tGUID = _WinAPI_GUIDFromString($sImgCLSID) $tData = DllStructCreate("int Quality") DllStructSetData($tData, "Quality", $iQuality) ;quality 0-100 Local $pData = DllStructGetPtr($tData) $tParams = _GDIPlus_ParamInit(1) _GDIPlus_ParamAdd($tParams, $GDIP_EPGQUALITY, 1, $GDIP_EPTLONG, $pData) Case "PNG", "BMP", "GIF", "TIF" $sImgCLSID = _GDIPlus_EncodersGetCLSID($sFormat) $tGUID = _WinAPI_GUIDFromString($sImgCLSID) Case Else Return SetError(1, 0, 0) EndSwitch Local $hStream = _WinAPI_CreateStreamOnHGlobal() ;http://msdn.microsoft.com/en-us/library/ms864401.aspx If @error Then Return SetError(2, 0, 0) _GDIPlus_ImageSaveToStream($hBitmap, $hStream, DllStructGetPtr($tGUID), DllStructGetPtr($tParams)) If @error Then Return SetError(3, 0, 0) Local $hMemory = _WinAPI_GetHGlobalFromStream($hStream) ;http://msdn.microsoft.com/en-us/library/aa911736.aspx If @error Then Return SetError(4, 0, 0) Local $iMemSize = _MemGlobalSize($hMemory) If Not $iMemSize Then Return SetError(5, 0, 0) Local $pMem = _MemGlobalLock($hMemory) $tData = DllStructCreate("byte[" & $iMemSize & "]", $pMem) Local $bData = DllStructGetData($tData, 1) _WinAPI_ReleaseStream($hStream) ;http://msdn.microsoft.com/en-us/library/windows/desktop/ms221473(v=vs.85).aspx _MemGlobalFree($hMemory) If $bSave Then Local $hFile = FileOpen($sFileName, 18) If @error Then Return SetError(6, 0, $bData) FileWrite($hFile, $bData) FileClose($hFile) EndIf Return $bData EndFunc ;==>_GDIPlus_StreamImage2BinaryString
-
By Aapjuh
Hi,
I am having a problem properly saving the Width of a resizable Gui.
When a user resizes the Gui it gets saved in an ini when the Gui closes to then restore the new Width upon reopening the app.
with GUICreate("myGui",300,200,Default,Default,$WS_SIZEBOX)
WinGetPos($hGUI) returns 314, and WinGetClientSize($hGUI) returns 298
when its then saved in the ini the gui keeps expanding or shrinking every time its opened by +14 or -2
I figure it has to do with borders etc, but i also guess borders depend on the window theme and whatnot or is user specific, so i can't just do $GuiWidth = $GetGuiWidth[arr] -14 or +2 right?
is there a proper way of doing this?
Thanks in advance,
Aapjuh
-
By nacerbaaziz
hello guys, please i need your help
am trying to work with CreateWindowEx api, i created the window with it controls, also i setup the call back function
i'am using WinMSGLoop to focus with the keyboard.
here i have a problem, i hope that you can help me.
on the controls i used the UDF that comme with the autoit, such as _GUIButton_Create, _GUIListBox_Create....
but i can't find a STATIC control UDF, for that i used this
local $h_ssrvlbl = _WinAPI_CreateWindowEx(0, "STATIC", "الخادم", BitOr($WS_VISIBLE, $WS_CHILD, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN), 250, 10, 100, 20, $hWnd)
as you can see here, there is an arabic text, so here is the problem, the arabic text isn't show normally, what is the problem here?
also i have an other question about keyboard focus, when i used WinMSGLoop, it worked, but if i press alt+tab to switch windows or focus an other window and return back to my window, the focus of control is kill.
can any one help me to solve that please?
my code will be as file here with the include files
i hope can any one help me here
thanks in advance
speed Test win.zip
-
By shelly
Here is the below code for handling pop-up when window is inactive ..but I don't know how to change sleep and when i run this script it runs sometimes and sometimes it stops .
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{SPACE}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{DOWN}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{ENTER}")
--- these 3 lines never worked while TAB lines works sometimes but not in accurate way
I am new too AutoIt .. help me out why this script behaves in strange way
ControlFocus("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1")
Sleep(3000)
ControlSend("Policy Decisions -- Webpage Dialog", "", "Internet Explorer_Server1","1")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog", "", "Internet Explorer_Server1","the request is send")
Sleep(3000)
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
Sleep(3000)
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
Sleep(3000)
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{SPACE}")
Sleep(3000)
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
Sleep(3000)
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
Sleep(3000)
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{DOWN}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
Sleep(3000)
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}")
ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{ENTER}")
-
By Cengokill
Hi everyone,
I have created a ListView that is in a tab, and I want to display an image in that tab, with the ListView on top.
However, the image still appears on top of my ListView.
If I remove the tabs everything works.
I looked at the autoit documentation and the <GuiListView.au3> documentation , I can't figure out how to display a background image, and put on top a ListView, inside a tab. 😥
Here is the code:
Opt("GUIOnEventMode", 1) $Form1 = GUICreate($Titre, 700, 627, $Form1Width, $Form1Height); main window $tabulation = GUICtrlCreateTab(148,0,700,580); creating tabs $tab1=GUICtrlCreateTabItem("Tab 1"); first tab GUICtrlSetState(-1, $GUI_SHOW); this tab is selected by default $Pic1 = GUICtrlCreatePic("image.jpg", 0, 30, 700, 627) GUICtrlSetState(-1, $GUI_DISABLE). $idListview = GUICtrlCreateListView("list 1|list 2|list 3", 200, 50, 390, 200) GUISetState(@SW_SHOW) While 1 Sleep(100) WEnd Thank you in advance.
-
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now