Jump to content
Sign in to follow this  
Ferman

Func not working and I can't figure out why.

Recommended Posts

Alright,

So I am trying to make an autoit script to create a file and I just looked at the example on the function page for FileWriteLine everything seemed to make since so I added a GUISetOnEvent so that when the "done" button is pressed it will create a file with text in it and it will continue to write the text in it over and over again... I am just trying to get this to work before I do any other stuff.

So I used Koda to make the gui real fast (that was the easy part) and I exported it etc and I added the GUISetOnEvent and the function from the FileWriteLine example and it doesn't work.

I did get it to work once though but I had to generate the code from Koda with events on everybutton which then left minimize and close useless, so creating a file with text in it worked but closing the application itself didn't which was pretty useless.

My question is "How do I make the FileWriteLine actually work?". With this code right now it will not create test.txt with "Line1 Line2 Line3" written in it.

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:UsersjustinDesktopcreat-vhostvhost-gui.kxf
$Form1 = GUICreate("Create a new vHost for localdev", 401, 201, 325, 193)
GUISetBkColor(0xFFFFFF)
$website = GUICtrlCreateInput("", 16, 40, 361, 21)
GUICtrlSetCursor (-1, 2)
$website_label = GUICtrlCreateLabel("Website Name ( Do not provide the extension ex. graphtek.com = graphtek )", 16, 16, 364, 17)
$done = GUICtrlCreateButton("Done", 304, 160, 73, 33)
GUICtrlSetOnEvent($done, "doneClick")
$coldfusion = GUICtrlCreateCheckbox("Is this a coldfusion site?", 16, 72, 281, 20)
$directory_edit = GUICtrlCreateButton("Edit Directories", 16, 160, 105, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd

Func doneClick()
Local $file = FileOpen("test.txt", 1)

; Check if file opened for writing OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf

FileWriteLine($file, "Line1")
FileWriteLine($file, "Line2" & @CRLF)
FileWriteLine($file, "Line3")

FileClose($file)
EndFunc
Edited by Ferman

Share this post


Link to post
Share on other sites

And the question is?


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2020-10-10 - Version 1.5.2.1) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2020-06-30 - Version 1.6.2.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (NEW 2020-06-27 - Version 1.3.2.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
Task Scheduler (2019-12-03 - Version 1.5.1.0) - Download - General Help & Support - Wiki

Tutorials:
ADO - Wiki, WebDriver - Wiki

 

Share this post


Link to post
Share on other sites

And the question is?

My question is "How do I make the FileWriteLine actually work?". With this code right now it will not create test.txt with "Line1 Line2 Line3" written in it......

Sorry I was a little flustered when I was writing this post which means I am not very coherent in my typing haha.. Its making me mad. I haven't used autoit in like 2-3 years which means I forgot a lot and I mean I didn't really know much when I used it last.

Share this post


Link to post
Share on other sites

Use case $done

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=C:UsersjustinDesktopcreat-vhostvhost-gui.kxf
$Form1 = GUICreate("Create a new vHost for localdev", 401, 201, 325, 193)
GUISetBkColor(0xFFFFFF)
$website = GUICtrlCreateInput("", 16, 40, 361, 21)
GUICtrlSetCursor (-1, 2)
$website_label = GUICtrlCreateLabel("Website Name ( Do not provide the extension ex. graphtek.com = graphtek )", 16, 16, 364, 17)
$done = GUICtrlCreateButton("Done", 304, 160, 73, 33)
GUICtrlSetOnEvent($done, "doneClick")
$coldfusion = GUICtrlCreateCheckbox("Is this a coldfusion site?", 16, 72, 281, 20)
$directory_edit = GUICtrlCreateButton("Edit Directories", 16, 160, 105, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $done ;the case when you click on botton
doneClick()
EndSwitch
WEnd

Func doneClick()
Local $file = FileOpen("test.txt", 1)

; Check if file opened for writing OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf

FileWriteLine($file, "Line1")
FileWriteLine($file, "Line2" & @CRLF)
FileWriteLine($file, "Line3")

FileClose($file)
EndFunc

Saludos

Edited by Danyfirex

Share this post


Link to post
Share on other sites

Use case $done

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=C:UsersjustinDesktopcreat-vhostvhost-gui.kxf
$Form1 = GUICreate("Create a new vHost for localdev", 401, 201, 325, 193)
GUISetBkColor(0xFFFFFF)
$website = GUICtrlCreateInput("", 16, 40, 361, 21)
GUICtrlSetCursor (-1, 2)
$website_label = GUICtrlCreateLabel("Website Name ( Do not provide the extension ex. graphtek.com = graphtek )", 16, 16, 364, 17)
$done = GUICtrlCreateButton("Done", 304, 160, 73, 33)
GUICtrlSetOnEvent($done, "doneClick")
$coldfusion = GUICtrlCreateCheckbox("Is this a coldfusion site?", 16, 72, 281, 20)
$directory_edit = GUICtrlCreateButton("Edit Directories", 16, 160, 105, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $done ;the case when you click on botton
doneClick()
EndSwitch
WEnd

Func doneClick()
Local $file = FileOpen("test.txt", 1)

; Check if file opened for writing OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf

FileWriteLine($file, "Line1")
FileWriteLine($file, "Line2" & @CRLF)
FileWriteLine($file, "Line3")

FileClose($file)
EndFunc

Saludos

IT WORKS!!! Thank you very much!

I guess I have some more reading to do. Apparently I didn't think of making a case for $done.

Share this post


Link to post
Share on other sites

@Ferman

Then remove this :

GUICtrlSetOnEvent($done, "doneClick")

Or add this after includes :

Opt("GUIOnEventMode", 1)

Br, Firefox.


 

OS : Win XP SP2 (32 bits) / Win 7 SP1 (64 bits) / Win 8 (64 bits) | Autoit version: latest stable / beta.
Hardware : Intel(R) Core(TM) i5-2400 CPU @ 3.10Ghz / 8 GiB RAM DDR3.

My UDFs : Skype UDF | TrayIconEx UDF | GUI Panel UDF | Excel XML UDF | Is_Pressed_UDF

My Projects : YouTube Multi-downloader | FTP Easy-UP | Lock'n | WinKill | AVICapture | Skype TM | Tap Maker | ShellNew | Scriptner | Const Replacer | FT_Pocket | Chrome theme maker

My Examples : Capture toolIP Camera | Crosshair | Draw Captured Region | Picture Screensaver | Jscreenfix | Drivetemp | Picture viewer

My Snippets : Basic TCP | Systray_GetIconIndex | Intercept End task | Winpcap various | Advanced HotKeySet | Transparent Edit control

 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Jamestay97
      Hello! Thanks you for looking at my post
      **No source code I'm sorry work related can't copy information**
      I've been using autoit for about 1 year. 
      I'm having trouble automating a click on an internet explorer web page and I've tried a lot of examples from help pages and forums already. The object I'm trying to click on isnt always in the same spot so I can't use mouse click or control click, I have tried to use the different get collection options and clickbyname, or index or get object. I'm just struggling. 
      Description of object I'm trying to click -- 
      HTML Code looks like <a ng-click.. "Click Here" it appears it's just a click able object named "click here" that opens a hidden window by running a script inside the web page. I'm not able to grab the information from the window unless it's open so I have to automate this click somehow. 
       
      I understand it's difficult to assist without having something to look at, I apologize for that sincerely and appreciate and assistance and suggestions. 
    • By UEZ
      I'm using very often binary strings to read images, sounds, etc. directly for memory to avoid any file installation.
       
      Here a small tool to convert any file to a base64 string incl. compression option to use it within your script to avoid usage of local disk (file install)! It will also created the needed functions!
       

       
      Code is too long now for the code box -> Pastebin.com
       
      Download: File to Base64 String Code Generator v1.20 Build 2020-06-05.7z (6238 downloads previously)
       
       
      Code will run on 3.3.11.4 or higher versions only !
       
      Thanks to:
      Ward for the _Base64Encode() / LZMAT / MsgBoxEx() functions.
      trancexx for the LZNTCompress / LZNTDecompress and _Base64Decode() functions!
      wraithdu for bug fixing and advancing the code!
       
       
      Just load any file(s), convert it and use it in your code! Checkout tooltips when hovering some controls... 😉
       
      Example using some images from ..\AutoIt3\Examples\GUI folder.
       
      Display images from memory in controls:
      ;coded by UEZ 2011 #include <buttonconstants.au3> #include <guiconstantsex.au3> #include <GDIPlus.au3> #include <SendMessage.au3> #include <WinAPISysWin.au3> _GDIPlus_Startup() ;~ Global Const $IMAGE_BITMAP = 0 Global Const $STM_SETIMAGE = 0x0172 Global $msg Global Const $hGUI = GUICreate("Example", 600, 250) Global Const $idLogo = GUICtrlCreatePic("", 215, 20, 169, 68) Global Const $idButton = GUICtrlCreateButton("", 266, 150, 78, 81, $BS_FLAT + $BS_BITMAP) Global Const $hButton = GUICtrlGetHandle($idButton) Global Const $Bmp_Logo = _GDIPlus_BitmapCreateFromMemory(AutoIt_Logo(), True) _WinAPI_DeleteObject(GUICtrlSendMsg($idLogo, $STM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Logo)) Global Const $Bmp_Button = _GDIPlus_BitmapCreateFromMemory(Merlin(), True) _WinAPI_DeleteObject(_SendMessage($hButton, $BM_SETIMAGE, $IMAGE_BITMAP, $Bmp_Button)) _WinAPI_UpdateWindow($hButton) GUISetState() While True $msg = GUIGetMsg() Switch $msg Case $idLogo MsgBox(0, "Information", "The picture has been clicked!") Case $idButton MsgBox(0, "Information", "the button has been clicked!") Case $GUI_EVENT_CLOSE _WinAPI_DeleteObject($Bmp_Logo) _WinAPI_DeleteObject($Bmp_Button) _GDIPlus_Shutdown() GUIDelete($hGUI) Exit EndSwitch WEnd Func AutoIt_Logo() Local $AutoIt_Logo $AutoIt_Logo &= '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' $AutoIt_Logo &= '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' $AutoIt_Logo &= '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' $AutoIt_Logo &= 'cy5hgUkAqHEOcABh1yoABOpwVLGVSVcAZYpQ1AQvsBMAfYoZ69AEe4AABTHzZgA0ABsA4AsP0D+WCrMAHmBImEED/eUAEPEKAC5Qr50AsAqkCpDX8AkABkALbxAGofAARVJrC0FzsPcAYFi0kLW+KgUAV7kGwvCmLQAABxcLbAPRD9IAig0JkADkmQEA4LAuGogXHQAAA85gLntAGOMAxBSD0AEJMAYAd4AXCTAANDAAdEtwBTKQBF8AAAlYME6EAQMAotMEAgADIzAAAAlQB/81lpIA/wAEqUAkrQMAHIMQGom3BCAA0wH6kgSD0L0A3QoHQNQQ0uAAC+zgAs7gDAgAgAb+iKqVe7kAW1APiCABUQsAOJ/bDVpgA2EAAAG0wKsQywkAczALZ9AJzuAAAiwgAObDU6AA6Q9CYAXqMAEALgAHwICzWYMADxoHtuyAAScA1gS+QIMIgAAAVtACPoABOzAAAVFQryEsAIsAdG4u8AL4W68AL6DCTNByJvAAuFaAADjQYggAMAE+IABgsAcATHAbWfOnGwAAtkF8bdzRBEAAELZEOwEUCwcAMqB4jDsMGXAAvy7gAssgAnwA4HR6EASWCwEAAQxBUXs4CIwACFTAwDNQAHoAIAW4hpk0cMYA7DBnLmQ2WUMAAzS8AzIgA0AA/+CzYvMAzuAAC4icyEAgeZkA0AQykAHfIgAAMhAAe9AIwIAAyIi8yIuUCQgABQSJfMpA8AAA8NNyrmECviAACZLgCwKwA2AA8ACpMHkzkQkAD6AOkhDJigwABoqXA00QB7MAcsq/LMYOIQYAauADL9ACLeAAAgiAAmuMqkEA0Kqw8Az18EAAP7DN1xNHEAAACzNQCOnVx6sAsAzOzA7zwQ8ATUB3AuFIlfQASEP8D+5cSXgAQCQttwdxkM8Ae3BQTPDOP+sAnRH2zpMHGcIAjAd7AAL5HAcAILAH69YxYTEAz5GUbSGSA1cAgG30PFwPkQMA0rADPsAOzgwAzfybCAqgB4IAMA4zAAungAsAXPQETxBHzxAADm4wDkGgBz0A/4CNa9AF5twAAi8Axhk8m7IAswRAHdSbw0gAQh3Uf5QDNMcABOc5c0VX1EAAHRY50NRF/UcAjDRESs0E58MA1Ljx01PNFlEA7dRUndHVIAAAHe3MLUAEZ1AAA+jwCuSgB4UAYNJuEA6nMNcA4QDTqCDOt/AACokwByKwAdwAcM4+sANxcJ4AQw0SUR3WG5EAA4pddIgtFGIAYA0CAAfs8AIAzayPJUBvPUAADkcQBIWACp4A7dmFUAhHMFMA61UDQxABE6AA0ywAB4K91AMABCyR8dg7kAEAAEDZPrwMUcAABYuQCK7QA7cAcATADdy3QA4ArwANiwANSFAAgzqNpxggA3EA0EevDduxXQ0AQCAJPsACto0AxstwATeARW0A/wANsiAL0PAA3WiABDzwDZ0A0AKTzQI+EL4AILDURifd3SEARA8gALTNAuwAkN8vMAEemg4Av9AFQ9AFZ/AACzywDVbQwy8AwA4sAAAZAAwAARAIWR3d8p0AMplgDWAALgAAwAL4PdnOIAwAy0AEII4ANMAAnwmu4AxuAkAA8NznU9gT/iYAslMNpAAEJoAAAT6Q4Rue3zgAnt8aDgAzLAAAKa7O89LYLS4AIlGdCdUQCAEAIAMmsA4Z4AMANQ4AUM7jPpAAAetgApv83C4AdAXsPOTAUuQAV6AKpPCsQLAAA8AgAGb+yZMA3GiBAORaLuQAXI4pi50JV/AA5aqgCk8KAqQAAAKBoArqfD4Ac66+Ev7mmNIA1HI+5+syRHMAIO4rgC7ojF4AEIp92IxddIoA3eiUXumWfukAmJ7pmr7pnB4AEAA7' $AutoIt_Logo = _Base64Decode($AutoIt_Logo) Local $tSource = DllStructCreate('byte[' & BinaryLen($AutoIt_Logo) & ']') DllStructSetData($tSource, 1, $AutoIt_Logo) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress) $tSource = 0 Return Binary(DllStructGetData($tDecompress, 1)) EndFunc ;==>AutoIt_Logo Func Merlin() Local $Merlin $Merlin &= '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' $Merlin &= 'OZ54QIDDNkMgcVa9lHDvBwQEII8AgJTwgB0gM0LrCTzIYIo5eqSwRAgQpPKKBFNk45QxU9grQSpePNBAAvYAckAJhgT/Me0G2DhhxwMQXDGLEEdssccm1dSjwAWAOJWP1GsHAUoKLOAiAAGAfAABDzFggI0VL8hTwgEh5KIKOCxgkkwwCqzd9lD1XKG2AvXU0kEf65RiD+d7LwHHCBj8wEPPPYsgzO6DYOLwvb3o1AwuqdwbDSCLALNFKJvrvXcKJzABxxQ9AwKIACLkMUwfHUACgU8SQBA9TJu8fy8BS3BRxg0JGJA38iFIhCAYcADzAYIA9hDAEgrghlgIIgQPs9cUQPASKDQAEK94xQU+IAB9+EEK+gjAA37nPa354AAESOEBE2iAFKTDBwnImk8uIAAtgOsk14DBGlpggFQcwAAzGEIB/xjAgAgIIAQh8N4Bp2APbqWQhQxoQToYIAAIlGACj1jDGm6IQxjokAcG8MCqBlCAASTgAYK4QhLNRwABuPF3bTTAAwbgh0dM4AFQgMYadMhFlCTiC87gRTh80AI/BKAABQiACEyRDDWu0I1uTKEADGCALWjhEUawBS9EsQYy9BEliDhFIVCAAmV8oQD6KEADFAkJVSgiBJKkJCTdKII9uIALjyDDKNsAh6y0hgp0gEMDBnCNRNwgFLmYxSweKUsB5AN9odCDC4iQDnLg4DiKIgoSspCBFWQgDvIgphkSUYoOzCIZv3OjLEUQDEWAAhQdWAcR4ODNFVSAHKgaChLekf+BDNThFqMYwASkwYYOdEAIwRCBOilJSXsoQhUdoAEQhtGINERhBbdAgVOQgALWkCEDUBhAA1hAAyEIQRiQZChDH2AARUSUBtJoRBTYsYI4oGA5Q7GGP7LzhSTgogAzWMAiPOEJA6T0AUhl6BKEIQSJSmEP7BhCGvxRCKdQog47hQY0GABULTTAAyJg6UojgNQHiOAFQtCDHtjAg058oQ7kSII3skKJRtAiCZxApBa0UIAEkHWsESArS9vxggSMQg9wSActCqGLuc7FDsDgxDV24AO+BuCvcoxAAjYb2Ah4wAMJ8EAlYjEEdXDiHogIzDDigYw+mIEFPkikX8u62QD/bPa2tdVHA4aADH54ZC6IYEE/+vAJcLghtgywLVKXkIAAONe5t3UuV4fAiXT8di6XQMYnzrEFNPA1uZu9Ai48EAB93OC5zyViAaSgjk5cNytg4IcdzDAIHlR2iLb1QB4wUQkSVGIR50UvA8iohXLkMjAqSAcXCmAGO6DBAmVMrn5pkIsjAMETAZYuVwtQYGc8IjDGMMEEGpACalgAwikYgD5G4QkgsIEGpbgBEZMbAPVy2AgWSAeIRVyACczAAnwtgDxKAYQOsOHIeZDxjGes13RYAFdzMYQFJkDlGfghyAyoxB7McGQagKMS+mBAmJkM1HQYQQsI3usMZqCFKyNyacCyWAQbznEEM7hAyWSeQJuvoALNwAIKUNBCC6b85hvAgQ2J2MEO5LFkG0/AAipILXNOAQYLxBaRN1hEOxqgygWseQYNaEBQfZCCFHxIBW8otTwYPYAUGGITIIi1rGP9BplB6da4TkhAAAA7' Return Binary(_Base64Decode($Merlin)) EndFunc ;==>Merlin Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize = 0x800000) Local $tBuffer, $Ret $tOutput = 0 $tBuffer = DllStructCreate('byte[' & $iBufferSize & ']') If @error Then Return SetError(1, 0, 0) $Ret = DllCall('ntdll.dll', 'uint', 'RtlDecompressBuffer', 'ushort', 0x0002, 'ptr', DllStructGetPtr($tBuffer), 'ulong', $iBufferSize, 'ptr', DllStructGetPtr($tInput), 'ulong', DllStructGetSize($tInput), 'ulong*', 0) If @error Then Return SetError(2, 0, 0) If $Ret[0] Then Return SetError(3, $Ret[0], 0) $tOutput = DllStructCreate('byte[' & $Ret[6] & ']') If Not _WinAPI_MoveMemory(DllStructGetPtr($tOutput), DllStructGetPtr($tBuffer), $Ret[6]) Then $tOutput = 0 Return SetError(4, 0, 0) EndIf Return $Ret[6] EndFunc ;==>_WinAPI_LZNTDecompress Func _Base64Decode($input_string) Local $struct = DllStructCreate("int") Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(1, 0, "") Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]") $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(2, 0, "") Return DllStructGetData($a, 1) EndFunc ;==>_Base64Decode  
       
      Play a wave file from memory:
      ;coded by UEZ #AutoIt3Wrapper_UseX64=n #include <apiconstants.au3> $binWave = Wave() $tWave = DllStructCreate('byte[' & BinaryLen($binWave) & ']') $pWave = DllStructGetPtr($tWave) DllStructSetData($tWave, 1, $binWave) _WinAPI_PlaySound($pWave, BitOR($SND_ASYNC, $SND_MEMORY, $SND_NOWAIT)) $tWave = 0 Sleep(2000) ; #FUNCTION# ==================================================================================================================== ; Name...........: _WinAPI_PlaySound ; Description....: Plays a sound specified by the given file name, resource, or system event. ; Syntax.........: _WinAPI_PlaySound ( $sSound [, $iFlags [, $hInstance]] ) ; Parameters.....: $sSound - The string that specifies the sound to play. The maximum length is 255 characters. If $sSound is ; empty, any currently playing waveform sound is stopped. ; $iFlags - The flags for sound playing. This parameter can be one or more of the following values. ; ; $SND_APPLICATION ; $SND_ALIAS ; $SND_ALIAS_ID ; $SND_ASYNC ; $SND_FILENAME ; $SND_LOOP ; $SND_MEMORY ; $SND_NODEFAULT ; $SND_NOSTOP ; $SND_NOWAIT ; $SND_PURGE ; $SND_RESOURCE ; $SND_SYNC ; ; Windows Vista or later ; ; $SND_SENTRY ; $SND_SYSTEM ; ; Three flags ($SND_ALIAS, $SND_FILENAME, and $SND_RESOURCE) determine whether the name is interpreted ; as an alias for a system event, a file name, or a resource identifier. If none of these flags are ; specified, _WinAPI_PlaySound() searches the registry or the WIN.INI file for an association with ; the specified sound name. If an association is found, the sound event is played. If no association ; is found in the registry, the name is interpreted as a file name. ; ; If the $SND_ALIAS_ID flag is specified in $iFlags, the $sSound parameter must be one of the ; $SND_ALIAS_* values. ; ; (See MSDN for more information) ; ; $hInstance - Handle to the executable file that contains the resource to be loaded. If $iFlags does not ; contain the $SND_RESOURCE, this parameter will be ignored. ; Return values..: Success - 1. ; Failure - 0 and sets the @error flag to non-zero. ; Author.........: Yashied ; Modified.......: ; Remarks........: None ; Related........: ; Link...........: @@MsdnLink@@ PlaySound ; Example........: Yes ; =============================================================================================================================== Func _WinAPI_PlaySound($sSound, $iFlags = 0x00020010, $hInstance = 0) Local $TypeOfSound = 'ptr' If $sSound Then If IsString($sSound) Then $TypeOfSound = 'wstr' Else $sSound = 0 $iFlags = 0 EndIf Local $Ret = DllCall('winmm.dll', 'int', 'PlaySoundW', $TypeOfSound, $sSound, 'ptr', $hInstance, 'dword', $iFlags) If (@error) Or (Not $Ret[0]) Then Return SetError(1, 0, 0) Return 1 EndFunc ;==>_WinAPI_PlaySound Func Wave() Local $Wave $Wave &= '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' $Wave &= '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' $Wave &= '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' $Wave &= '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' $Wave &= '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' $Wave &= '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' $Wave &= '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' $Wave &= 'CwCyAHX/w/+xAMX/T/8JAar/MP9SAU7/fP83AS3/y//YAHn/tv+hAOf/TP/PAAAAA/8pAbb/Iv9DAWz/ff/5AIv/nf+cAPv/V/+UAEIA+f7kABwA5/4oAcX/Lv8IAbH/d/+hAAQAaP9kAGgADv+SAHMA0P7rACcA8f77AO3/SP+mABEAb/9GAHcANP9DALAA3P6WAIYA0P7OADgAHP+fACoAa/83AHUAYP8EAMsACv82ANIA0f6EAIsA/f6FAFIAXf8vAHAAg//d/8kAR//h//4A9f4pANYA9/5TAIUAT/8kAHAAm//I/7UAif+d/wgBN//M/wcBEP8NALsASP8OAHwApf/C/5kAwv91//IAiP95/w==' Return Binary(_Base64Decode($Wave)) EndFunc ;==>Wave Func _Base64Decode($input_string) Local $struct = DllStructCreate("int") Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(1, 0, "") Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]") $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(2, 0, "") Return DllStructGetData($a, 1) EndFunc ;==>_Base64Decode  
       
      Display Font from Memory:
      ;coded by UEZ #include <GDIPlus.au3> Global Const $bFont = _bFont() $sFontname = "Jellyka - Estrya's Handwriting" $hGui = GUICreate("Example 1", 400, 320) $tFont = DllStructCreate('byte[' & BinaryLen($bFont) & ']') DllStructSetData($tFont, 1, $bFont) $hFont = _WinAPI_AddFontMemResourceEx(DllStructGetPtr($tFont), DllStructGetSize($tFont)) GUICtrlCreateLabel("AutoIt Memory Font Example", 25, 10, 380, 100) GUICtrlSetFont(-1, 100, 400, 0, $sFontname, 4) GUISetState(@SW_SHOW) _GDIPlus_Startup() $hGfx = _GDIPlus_GraphicsCreateFromHWND($hGui) $hCollection = _GDIPlus_FontPrivateCreateCollection() _GDIPlus_FontPrivateAddMemoryFont($hCollection, $tFont) $hFamily = _GDIPlus_FontFamilyCreate($sFontname, $hCollection) $hFont = _GDIPlus_FontCreate($hFamily, 80) $hFormat = _GDIPlus_StringFormatCreate() $tLayout = _GDIPlus_RectFCreate(60, 230, 400, 80) $hBrush = _GDIPlus_BrushCreateSolid(0xFF404040) _GDIPlus_GraphicsFillRect($hGfx, 0, 200, 400, 200, $hBrush) _GDIPlus_BrushSetSolidColor($hBrush, 0xFFF0F0AF) _GDIPlus_GraphicsDrawStringEx($hGfx, "GDI+ Schrift", $hFont, $tLayout, $hFormat, $hBrush) While GUIGetMsg() <> -3 Sleep(10) WEnd GUIDelete($hGui) _WinAPI_RemoveFontMemResourceEx($hFont) _GDIPlus_FontDispose($hFont) _GDIPlus_FontFamilyDispose($hFamily) _GDIPlus_StringFormatDispose($hFormat) _GDIPlus_BrushDispose($hBrush) _GDIPlus_GraphicsDispose($hGfx) _GDIPlus_Shutdown() $tLayout = 0 GUIDelete() Exit #region ;Code was generated by: File to Base64 String Code Generator Func _bFont() Local $bFont $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= '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' $bFont &= 'AloCAFsCXAJdAl4CAF8CYAJhAmICAGMCZAJlAmYCAGcCaAJpAmoCAGsCbAJtAm4CAG8CcAJxAnICAHMCdAJ1AnYCAHcCeAJ5AnoCAHsCfAJ9An4CAH8CgAKBAoICAIMChAKFAoYCAIcCiAKJAooCAIsCjAKNAo4CAI8CkAKRApICAJMClAAERXVyAG8HdW5pRjAwCjF0ADJxADAyQzkZcgAwQnUAcwEwQjNQCklkb6CvY3CxBwBBbWFjcm9uByJhcwAGQWJwzmUGEmFiAAdBALRuZWsEB2FzAAtDY2lyAGN1bWZsZXgLkmO3AApDBgUKY6YAUAZEY2EhBWRjAESh8AVhdAdFBAdlBAdKRQMHZWIACkWHBGWVRwpFZAhlcwAGRRMFUmViAAtHSAlnSAlHpbcEZ6YADEfRxmHEAFJnyAALSHgEaLcABEBIYmFyBGhAAAZCSdDGZGUGaWIAB6pJlAxplAxJkwxpoxMKSTQLaXMAAklKAlBpagtKOAZqtwAMKktZCWvKAGfA4G5sAGFuZGljBkxhkVDjZQZsYgAMTHkCUmzIAAZMAxJsYgAEkkzQDwRsQAAGTvMDqm7zA075A275A07zA0JuAxZuYXBvQNlvAHBoZQNFbmcDoGVuZwdPxA9vxA8KT8MPb2IADU9odYBuZ2FydW1s0NakDW/ZAAZSMwhyMwiqUjkIcjkIUjMIcmMASlNTA3NiAAtTaBRzVWgUVNkEdNkEVGMEdNUTEVQhHXQhHVUjHXHkVSAdVVQNdVQNVVMNdQFhAJK1AGUFVXJpbmcFAnUBUA1VaHVuZwBhcnVtbGF1dAQNdQloB1VvZ28gbmVrB3UDHAtXAGNpcmN1bWZsUGV4C3cIFlkIFnkBBxYGWmFjdXRlBAZ6AgwKWmRvdABhY2NlbnQKegEGCgVsb25ncwoWQQGLAyZhBgoHQUUJAwdhZQIHC09zbChhc2gDC28HCwV0AG9ub3MNZGllIHJlc2lzAg0KQRBscGhhAgoJYW4Ab3RlbGVpYQwwRXBzaQBwAgsIRRp0hA9JAEaCBAxPbUhpY3KEDwxVCBYKkE9tZWcDEhFpABcFijUFgjUEQmV0YQAFR2FtbWEHdYBuaTAzOTQHhDcUBFoADQOANwVUaAWABAQBOAVLYXBwAGEGTGFtYmRhAAJNdQJOdQJYBGkHhEACUGkDUgBobwVTaWdtYSADVGF1B4RGA1AQaGkDQ4ABUHNpsQMzQTkMgSeFSA8EFMmFBwphBoQMZQl/ACLngz/BM0ICFHWLDgM3wg8UBGIBN2cBNwVkZZBsdGEHxBIEeoE2TQEHdII2ARMFa4I2bAOCNgMpQkMCbnUCEHhpB2/DNwNyaEhvBnMBNzEFggEDpnTAOMQfA3DAN2PAAKmAAwVvAV4MyVwPjCl+DMQUwzgEB0NtAg8EgWaAaWkxMDAyM0UCtDUxRgIyRgJHBzRGAqo1RgI2RgI3RgI4RgKyOUUCNjBGAsYYNsUYVDE0xhMxRhExRhExVUYRMkYRMkYRMkYqMlXGJzLGEzLGJzJGFjJVRhYyRhYzJgszJgszVSYLM2YgM2YMM2YMM1VmDDNmDDNmDDNmDDRVZgw0Zgw0Zgw0Zgw0q2YM5yI0Zgw0Zgw0ZgxWNOcsJgY2JgY2JgY2VSYGNiYGN6YSN2YRN1VmETdmETcmCzcmCzdVJgs3Jgs3Jgs4Jgs4VeYdOGYMOGYMOGYMOFVmDDhmDDhmDDhmDDhVZgw5Zgw5Zgw5Zgw5VWYMOWYMOWYMOWYMOT/nGKcIZQxgASYBpQMxMCVmVzBlDDEwZQwxMEllDDEwZQwxMGUMMdIw5RgxMGYMMWYMZxYCNWcbOAZXZ3JhUHZlBnfDAFejyHdJwgAJV8V+CXclAQY6WQMFecIA4gjBZzgNAHVuZGVyc2NvAHJlZGJsDXF1EcDAcmV2QAJlZAaIbWluoQpzZWMgiXAJZXhjwJWgBMGVMggwM0XjADdGBGyAaXJhBnBlc4CbcSIL' $bFont &= 'NjEyZFEgAWQzNgQxM2CIZXN0aW0gYXRlZAmA5WVpAGdodGgMdGhygmVkAXMLZml2ZQEUDHPgEG6EAQlhcgByb3dsZWZ0B9kiAXVwgODgAHLBA4MDEGRvd24jAWJvdIJoIwF1cGRuDCYBAGJzZQpvcnRowUH1YWwMaW5gHYAbAHRpb24LZXF1AGl2YWxlbmNlgAVob3VzZQ1gEIBsb2dpY2FssHFGCsECsBNsdHCmAGLwdAhTRtAYAACBAJIAV4AAASKDADOFADKFADRVhQA4hQA5hQA2hQA3VYUANYQANHUEMuUDNVUlBjWVBTN1BDIVATK9NQIydQRyAAIFxQIzZQjWMoYA1Qcy9QgzhgClAVo0JQYxRgeVBTKlCjTrxgKVBTT1CDR2DZUFYg0fEgoGDnYEEgFQb2Jsb1hjawcwHHEABdMAbFJmcwBydPQAdNCOZERlBVIAB2RrcgAJEGZpbGzALW94BgJIwBE3MwZIMThENTRjADUxCuMBcgFgIAd0cmlhZ3VKcHMAcvQAZG5zAGxkZgZhm2xlggMQYGnQbnZidbADdJEAowEgCm9wZW5EAXNtomngKmFjZXAmdsYAAANzdW4GZmVtRZAmBEEABXNwMAoEAGNsdWIFaGVhIUAHZGlhbeA2C21kdXO0J2UOuAD0N0YTQF50ADUAAgAB//8AAAI=' $bFont = _Base64Decode($bFont) Local $tSource = DllStructCreate('byte[' & BinaryLen($bFont) & ']') DllStructSetData($tSource, 1, $bFont) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress) $tSource = 0 Return Binary(DllStructGetData($tDecompress, 1)) EndFunc ;==>_bFont Func _Base64Decode($input_string) Local $struct = DllStructCreate("int") Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(1, 0, "") Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]") $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(2, 0, "") Return DllStructGetData($a, 1) EndFunc ;==>_Base64Decode Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize = 0x800000) Local $tBuffer, $Ret $tOutput = 0 $tBuffer = DllStructCreate('byte[' & $iBufferSize & ']') If @error Then Return SetError(1, 0, 0) $Ret = DllCall('ntdll.dll', 'uint', 'RtlDecompressBuffer', 'ushort', 0x0002, 'ptr', DllStructGetPtr($tBuffer), 'ulong', $iBufferSize, 'ptr', DllStructGetPtr($tInput), 'ulong', DllStructGetSize($tInput), 'ulong*', 0) If @error Then Return SetError(2, 0, 0) If $Ret[0] Then Return SetError(3, $Ret[0], 0) $tOutput = DllStructCreate('byte[' & $Ret[6] & ']') If Not _WinAPI_MoveMemory(DllStructGetPtr($tOutput), DllStructGetPtr($tBuffer), $Ret[6]) Then $tOutput = 0 Return SetError(4, 0, 0) EndIf Return $Ret[6] EndFunc ;==>_WinAPI_LZNTDecompress #endregion  
       
      Display embedded ico file in system tray:
      #include <GDIPlus.au3> #include <WindowsConstants.au3> _GDIPlus_Startup() Global $hBmp = _GDIPlus_BitmapCreateFromMemory(_AutoIt_Icon()) ;load ico and convert it to a GDI+ bitmap ;convert bitmap to HIcon Global $hIcon = _GDIPlus_HICONCreateFromBitmap($hBmp) _WinAPI_TraySetHIcon($hIcon) Global $hGUI = GUICreate("Display embedded ico file in tray", 320, 50) GUICtrlCreateLabel("Look at tray icon", 0, 0, 300, 200) GUICtrlSetFont(-1, 30) GUISetState() Do Until GUIGetMsg() = -3 _GDIPlus_BitmapDispose($hBmp) _WinAPI_DestroyIcon($hIcon) _GDIPlus_Shutdown() Exit Func _WinAPI_TraySetHIcon($hIcon) ;function by Mat Local Const $tagNOTIFYICONDATA = _ "dword Size;" & _ "hwnd Wnd;" & _ "uint ID;" & _ "uint Flags;" & _ "uint CallbackMessage;" & _ "ptr Icon;" & _ "wchar Tip[128];" & _ "dword State;" & _ "dword StateMask;" & _ "wchar Info[256];" & _ "uint Timeout;" & _ "wchar InfoTitle[64];" & _ "dword InfoFlags;" & _ "dword Data1;word Data2;word Data3;byte Data4[8];" & _ "ptr BalloonIcon" Local Const $TRAY_ICON_GUI = WinGetHandle(AutoItWinGetTitle()), $NIM_ADD = 0, $NIM_MODIFY = 1, $NIF_MESSAGE = 1, $NIF_ICON = 2, $AUT_WM_NOTIFYICON = $WM_USER + 1, $AUT_NOTIFY_ICON_ID = 1 Local $tNOTIFY = DllStructCreate($tagNOTIFYICONDATA) DllStructSetData($tNOTIFY, "Size", DllStructGetSize($tNOTIFY)) DllStructSetData($tNOTIFY, "Wnd", $TRAY_ICON_GUI) DllStructSetData($tNOTIFY, "ID", $AUT_NOTIFY_ICON_ID) DllStructSetData($tNOTIFY, "Icon", $hIcon) DllStructSetData($tNOTIFY, "Flags", BitOR($NIF_ICON, $NIF_MESSAGE)) DllStructSetData($tNOTIFY, "CallbackMessage", $AUT_WM_NOTIFYICON) Local $aRet = DllCall("shell32.dll", "int", "Shell_NotifyIconW", "dword", $NIM_MODIFY, "ptr", DllStructGetPtr($tNOTIFY)) If (@error) Then Return SetError(1, 0, 0) Return $aRet[0] <> 0 EndFunc ;==>_Tray_SetHIcon ;Code below was generated by: 'File to Base64 String' Code Generator v1.12 Build 2013-05-17 Func _AutoIt_Icon($bSaveBinary = False, $sSavePath = @ScriptDir) Local $AutoIt_Icon $AutoIt_Icon &= 'AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3Z1rU1NTLubm5saAAAAAFZOSClTTkuPa2lotnNycrlgXFmwQjs1dUtDPjkAAAAAAAAAAAAAAAAAAAAAAAAAAJyamdiurq7/Pj08wDUuKW5/f3/snJiU/5WGdv+WgGv/fndx/25raP+Tk5P5ODErfQAAAAAAAAAAAAAAAAAAAADAv749ubm57ZaWl/9qamr/jXpp/45kPP+vekj/uoBI/6qVgf9dWFT/i3Nd/62trf85Mix+AAAAAAAAAAAAAAAAAAAAAKGdm4e9vr//eHh5/4BWL//YnGH/1Jpj/9aXW//Oqof/kpSX/4NYLv+YfWT/np+g/UpCPEMAAAAAAAAAAAAAAABfWFJ8yszN/7zBxf98b2P/t39I/9iZXf/amVr/z6R6/6autv+eelf/nWo5/6qimv9aV1SgAAAAAAAAAAAAAAACbGhlpqGXjf/Fwr//ub7D/4Z+d/+Td1v/oXVL/7CSdf+4wMj/nH5g/7uBSP+Xgm3/c3JxywAAAA0AAAAAJBoRE5OTk8+Jc17/tJFw/9bZ2//O0dX/wsfL/7a7wP+5urz/ys7S/5eCb/+9gkj/l3xi/4SDguB5cm0UAAAAAAAAAAKGhYS7k4Z4/6hvOf/Zupv/19zh/4iEgP+qk33/19TS/9nc4P+jmpH/p3I+/5uEbv+BgH/XAAAADAAAAAAAAAAAa2ZjiaWhnf+NZ0P/3rCE/+POuf+vsbT/lo6I/93c3P/i5ef/tK2m/5RrQ/+onZP/XVhVoAAAAAAAAAAAAAAAAFpTTByWlZTtkIJ0/8Wniv/jvpr/6N3S/+zw9P/n5+f/5ejq/66gk/+PeWT/2drb/25oY61nYFsXAAAAAAAAAAAAAAAATUU/ZMbHyP+nnZP/xK6Z/9zDrP/o497/8PHy/724sv+dj4L/ycjG/83Oz//g4eH/c25prAAAAAQAAAAAAAAAAAAAAABGPjl+q6qq8cPAvv+7sqr/vLGn/7u1r/+9uLT/29vc//L09f+urq7/x8jI/7y6uOEAAAAbAAAAAAAAAAAAAAAAAAAAAEQ9NzlpZGCemJaU25WSj92dmpfhcmxooUpCPH/c29r/zs/Q/93e3/+DfXmxAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHx2cRB+eHMSenNuFgAAAAAAAAAAWVJMYZmUkcJnYFuiZV5ZKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAA//+sQRAfrEEAD6xBAAesQYADrEGAA6xBAAGsQQABrEEAAaxBgAOsQYABrEHAAKxB4ACsQfAArEH8YaxB//esQQ==' Local $bString = Binary(_Base64Decode($AutoIt_Icon)) If $bSaveBinary Then Local $hFile = FileOpen($sSavePath & "\AutoIt.ico", 18) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_AutoIt_Icon Func _Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_Base64Decode  
       
      Display a transparent image in GUI:
      #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <WinAPIConstants.au3> #include <WinAPISysWin.au3> _GDIPlus_Startup() Global $iW, $iH, $hImage, $hBitmap, $hGUI $hImage = _GDIPlus_BitmapCreateFromMemory(_Torus()) $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) $iW = _GDIPlus_ImageGetWidth($hImage) $iH = _GDIPlus_ImageGetHeight($hImage) $hGUI = GUICreate("", $iW, $iH, -1, -1, $WS_POPUP, $WS_EX_LAYERED) GUISetState() _WinAPI_DisplayTransparentBitmapInGUI($hBitmap, $hGUI) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE _GDIPlus_BitmapDispose($hImage) _GDIPlus_Shutdown() GUIDelete() Func _WinAPI_DisplayTransparentBitmapInGUI($hHBitmap, $hGUI, $iOpacity = 0xFF) If Not BitAND(GUIGetStyle($hGUI)[1], $WS_EX_LAYERED) = $WS_EX_LAYERED Then Return SetError(1, 0, 0) Local Const $hScrDC = _WinAPI_GetDC(0), $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC), $hOld = _WinAPI_SelectObject($hMemDC, $hHBitmap) Local $tSize = DllStructCreate($tagSIZE) $tSize.X = $iW $tSize.Y = $iH Local $tSource = DllStructCreate($tagPOINT) Local $tBlend = DllStructCreate($tagBLENDFUNCTION) $tBlend.Alpha = $iOpacity $tBlend.Format = 1 _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, DllStructGetPtr($tSize), $hMemDC, DllStructGetPtr($tSource), 0, DllStructGetPtr($tBlend), $ULW_ALPHA) _WinAPI_ReleaseDC(0, $hScrDC) _WinAPI_SelectObject($hMemDC, $hOld) _WinAPI_DeleteObject($hHBitmap) _WinAPI_DeleteDC($hMemDC) Return True EndFunc ;Code below was generated by: 'File to Base64 String' Code Generator v1.19 Build 2014-11-14 Func _Torus($bSaveBinary = False, $sSavePath = @ScriptDir) Local $Torus $Torus &= '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' $Torus &= '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' $Torus &= 'WcujBSMBNYVACfRRGuVNVoBJTzAqASj1mbJUMsDPnRewUslLHwPs0qU0VUvJr31DM1+qR0DvwW7OVzFBqccggapiAg0VKXQLKThjY7HY4hnMNS6AFhKJzZb8qZNAjhSzIIJD9AmnA5z6GMD1O2zdAX9ATB6JP5t8WxASXIklfw89AC6vDuWPT4m6GGDKZXhGIUDGHsCRwZT++DkkDUoHVBAldSmyPLZ0D0r9gCQ1CUTX6ooEBFG5PyoJ6C/9MCvCM2hBCnmOQR56B5vaF1mkJHFkSTyBuOJPtoy1loxFBF0xzK7c5fiJZ56H3/A9gDu69cE6moZmWhZEmHcSUCCMHuDP8CG9NbcPbrAuQATBhgQRAkxNTfmSv+NKfyl/ErxOO+0vS/9ClOxVqe6yOwxyV+p7cvgMkQO+qtYS9OUs6go8CaFOAiVLeKVrYjqWMfLAhHpNNqHM5yvJK1Dpn2VeDrE8sro/9WlXk1J1HickghZeIJBGKb6/Cy4E2PtdgPtgEPzhIB+0lIsF5tnavJPgCoD3Igl+JRWZIF7oyXSCLNCULPUFAbKsOk6lf+o9gZU/1MyBA1YvbcqyltMn4HMbGgniugyKAN99VhgIV39fSZyhiw7IEMgfHSXEYD0Dl/xcyZaEngFEee8q25KsLo9knEDWRIQwIlD+GmP5EQDnPgvg+7cD7IA64GMegZ3QxAbM80oCCoT3A/wPfCpHxwJh0xSik9fSoHlnPALovC5/VIOs8dLHnSsl+IXsiQGfCWWvqzJDpfcqo3sErcHHIPZeoU4EUeKHhAAIvIIgA7d5qJXaPnC257w8GpMIoWmlaiim9l7HA5z1DMYHTwBMQ7McktsTS4R5I8GVqBfRA3wCHfJzWf5IKdRxbYFyV7vr6wFcE4fKG+RjEaAU4JWlfyHJIeOEMNMTAJ9BLwFfRrzDrJtOhMTQtjfZQOALMOgNoPIKiokAlVfgcx55IxJBHje+AO+H06pEANnWiMxVH594FhZ2NwLc0PO0Cz5qcHsipdG8kMDFAR+aAbisE4kDjCfIMtMYjuMArgjrdPJaEFw1chskgGntSJJHlPK1Cq/gOAfGtbF7tK4Rh/appSUDvxRZIr6m8J7ESpx+4FnaFga8H0ZFV6NLSFIwIUAAWsYDiXaVXLxv4FX3ChXsXNDMDfe43VETEcTfJ26fK9R87KH0QKCM7/U5LwDYd43thxCyqkkaTRwR8vn4EBoRAgnwUzIQlr3DwtpgqqTpCIAPZoECAkx1qjY9KgCxy/dzVigEuPEYoGvA1gb4pQNfFfzyOTIGMP+dBYKRBbpfqgNl0tzzKodkKk9gDf38MhjftEiU7f2WlNX4RniNqevQtpbaBrP2udF30jmFiMYrzO+nWmC6J7qezrERULPMEYgb1eHfKMIdSUx8jrFSj74jr+1z8/GeeR/8PMw5fEZ0RNv3u+oUgJ9/E8BdX7BNKwCqBsFNNnG91uZMgitRBmEc8Dvg+gXIzjDcJJoJkMi+AC4O4G6PjQTIs6EEqDWD0FWp64EvAC7BXwQp1BD4TgZ19yq1fVrpg7uUeuYJpbbdqtRjO5Waibxcg5TnpOm6F6bpGeuTZP2xaXrcmgSOWYtrBPUUOGLQ764I4Up30RSaCNAXAbApld3AAqrUtXZChsjuXMw8EWibpGcIApUbVBIYDCFye0WmLF5LlXoycF+ErPrRz7oU4F3XA3xgx2gz7HDadGKIMCcS0NCI3wR4fx/gXPN2oao5YRJ0xCgQHVHyp6JlqKwHiEmgUQngA19R+nst7+KFEPxMCgY+Sp3u3rLcvq9UezZr9fh9RbnldgT+wfhLi41uAjuQLN9T6hG+5jiA1Rel6cnnIzFOSdMzj87SZ61J0xPxueSDhCgNARj4TIbMlf5EBPYq1ivokYaGrHmEgAiZK/kNEXQFdgZ+h6sN8Bi9Q9Xvm7/nzgbo8i75twBX/HeAzwdfG5M+su5gIogwJxLQ2KBdgJ/gkeFiMkiOCGEa' $Torus &= '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' $Torus &= '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' $Torus &= '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' $Torus &= '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' $Torus &= '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' $Torus &= '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' $Torus &= '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' $Torus &= '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' $Torus &= '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' $Torus &= 'Xz4Uf070Ex4rO+SAz5IHnO4HF8yCKeEr4JfuGu8B6O+pOUiJ+MZSPykOlj1VHHwa4LHbAe6mKVLdRISjWqwjexshmuSPJMqoBFjyVGjja1rqGxhi4xAh5W1KpSIZnn8xwIuREK9BQpyJ8DpyoOQP9gfAH3lIIz8wRwAGtfcEDvSUxwcBfFvauw7VmtoaodbvH0DY9KBQxQEUPlvuwhL/+wBbaeCrEbM9ZE3j/sc6urfJInl8NmSYSAKYV7XUNzCixaRRBs2kYPJ0MF5Y/SMAZ58D8PLjcMHI+iQ8fmQKfrLLKOhleV8bIXukp1oRgINZu+2Ou1G1TTMGkjjUm4saQeC2xgWP6wL0gT0A2zYBPHg3wKY7ALaPAXyy2BCGIfjlMCgxQsSAHiNDOILExEug2uta6hsYw0bxCGnDvtlGr7DuhQCnnQdwwXokBhLk+XjyaLxoFbVeTcSksbW5mcd6YImnl+a1a4atTUqU+hHYFq9uEC/tRjrpoq7Z9yTAo1sR/Aj6xx4D2NMdrwQNS/1w6BJ5PAR/eKxJFhUwnAwTVQ8wwhtbVjYq+GvySGzXSHEqwFHPAzgRCXH0mQDnIknOXm0D69V40brEXjcQK8zGtFsQOV1EyDSiY3ovwDNY0j+8GeDpbUiApwD27x1viBE5XHkI/HA/lEKxQbFioA8D5ZjMWbYEIFtuJCAbB/wxAmSR47ym+ZbWoYc44gUApz8bF8o0HYEkWYvk4Do01GbH4B+s0Q3hApbee1EDTNN5EjwYyG7DY308RkM3kKbfiYq/mAXgyeS4nCEJYsBvk0JNmaG2QbNGJcOyseVIArJxwB8jQpQAUCdIFhz3VRDHIElW2zjFTttcP0/DNfe7FkhZcM/jmpRC4dSlEtjhfps3CEv+JiK0eYJhZFhWtlxJQBYCOuYhQiKEniAkAW+HrbUbCQEV0D0JgmMQ2R7VVGS7zSOM6g3COEFuh54gBHxblmjZEYBsQcciXWCjB94LfgO/yFysyeildsQxLqX5ulScl0BnUsjjBQwSAmBpSRCCHWAQ/P3IdTHwN3mCMPuzbOVPaMuZBGz8QiToJdglKSTQm8ggPQUfCz0AQJwEIfgXggRN8cCo8UEohWLgb5NCsSzRsrZDgQRk4QuUpT4fk6BuIkNsv0kSQXAeoJ0EsxnUQA5AFSMB7zd5gCYpVDTsD4sLwuzRsicA2aFCArJQHuRD1jEyhKX/qHFAE/gXkgQx0If7MSIMA39TXBDuHzK2nAPjNvPdjyGeGWoLjtvA3yaLAAbBv9DZIT7eJoPajo0bFxwypb+0Q5UEbDEitJEhBHkuPidGCIDBuABgcUkQS5OGwCcroJkQo8QFhxz42Q51ErCNQoa2Y8MC4ibwL3R2iNfDAuQ2GXTYgp/tcCEB2zAJNEwWATR7AwiOASwMCXi7LUBua0oRk0FN0uiwsMONBGyhBIqBP+YJQgnU5g34OogcH9VickgeV5HtJlI0ESIkw2EDfrbDlQRsUv60AT88DhAnBUC89J8NAdjCGCA81lR5NiwgDusKDnnZ02SHOwnYRs0MNTWTaIsL5LHZ2LDgOLY9CvBD6XTY2goJBk16BoDhnmCUOoL5IsGodQVNGaLDVvK02QoJmq0N9G0eYLE9Aa/b2hGtlPottkKC0SyWGeL9SfIEfExBPJZYsYitkGB2NumeYMXGsBUSzJ8tpSdYsTnYCgkWx+aLBCu2Yiu2Yiu2Yiu2Yiu2Yiu2Yiu2Yiu2Yiu2Yiu2Yiu2Yiu2Yiu2Yiu2YvNn/x8H6goDo7OU7wAAAABJRU5ErkJggg==' Local $bString = Binary(_WinAPI_Base64Decode($Torus)) If $bSaveBinary Then Local $hFile = FileOpen($sSavePath & "\Torus.png", 18) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_Torus Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64Decode  
       
       
      More examples:
      Playing SWF file (source code is too large for codebox)
      AutoIt Windows Screenshooter
      Play MP3 from mem using FMOD
      Toolbar from mem
      Play a GIF anim from mem
      Load animated cursor (.ani) from memory
       
      Br,
      UEZ
       
       
      History:
       
    • By nacerbaaziz
      question about _WinAPI_CreateWindowEx
      good morning
      welcome autoit team
      please i need your help
      i've searched a lot about how to use the _WinAPI_CreateWindowEx
      finally i found an example
      but i found some problem i hope you can help me
      firstly, i want to set the controls focussable with the keyboard input
      i already used the ws_tabStop but it did not work with me.
      secondly, i want to set some access keys linked with the window
      such as control+o enable the open button and control+f4 exit the app
      note: i need a local access keys and not a global hotkeys
      such as GUISetAccelerators
      finaly, before i will put the code here i must clarify a few things.
      1. you will ask me why you don't use the GUICreate function
      here i'll tell you that it as dialog and It is a little heavy in motion with screen readers.
      the screen readers for blind has some function that work with dialogs and others work with full windows style
      2. you will ask me why you didn't search the net for that?
      i will tell you that all examples that i found in the internet with pdfs and Picture books.
      i found some examples in microsoft but it with cpp.
      ok here is the code
      i hope you can help me to do what i want
      thank you in advance
       
      ; Small AutoIt Application that uses Windows API ; Written by Yuraj #NoTrayIcon #include <_RegisterClassEx.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> #include <FontConstants.au3> AutoItSetOption("MustDeclareVars", 1) ; Window definitions Const $WinWidth = 370 Const $WinHeight = 350 Const $WinXPos = (@DesktopWidth / 2) - ($WinWidth / 2) Const $WinYPos = (@DesktopHeight / 2) - ($WinHeight / 2) Const $WinTitle = "Win32 Application - Text reader" Const $WinClass = "mainapp" Const $WinIcon = _WinAPI_LoadIcon(_WinAPI_GetModuleHandle("shell32.dll"), 13) ; Windows handles Global $hwnd, $edit1, $btn1, $btn2 ; Fonts Global $fnt1 ; Register class, Create the window Local $retVal = __WinAPI_RegisterClassEx($WinClass, "WindowCallback", $WinIcon, 0, _WinAPI_GetSysColor($COLOR_BTNFACE), BitOR($CS_DEFAULTSTYLE, $CS_DROPSHADOW)) ; If $retVal == 0 Then ; If registerclass fails MsgBox(16, "Error", "Error while registering window class!") Exit EndIf ; Create windows/controls $hwnd = _WinAPI_CreateWindowEx($WS_EX_STATICEDGE, $WinClass, $WinTitle, BitOR($WS_OVERLAPPED,$WS_SYSMENU, $WS_MINIMIZEBOX, $WS_GROUP, $WS_DLGFRAME), $WinXPos, $WinYPos, $WinWidth, $WinHeight, 0) $btn1 = _WinAPI_CreateWindowEx(0, "button", "Open file ...", BitOR($WS_VISIBLE, $WS_CHILD, $WS_TABSTOP, $WS_CLIPCHILDREN), 25, 270, 100, 30,$hwnd) $btn2 = _WinAPI_CreateWindowEx(0, "Button", "Exit", BitOR($WS_VISIBLE, $WS_CHILD, $WS_TABSTOP, $WS_CLIPCHILDREN), 235, 270, 100, 30, $hwnd) $edit1 = _WinAPI_CreateWindowEx(0, "edit", "text", BitOR($WS_VISIBLE, $WS_CHILD, $WS_VSCROLL, $ES_AUTOVSCROLL, $es_readOnly, $WS_TABSTOP), 5, 5, $WinWidth - 15, $WinHeight - 100, $hwnd) ; Set controls identifiers _WinAPI_SetWindowLong($btn1,$GWL_ID,150) _WinAPI_SetWindowLong($btn2,$GWL_ID,160) ; Set (controls) fonts $fnt1 = _CreateFont("MS Sans Serif", 15) _WinAPI_SetFont($btn1, $fnt1) _WinAPI_SetFont($btn2, $fnt1) _WinAPI_SetFont($edit1, $fnt1) ; Set focus to edit _WinAPI_SetFocus($edit1) ; Show window _WinAPI_ShowWindow($hwnd) _WinAPI_UpdateWindow($hwnd) ; Main loop that keep application opened While 1 Sleep(100) WEnd ;=================================================================; ; WINDOW CALLBACK ... ;=================================================================; Func WindowCallback($_hwnd, $iMsg, $wParam, $lParam) Local $iNC, $iID Switch $iMsg ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Case $WM_CLOSE ; Show message on closing If MsgBox(48 + 4, $WinTitle, "Do you want really exit?", 0, $hwnd) <> 6 Then Return 0 ; Call destructor and then exit main thread FinalizeApp() Exit ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Case $WM_COMMAND $iNC = _WinAPI_HiWord($wParam) $iID = _WinAPI_LoWord($lParam) Switch $iNC Case $BN_CLICKED ; When is control clicked Switch _WinAPI_GetDlgCtrlID($iID) Case _WinAPI_GetDlgCtrlID($btn1) BtnOpenFileClick() Case _WinAPI_GetDlgCtrlID($btn2) BtnExitClick() EndSwitch EndSwitch ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EndSwitch Return _WinAPI_DefWindowProc($_hwnd, $iMsg, $wParam, $lParam) EndFunc ;==>WindowCallback Func FinalizeApp() _WinAPI_DeleteObject($fnt1) _WinAPI_DestroyWindow($hwnd) __WinAPI_UnregisterClass($WinClass) EndFunc ;==>FinalizeApp Func _CreateFont($fontName, $height = 16, $style = $FW_NORMAL, $italic = False, $underline = False, $strikeout = False) Local $hFont = _WinAPI_CreateFont($height, 0, 0, 0, $style, $italic, $underline, $strikeout, $DEFAULT_CHARSET, _ $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, $DEFAULT_PITCH, $fontName) Return $hFont EndFunc ;==>_CreateFont ;=================================================================; ; WINDOW EVENTS ;=================================================================; Func BtnOpenFileClick() Local $ret = _WinAPI_GetOpenFileName("", "Text files (*.txt)|All files (*.*)", ".", "", "", 1, 0, 0, $hwnd) If ($ret[0] > 0) Then Local $path = $ret[1] & "\" & $ret[2] Local $file = _WinAPI_CreateFile($path, 2, 2) Local $buf = DllStructCreate("byte[" & _WinAPI_GetFileSizeEx($file) & "]") Local $i = 0 _WinAPI_ReadFile($file, DllStructGetPtr($buf), _WinAPI_GetFileSizeEx($file), $i) ; Close file handle _WinAPI_CloseHandle($file) _WinAPI_SetWindowText($edit1, BinaryToString(DllStructGetData($buf, 1))) EndIf EndFunc ;==>BtnOpenFileClick Func BtnExitClick() FinalizeApp() Exit EndFunc ;==>BtnExitClick  
      _RegisterClassEx.au3
    • By MrCreatoR
      This UDF allows to set an events handler for Mouse device.
       
      The beginning...
      I searched for a way to disable the Mouse Primary click, and be able to call some function when the click event is received...
      Big thanks to amel27 for this one, i only organized the whole stuff to UDF style.
       
      Example:
      #include <GUIConstantsEx.au3> #include "MouseOnEvent.au3" HotKeySet("{ESC}", "_Quit") _Example_Intro() _Example_Limit_Window() Func _Example_Intro() MsgBox(64, "Attention!", "Let's set event function for mouse wheel *scrolling* up and down", 5) ;Set event function for mouse wheel *scrolling* up/down and primary button *down* action (call our function when the events recieved) _MouseSetOnEvent($MOUSE_WHEELSCROLLDOWN_EVENT, "_MouseWheel_Events") _MouseSetOnEvent($MOUSE_WHEELSCROLLUP_EVENT, "_MouseWheel_Events") _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "_MousePrimaryDown_Event") Sleep(3000) ;UnSet the events _MouseSetOnEvent($MOUSE_WHEELSCROLLDOWN_EVENT) _MouseSetOnEvent($MOUSE_WHEELSCROLLUP_EVENT) _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT) ToolTip("") MsgBox(64, "Attention!", "Now let's disable Secondary mouse button up action, and call our event function.", 5) _MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT, "_MouseSecondaryUp_Event", 0, 1) Sleep(5000) _MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT) ToolTip("") EndFunc Func _Example_Limit_Window() Local $hGUI = GUICreate("MouseOnEvent UDF Example - Restrict events on specific window") GUICtrlCreateLabel("Try to click on that specific GUI window", 40, 40, 300, 30) GUICtrlSetFont(-1, 12, 800) GUICtrlCreateLabel("Press <ESC> to exit", 10, 10) GUISetState() _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "_MousePrimaryDown_Event", $hGUI) ;A little(?) bugie when you mix different events :( ;_MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT, "_MouseSecondaryUp_Event", $hGUI) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $GUI_EVENT_PRIMARYDOWN MsgBox(0, "", "Should not be shown ;)") EndSwitch WEnd _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT) ;_MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT) EndFunc Func _MouseWheel_Events($iEvent) Switch $iEvent Case $MOUSE_WHEELSCROLLDOWN_EVENT ToolTip("Wheel Mouse Button (scrolling) DOWN Blocked") Case $MOUSE_WHEELSCROLLUP_EVENT ToolTip("Wheel Mouse Button (scrolling) UP Blocked") EndSwitch Return $MOE_BLOCKDEFPROC ;Block EndFunc Func _MousePrimaryDown_Event() ToolTip("Primary Mouse Button Down Blocked") Return $MOE_BLOCKDEFPROC ;Block EndFunc Func _MouseSecondaryUp_Event() ToolTip("Secondary Mouse Button Up Blocked") EndFunc Func _Quit() Exit EndFunc  
      Available Events Constants:
       
      ------------------------------------------
      CHANGELOG:
      Download:
      Attached:     MouseOnEvent_2.4.zip
      Old version:
      MouseOnEvent.zip - v2.3
      MouseOnEvent_2.1.zip
      MouseOnEvent_2.0.zip
      MouseOnEvent_UDF_1.9.zip
      MouseSetOnEvent_UDF_1.8.zip
      MouseSetOnEvent_UDF_1.7.zip
      MouseSetOnEvent_UDF_1.6.zip
      MouseSetOnEvent_UDF_1.5.zip
      MouseSetOnEvent_UDF_1.4.zip
      MouseSetOnEvent_UDF_1.3.zip
      Previous downloads: 146 + 200 + 804
      MouseOnEvent.zip
      MouseOnEvent.zip
    • By nacerbaaziz
      good morning all.
      first lit me give you all a thinks to your help
      you're help me allot thank you all.
      sirs today i've a new problem
      it's not a problem but thing i want to add it to blind accessability.
      the ListBox can send a notification when the user send a double click on it items
      but as we know that the blind users can't use the mouse for that they use the keybord to navigate.
      as we know that the enter replace the double click on the keybord
      for that i need when the user send a inter above any listBox item the list send a double click notification.
      i know some of you tell me that i can use the  GUISetAccelerators function
      but the enter has a other tasks such as leav a blanc line on edits and activate the defaultButton and other tasks.
      that what i need and i hope that you can help me
      this is a simple example.
      #include <GUIConstantsEx.au3> #include <StructureConstants.au3> #include <MsgBoxConstants.au3> #include <WindowsConstants.au3> #include <ListBoxConstants.au3> Example() Func Example() Local $sMESSAGE = "The following buttons have been clicked" GUICreate("My GUI list") ; will create a dialog box that when displayed is centered Local $idButton_Add = GUICtrlCreateButton("Add", 64, 32, 75, 25) Local $idButton_Clear = GUICtrlCreateButton("Clear", 64, 72, 75, 25) global $idMylist = GUICtrlCreateList("buttons that have been clicked", 176, 32, 121, 97) GUICtrlSetLimit(-1, 200) ; to limit horizontal scrolling GUICtrlSetData(-1, $sMESSAGE) global $DummyList = GUICtrlCreateDummy() GUICtrlSendToDummy($DummyList, 1) Local $idButton_Close = GUICtrlCreateButton("my closing button", 64, 160, 175, 25) GUIRegisterMsg($WM_command, "WM_command") GUISetState(@SW_SHOW) ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $idButton_Add GUICtrlSetData($idMylist, "You clicked button No1|") Case $idButton_Clear GUICtrlSetData($idMylist, "") Case $idButton_Close MsgBox($MB_SYSTEMMODAL, "", "the closing button has been clicked", 2) Exit case $DummyList $g_iTemp = GUICtrlRead($DummyList) if $g_iTemp = $LBN_DBLCLK then ;$LBN_DBLCLK then msgBox(64, "", "") endIf GUICtrlSendToDummy($DummyList, 0) EndSwitch WEnd EndFunc ;==>Example Func WM_command($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $hWndFrom = $lParam $iCode = BitShift($wParam, 16) ; Hi Word Switch $hWndFrom Case GUICtrlGetHandle($idMylist) Switch $iCode Case $LBN_SELCHANGE, $LBN_DBLCLK, $LBN_SELCANCEL, $LBN_SETFOCUS GUICtrlSendToDummy($DummyList, $iCode) case else ;GUICtrlSendToDummy($DummyTreeview, 1) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc  
×
×
  • Create New...