zbatev Posted December 28, 2011 Share Posted December 28, 2011 Hello again, Is it possible in AutoIT to add an effect to a form like vibrate it for a second or two... just like in internet browsers... One good example is the "Buzz Effect" in Yahoo Chat. It would be nice if this is possible and how could this be achieved? Thanks -zbatev Link to comment Share on other sites More sharing options...
taietel Posted December 28, 2011 Share Posted December 28, 2011 See wakillon's post Things you should know first...In the beginning there was only ONE! And zero... Progs: Create PDF(TXT2PDF,IMG2PDF) 3D Bar Graph DeskGadget Menu INI Photo Mosaic 3D Text Link to comment Share on other sites More sharing options...
UEZ Posted December 28, 2011 Share Posted December 28, 2011 (edited) I do not have the Yahoo chat client but try this. Opt("GUIOnEventMode", 1) Global Const $hGUI = GUICreate("Shake it by UEZ 2011", 320, 200) Global Const $idButton = GUICtrlCreateButton("Shake it", 120, 80, 80, 40) GUISetState() Global Const $shake_interval = 2 * 1000 ;2 seconds Global Const $shake_sleep = 30 ;30 ms Global Const $shake_radius = 30 ;30 pixel GUISetOnEvent(-3, "_Exit") GUICtrlSetOnEvent($idButton, "ShakeIt") Do Until Not Sleep(0xFFFFFF) Func ShakeIt() Local $t = TimerInit() Local $aPos = WinGetPos($hGUI) Do WinMove($hGUI, "", $aPos[0] + Random(-$shake_radius, $shake_radius, 1), $aPos[1] + Random(-$shake_radius, $shake_radius, 1)) Sleep($shake_sleep) Until TimerDiff($t) > $shake_interval WinMove($hGUI, "", $aPos[0], $aPos[1]) EndFunc Func _Exit() GUIDelete($hGUI) Exit EndFunc Br, UEZ Edited December 28, 2011 by UEZ zbatev 1 Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
martin Posted December 28, 2011 Share Posted December 28, 2011 Very nice UEZ, but tell me, why do these things make me laugh? Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script. Link to comment Share on other sites More sharing options...
UEZ Posted December 28, 2011 Share Posted December 28, 2011 Very nice UEZ, but tell me, why do these things make me laugh?Because it is childish? Br,UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
martin Posted December 28, 2011 Share Posted December 28, 2011 Because it is childish?Br,UEZ Yes, you're probably right. Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script. Link to comment Share on other sites More sharing options...
zbatev Posted December 28, 2011 Author Share Posted December 28, 2011 I do not have the Yahoo chat client but try this. Opt("GUIOnEventMode", 1) Global Const $hGUI = GUICreate("Shake it by UEZ 2011", 320, 200) Global Const $idButton = GUICtrlCreateButton("Shake it", 120, 80, 80, 40) GUISetState() Global Const $shake_interval = 2 * 1000 ;2 seconds Global Const $shake_sleep = 30 ;30 ms Global Const $shake_radius = 30 ;30 pixel GUISetOnEvent(-3, "_Exit") GUICtrlSetOnEvent($idButton, "ShakeIt") Do Until Not Sleep(0xFFFFFF) Func ShakeIt() Local $t = TimerInit() Local $aPos = WinGetPos($hGUI) Do WinMove($hGUI, "", $aPos[0] + Random(-$shake_radius, $shake_radius, 1), $aPos[1] + Random(-$shake_radius, $shake_radius, 1)) Sleep($shake_sleep) Until TimerDiff($t) > $shake_interval WinMove($hGUI, "", $aPos[0], $aPos[1]) EndFunc Func _Exit() GUIDelete($hGUI) Exit EndFunc Br, UEZ Nice one... thanks a lot... I'm using this on an Alarm this is a nice add on to that... I've already tested it and its working perfectly. Link to comment Share on other sites More sharing options...
UEZ Posted December 29, 2011 Share Posted December 29, 2011 (edited) Here a version playing a wave file which is saved as a binary string when Shake It button was pressed: expandcollapse popupOpt("GUIOnEventMode", 1) Global Const $hGUI = GUICreate("Shake it by UEZ 2011", 320, 200) Global Const $idButton = GUICtrlCreateButton("Shake it", 120, 80, 80, 40) GUISetState() Global Const $shake_interval = 0.6 * 1000 Global Const $shake_sleep = 30 ;30 ms Global Const $shake_radius = 30 ;30 pixel Global Const $SND_SYNC = 0, $SND_ASYNC = 1, $SND_NODEFAULT = 2, $SND_MEMORY = 4, $SND_NOWAIT = 0x2000 #region Global $bShake = _Sound() Global $ByteStruct_Snd_Shake = DllStructCreate("byte[" & BinaryLen($bShake) & "]") DllStructSetData($ByteStruct_Snd_Shake, 1, $bShake) Global Const $BytePtr_Snd_Shake = DllStructGetPtr($ByteStruct_Snd_Shake) Global Const $fuSound = BitOR($SND_MEMORY, $SND_ASYNC, $SND_NODEFAULT, $SND_NOWAIT) #endregion GUISetOnEvent(-3, "_Exit") GUICtrlSetOnEvent($idButton, "ShakeIt") Do Until Not Sleep(0xFFFFFF) Func ShakeIt() Local $aPos = WinGetPos($hGUI) sndPlaySound($BytePtr_Snd_Shake, $fuSound) Local $t = TimerInit() Do WinMove($hGUI, "", $aPos[0] + Random(-$shake_radius, $shake_radius, 1), $aPos[1] + Random(-$shake_radius, $shake_radius, 1)) Until TimerDiff($t) > $shake_interval * Sleep($shake_sleep) WinMove($hGUI, "", $aPos[0], $aPos[1]) EndFunc Func _Exit() GUIDelete($hGUI) Exit EndFunc #region Func sndPlaySound($lpszSound, $fuSound) Local $Type = "wstr", $aRes If IsPtr($lpszSound) Then $Type = "ptr" $aRes = DllCall("winmm.dll", "int", "sndPlaySound", $Type, $lpszSound, "dword", $fuSound) If @error Then Return SetError(1, 0, 0) Return $aRes[0] EndFunc ;==>sndPlaySound ;Code was generated by File to Base64 String Code Generator Func _Sound() Local $Sound $Sound &= '/z9SSUZGjEEAAFdBVkVmbXQgHgAAAFUAAgBErAAAIE4AAAEAAAAMAAEAAgAAAAoCAQBxBWZhY3QEAAAAAAAAAGRhdGFOQQAA//ugAAAAASoSvu0IQAAr4AeZoAAAD/ztYfj2kAIBJyw3HrACDrAADkkbCABKnAwM///+Sc7oQigARB8oEQQE4fBASOB////l5AYWqFkgCXB/WHxAcDAnCwIfD5Q5Lh8oCAY1Bgo7+lQYLvD4IBEHy44EC58PyYwhYpUgyYsgBFIFEIbINFtIeK+WMEiDWLgTQuY8C/kGH+OAwCSNA+A54mgVcewDTCLDAGpOKA8HBGCiPM0KCaCyTcvmBUaLbQqJoc8muVA4iEam1r5uaLc+gmdzI99TWTQMDEc5utzdFyxv8kS1CrzJvd5VnkHup/y7/4ewQBDkdnJUDIUlEMlEIjs0lEmuT8hY2RjHQL0UthOcvxzBWKQt5qCdBpYksPIZDoegCYNBeHCaucPoFjCwn0WrXP90UjqAYJg3ya0cZ3/xDX3QOXDoOLG//98TajB2MuO9K///A4Qq9/+ate2P/m77/+/6//fbI6PwjN/n/oSXbBIBhYDqnElJIpJKOHSSEnpeyfb3rtlDrWdbitaYDCBMhzHz5LBJgM8mM+yLKSaTv1NOGwc48ut0WTRJpKrNlorJWXWm04bJOZOUrVO1FH1ostjExPGBU2LuA6BTgY7ma3Ugr/XRe1FuR4lJJgq5dWQPJJJWmj1CQEGSacD+lFJg62XVs5bQSoXoex8yNBqBzkky6m0V5Uk9//uiAEoAA1kzWW89oAhphysc57QBC5ytX+e9C2FFD6w095UkbupFFIkhgi85gXUjG7nzdTuoyNyitGtT86o690kX2b3mSZkbJOYqJpRc2Wjmouv/+euntYTNh3b9rYMnU1xKVMSJqYiAARSRRmw4yVE8HmaivOuJDXDaXBxxBzBXTAg5rZmuL6W9dev/+tVvj0niwGm3ELNQJojTqUq+f5Xg8f+V+pYs/BoaMulHKGr3t2iwmY26pj8WR2fhVKRUPJxSqQJaTaSuzmM8/Sbnhm9m9XQyca98yqU6TXr8R35Niylo6OU6vomRUcBjIZGtEDHBQ0JCoNTGcLPO/jBzHtVFkpnVLT6K0C//Zp/KwnoSRFSIutkmSSSSbtFf4kw30CyiNXKaMNeRDdYV0d4TIGQltfTgZ64Y56xZcwaWg6ss0m5aCBHZbAQui7HHUPFgbharY1QhMRVPiTRUgIhcRHNGmrrz9e+6M9uLElqLBsKCQi47aoFXYmfRAtYiX+1jf71pLKCq6qpWqma7zbCjB6zFal/Dmo0jPJ4/bSMiDFdNjKOPlCGG3rrNqWkcmPlWJR5DnEzAGRfMN2TAAJCWw5k0WVT5uvvxENqGAy5b//y7baDPGoMcENnO+8x7waaIhXvY1xUUdUe/p/oexbXspU05nCS7brqOGiwQM3BwDwxeOzkblEsEY0fyRv/7oAB8AAOaNlZrD0LYaic66WHmW40011OsvSth2hwqZZwlbkwJEIQmreFswREYmMZ+oWat7bEhhKbpVoNJuJEd7kC0lSEUqIyiFCzK3M5LynGPRburNIZQlcbvLuNquipdLCpcyeGmwkIgN/+sihlv1hqa2Equm54GfFSpMaDX3u1Y1LeJHX7MzrFo4BI83eY6mWo02ssc6LuFqavuSu2hCriaI4uOl7lVGGpikyRNYiRLG1UCxEiq4rBZoQs5sc+x/uP+eXTzfKSzUfKOJ8NDgshxhoKzTVRdiyQbBQ0xaUryi/6bigd5IFbYXv6WF54GGAU0NDlEBzcrplPGAHMUdnVAo8GlXBlrWcQRFg6YfqfvW8/rSmBz5IkIlpcLxYICRh/PCMBXkQe6SQ1oKc6gkzVqdBFRlTJ6DJa7oadc4yT6mQel13ukZDhMN3WbG+lbMUrZoRd7pL13/1vD/rUEchEYv+ONfi8thuBDIHdyR0WNIk+UKin/zbPE6aKx' $Sound &= 'FqPDLn1HooibMl6QiGaItGMDwCaDlIvelBK2m0Pgs1qJUIsSuTHYec51Tt/v++On17ne2v9y+LFSspdtbdrjxapK9UutbK7bjZKCS6/zCyyayrFZfSswKldcFFotXyncmjBvZypvW2xN+52c9bsw1XiMsetg76FMuoyHvcUK1cwGQwoDT4jK+XDPFf/7ogCQAANeOFNLOGrcbWcqbWcLWw4cxUtNYetx3BQpKYw9L1MF8yJ6G14bm7M+6vfSFLrWYVvLWaTyx/e8kWh8Mr0RQDKQ9T7N3411KQrZXTcaJQR3agqIjIrE7EBV48rbLwd51pbTZRBDqE7ose762JccajNHRy3eoMVTFhUyecW52SaSO4jpoxMwtyvn2yubgxOTIjayNjFeDVeYHrG/0uNsTVFzXZtRSDWcCz/21ridyGOyBn/bj+2t//efiz9v7z76JTabKklsiQCiaOZBhUXjjMXrrvC6MBCTWQy99KjOR0I2G3lrLk0qKQbkMup9RN14hNKjjEE0kttzMvqrwUtkztw6I3s0ZtyWMwlcpl8Vls9SzO+fS42JzCX1KarlXwltqtN28NznLVma1XzobW7QUlFD1mIQda+lwhbNkuRSJ2S2RpglK/or8WK/S0WVxtpNXEiyxWvKHXjpd0b3P48w5NJnQPYll+Ry2Jz0CS5br5xhYbS6waFRHTiFjiM1iQ7TAnNPGuZVouLBxaJH3qW0NxcqvN2vi1Y/izVkiVgbpXed2zPvFdWr8fX1uAaFVJOUerXhOydtXipKkTSdkkbSYlqJYWnJq5iRxJ/3VdpzBoujuWp+ZQ/KQy77GGT1wNLYErupEqvZfDLcHOMyWQMImixeQRnahsDBeO7OwcP3SbDj3LRFraz/+6AAowAD2TFTa1jC3HzHOo1jD1uOPO9RrOFrcb4eKfWcJXbsqYxaIb8zd8W32+6re2Y7p8dXEwi5Y48Qhx/Yjyg5syi31kCU2mko3I2igQAsnIK4ffaFy6B5DblgkfamJ+5E1kEfpdXywvZ+9sgryitMV5dHa87g//4U8g/sgkJiATig2yUMGYSWSLrHiWaC2ozxmlPGFwTnPFbz3Unf5ss3HM+dTpmWunCaiaI8YRwFjJk//+YASUjhVkt1sbbwM2QkD1pbHIzKJfPS3BdlDGK/XxXiWji17aqhUCGL3JrV7+4W8Mr9FPymRS2XTs1BVLHINgyKX6TfHksBjRCJOpNIxnV5MDwur5OukZHpSzgdakhS4ln16agVj1hRXz2NHxFnzR+rG+LtfPM6IDbOX9ohx9SagZ3ret6vTevj//41/vV6f4//////xWeJsx/wsGzMCB56zaLjLJcbtjaSUBDxIRAiWnsfqIV7O6gFsb3nuewKsBzcoBul7E7FrQCBfQXkdxjRZGx/E3uI7dPj+Vp2CLiLCMHWrI7mXS06YD+JeMw8SVL47grQB/JAd5DRLD5oaHywtNSmnU3prUzoU1GZJlR2kUSGUSkXiRIbkUWwlA5zMcY7CTLibOi60mSWpdNf+mpnatTN9/7s6H//rQOVRFug1QuldJztFOSWyyTMIfoc8xaW27P/+6IAqQAFAVVV6xh7aKFr6p097W1OSPNXrD1rodMeanT8LXSV2PzzSzxxbpEwRXA6o8WAhJ6n8hWpovxvVfjEsW3+o0FsYIxi2bOwk6WHuvegBYncya11dOk7Ldn/EXzUOu5O72uapvNrJJUOR0AnHT6R01EpZa3fq/9IK9/8YeMFQStQSKr6RRbkjbcgyEslBnlhb62ep3KLkP1sZl4JCPKoaXN+nxoItO8vZ45bxz7nhXvau1LbjqA9qiVM689FPp6racqw3ECR4e5NrW9tdX9///183MumnTdNaPqxFLCcajtNHWuRcdU8W+1wlke19Iop366tL4Bh0FfUWbcbbuX1LhWQvROx124ffu9LIYHYgjRGPCMMkbuZFYoiSkgbu1B01OThAyMtiEFa041fIJvjm4hFanQr675E' $Sound &= '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' $Sound &= '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' $Sound &= '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' $Sound &= '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' $Sound &= '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' $Sound &= 'unxYsfDFdJv21t1traACMpQmvtGEaOZWIv/7oACsgAONLk9rGMLebIZaHWcPW40UiT2sZwl5vhmn9Zw9bgAoC7EUUNCtCsdinxhgYAApCUZS6cvk6N4tcSI7z708voonJJTapJjTSiHMiZXn7126OwaZwMZQpJMOKlb0RlJng0uLTSHTGv/8XrnX1/j0+P9Y/3/jCmedLjOx5YAl7W67WWNkAKGFDyrFiuOaBzXF9MlxA5kasGMywKiXxECpjTQ27SfaLh1XpMLjR8gPO86UrprL8FwiSzrU3PEwQQcsAmBCByCIkyNovGhxGcSWdWnstFTppsmmtb7rqRrUmyta3n2V///////////////////////////////////////////////////////////////////////////////gTa626SxsgBkCMSbcIhhy3AYKzlY72hPWyxhZM3dIJAUKtrrRmgXqM1AUlrDS+x2Z1N18KWo46PjTA6eg3DUeALgCsEpUB4CEnS4/BMak09es1/HUtbv//bEX876+4QWe9NQDu21tkkSIARcXEQDgeVS6MyllIoSUmRcl4xtBxuqqZVEDgQwOFLpqJCCNIFglqfapbu10klanUQq3CuoGu+gQl2rBXmdrpEk3Wb+E+l0Y0WhjRShLKyzm+tJV//uvttjQAICGhDA8Ds4bZ+GXQxArRj3Rf6SuRaglF4DFA2nKlNNXJf/7ogDEAAUTM09rGYrcYoZZ3WMLW4tAgzmsZekxaxmodZwtbgqgIkrqi07FML17HuR8QYasegvzMCKuYFo9SXLFbZkqH8yfdWhTf731LHf///9f+4/ABlutkskiQACBCLJekzoEbZnOcRamLHinsGw3MNuxh4zCCaM88zjKyERTADUohsWJHV7LvbLG0gYm4trMrxl7ghxrOUa0VuhesFhcIMfMiJOcYm3YZQthL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wttrbtLIwQAh2licqrgcK4TaQ+1xoDrmVZ2ivSuByUwAUnHIfnZWsCLhU6sS6kywyy53IlDQDhELZ5MmYLhFnOgwdHV0OIj1epr/86n//8nEWiamWaf/rQACEi9BRBM6UuXLfZ0+qVhv3QFZVSjbIVPgYhoHf3aW0LDm8aBpqple4zWlcRkBXecb3EncCRlK5strRyijAkWwoSoxmiL4oVddbbZJEiABUAmEKgyZ6d0tSXQTRiCVNBT3O5NSd0hURotBmUVht0Gz/+6AA2oAHZCHN6xl6TFAGWe1nCluJ7HEx7GXpIWMZZzWcHW4BhZBDkcq4Va8zRbsOBYaJMdFG4mFQ+EYCziIsEcH4imETgYODhdt/////x8bAP1AQR4d3Znt1cIAVWJiCWJdz3R+OypS5dLkBItZ35141lCMkOYTwjcRe6VMiCUkx6R+88cssvy0XTpRPLZqB1MTcEcCWGSePlEwNEXpUUUU1P/XfroKrTUpNBq5gX0FGKv///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wZbbZJJI2wAytFkZIbwvWzhKNSxg6ISZRowJRt0chx27gEhqqsqG7EBYpTFAHjltLbq1cK+q00WmSyRXy5Rdh0aR0i8lGRuO8zSqTIrHwqXZTv//jj/+//mH/dwwhXN0iCPDuzK0ujYAETJiBmJOBp74NtAKqJaxc4Sk7k/Bjp2ywMv' $Sound &= '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' $Sound &= 'SwkAum1rcANdsWXg//+kokJ/QB8ADwD/DwAPAA8ADwAPAA8ADwAPAH8PAA8ADwAPAA8ADwBqZ10AlsusDwACASUAEgRgWQ3sqiIAsFLrIM0MfRwAGq4oxK8Gf+8AEz2LywdCRTCAkyotB47cekNBAAwnGkfjDxJIACZhqSxhLycDAKA1Gowd5OByAAaksQKsnDa2ANUoHhr+STLjAHrBokR0Hf/LAAdMjlktYYAAABDESBJMlNmdAIBTtrkRw4yrAKSHL//aZBI3ABJsEBTYik7NAGRWd4sYPACnAKGB5fDKCP/6/MS/LwsPAA8ADwAPAA8A/w8ADwAPAA8ADwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAEEGAOWikCiAkSDbAAANiw3H2yVBALgWAUjUPEIlAAIEGSKHiEJgADmFI9DAiJQeAI1CMjri6zNAAL6gzoJmv/idAAbA4I2IOgHkALUUbLYNiIOZAFLYDSYB2RUIAGVq+YW9Qw4MAJAJJBUD5nmV+ASy328HDwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAP8PAA8ADwAPAA8ADwAPAA8ADw8ADwAKAOJhDuMCRgCgDAAIC0BI9AAJIAEAAAEuAAQAAKB+JcAAAAQDTwMPAP//4aTQCAAAow0LoWIvSP/fAQ8ADwAPAA8ADwAPAA8A/w8ADwAPAA8ADwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAEOkIOFhDygASzChCPAAAAlwcCCvIA8ADwAPBgCgAw8ACgADsAIAkAE=' $Sound = _Base64Decode($Sound) Local $tSource = DllStructCreate('byte[' & BinaryLen($Sound) & ']') DllStructSetData($tSource, 1, $Sound) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress) $tSource = 0 Return Binary(DllStructGetData($tDecompress, 1)) EndFunc ;==>_Sound 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 Func _WinAPI_MoveMemory($pDestination, $pSource, $iLenght) DllCall('ntdll.dll', 'none', 'RtlMoveMemory', 'ptr', $pDestination, 'ptr', $pSource, 'ulong_ptr', $iLenght) If @error Then Return SetError(5, 0, 0) Return 1 EndFunc ;==>_WinAPI_MoveMemory #endregion Br, UEZ Edited December 29, 2011 by UEZ zbatev and PlayHD 2 Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
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