Jump to content
Sign in to follow this  
UEZ

ISO Creator v1.16 build 2012-09-11 beta

Recommended Posts

UEZ

Hi,

here a little tool to create ISO files from default ISO 9660 (2048 bytes/sector) CD or DVD format (no audio cd and BD support yet!)

post-29844-0-49311600-1313787409_thumb.j

Source is too huge for code box :alien: -> Look here to have a look to the source code

Additional credits to:

Ward for MD5 checksum / MemoryDLL routines

Harald Vistnes for cd2iso used in v1 and v2

Yashied for WinAPIEx.au3

wolf9228 to play wave from memory

AutoItObject Team

Download (purely written with AutoIt): ISO Creator v1.16 build 2012-09-11 beta.7z (367 downloads previously)

Thanks to smashly for pointing me to right direction :huh2:

The development of v1 and v2 is discontinued!

Download v1: ISO Creator v1.0.0 build 2011-08-03 beta v1.7z (195 downloads previously)

Download v2 (everything is called directly from memory): ISO Creator v1.0.0 build 2011-08-03 beta v2.7z (117 downloads previously)

Thanks to smartee for the DLL version (experimental) of cd2iso!

v1 is using cd2iso.exe to create the ISO

v2 is using cd2iso.dll which was created by smartee.

For compiled v1, v2 and pure AutoIt versions only (x86) visit (ISO Creator Exe only): 4shared.com or MediaFire

You can call ISO Creator.exe also with command line parameters: ISO Creator.exe -s [source cd/dvd drive] -d [filename] (-md5) (-aem) (-exit)

-s and -d are mendatory if called from command line!

Tested on Win7 x64.

If you find any bug please report here!

Many thanks to smartee and smashly for their efforts on this project!

Br,

UEZ :ph34r:

Change Log:

2011-06-17: added better check whether any media is inserted/mounted on the listed drives

2011-06-17: added option to create MD5 checksum of created ISOs + background texture of input box

2011-06-18: added v2 which is completely called from memory! Thanks for smartee for converting the exe into a DLL ;)

2011-06-18: disabled cursor blinking in input box

2011-06-19: added command line parameter support -> ISO Creator.exe -s [source cd/dvd drive] -d [filename]

2011-06-20: added mor information about the media in combo box (thanks to smartee for the idea)

2011-06-20: some small bugs fixed

2011-06-21: added some small feature like eject disk and added v3 which is written in pure AutoIt (thanks to smashly for pointing me to right direction)

2011-06-22: added CD001 check also for EL TORITO SPECIFICATION section and some bugs fixed

2011-06-25: added command line parameter -exit to exit program when finished + feature to change background image + small bug fixes

2011-08-03: modified some look'n'feel settings

2011-08-19: added disc image to view how sectors are read + some internal changes. The development of v1 and v2 is discontinued!

2011-08-23: some internal changes regareding GDI+ drawing and change info in disc image to x/ disc size mb

2011-08-29: removed one check in function ISO9660_Check() otherwise UDF discs will not be copied and enabled drawing of the sectors onto the disc image.

2011-08-30: found bug in display of MB copied on disc image and added MD5 creation from menu -> you can create now MD5 files from ISOs directly

2011-09-11: added play short sound when finished or aborted + update function

2011-09-24: changed ISO check function and some small code modifications

2011-10-06: made some small changes to the MD5 checksum function

2011-12-28: fixed a bug in combo resizing code and added check when no drive is available

2012-03-06: added $iShare parameter in _WinAPICreateFile() (ISO check function) line because otherwise an error may return when creating an ISO image

2012-09-10: fixed a bug in sector view and update check function, added taskbar progress bar and added feature to eject media when task is finsihed

2012-09-11: fixed a bug on app crashing when an external CD/DVD was plugged in and combo selection was not working properly, added DVD+RW DL and DVD+R DL media type into the list

Edited by 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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
guinness

Very cool! A couple of interesting things to be learnt with your Script UEZ.


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
Mat

Just out of interest, what is the source for the actual ISO creator itself?

(ofc you are not obliged to answer that)

Share this post


Link to post
Share on other sites
UEZ

I used cd2iso 1.0 which is a command line tool made by Harald Vistnes.

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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
UEZ

Added option to create MD5 checksum of created ISOs.

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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
smartee

Very nice UEZ, Load_BMP_From_Mem() is awesome. :huh2:

Share this post


Link to post
Share on other sites
UEZ

Thanks for your comments! :huh2:

I updated the code again. Now you can see a texture in the input box.

Source code is now too big to post it into code box. ;) Sorry.

Anybody got any issue, problem or bug?

Br,

UEZ

Edited by 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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
smartee

Hi UEZ,

Here's an idea ;) , I've taken a look at the source for cd2iso, it should be fairly straightforward to turn it into a dll, with some callback functions, then load that into memory and use it. Have you considered doing this?

Going this route should be easier than loading the exe from memory.

Also, wasn't the code displaying fine a few mins ago? :huh2:

-smartee

Share this post


Link to post
Share on other sites
UEZ

@smartee: I'm unfortunately a noob regarding C++. I wanted to ask the coder whether he can provide a DLL version of it. I'm not able to this. :huh2:

A DLL can be loaded directly from mem using Ward's code.

After I added the code for the texture in the input box I cannot post the code into the code box anymore.

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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
dmob

Great job, UEZ :huh2:

Noob question: Can I create ISO from bootable CD, then recreate bootable CD from ISO?

Share this post


Link to post
Share on other sites
UEZ

Great job, UEZ :huh2:

Noob question: Can I create ISO from bootable CD, then recreate bootable CD from ISO?

To be honest I didn't try it but it should work.

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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
smartee

I'm no expert at C++ either but I always play around with new languages in case one day my life depends on one :huh2:

Here's a rough port, all the functions with as little modification as possible, as a proof of concept; if you are interested, I can try to make it better.

Download Link

Careful though, it can be tricky to exit while control is in the dll's hands. PS: right now the callback function gets called alot

Regards,

-smartee

Edited by smartee

Share this post


Link to post
Share on other sites
UEZ

@smartee: thank you very much! I will try to integrate it to the actual code.

Without the possibility to abort iso creation it will a pain in the ass.

Br,

UEZ

Edited by 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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
mesale0077

hi

thank you very much :huh2:

Share this post


Link to post
Share on other sites
smartee

@smartee: thank you very much! I will try to integrate it to the actual code.

Without the possibility to abort iso creation it will a pain in the ass.

My pleasure.

Totally. Working on a exit strategy :huh2:

Share this post


Link to post
Share on other sites
smartee

In an attempt to return control to AutoIt, I'm splitting up the dll functions then calling them, it looks more elegant too. I'm going take a break so I packaged what I have so far for you to test; I have done no error checking whatsoever :huh2:

Download Link

Edited by smartee

Share this post


Link to post
Share on other sites
smartee

you can make the loop like this it will show percent :huh2:

;copy all sectors
For $i = 17 To $aResult[0]
    $m=GUIGetMsg()
    DllCall($sDllPath, "int:cdecl", "CopySector")
    WinSetTitle($Form1,"",($i/$aResult[0])*100&"% complete")
    GUICtrlSetData($Progress1,($i/$aResult[0])*100)
    If $m=-3 or $m=$Button1 Then ExitLoop
Next

Share this post


Link to post
Share on other sites
UEZ

Ok, thank you very MUCH. I will try to embedd it and will come back when it is finished. :huh2:

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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
sleepydvdr

Very nice program, UEZ. I'm still trying to figure out how it works. You said you used cd2iso 1.0 which is command line. Your script runs for me without any other files. Therefore, I assume you ported part of their C++ code to AutoIt. Would that be the bunch of hex values for the variable $ISOCreator? Is that just header information and the files are simply packed after the header?

Again, this is some really nice work. I'm gonna keep studying it and maybe I'll learn a few tricks.


#include <ByteMe.au3>

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  

  • Similar Content

    • c.haslam
      By c.haslam
      cDebug.au3 includes four main debugging UDFs: _GuiDebug(), _ConsDebug(), _ClipDebug() and _FormatValsForDebug(). They all dump the values of all AutoIt subtypes and expressions, in a structured manner, including nested arrays (up to 3 dimensions) and slices of them, and even DLL structs and maps. It is an alternative to a graphical debugger, offering GUI output.
      The format for calling the UDFs has been designed to make coding a call as convenient and fast as possible, minimizing coding effort and the chances of errors: the $name argument is often the same as the variables arguments, enclosed in quote marks.
      For DLL structures, if you specify a tag, cDebug checks for differences between it and what it detects. If you only specify a structure variable, it can report the structure it detects, with the values of elements.
      It does much more than MsgBox(), ConsoleWrite() and _ArrayDisplay(), in a definitely user-friendly manner, and does its best to avoid hiding your code in SciTE.
      #include cDebug no maps.au3 or cDebug.au3 at the top of your script. If you #include cDebug.au3 (the version with maps)  #include #AutoIt3Wrapper_Version=B before #include cDebug.au3
      It is fully documented in cDebug.pdf   .  During debugging and development of new features, the current version is used to debug the upcoming version, so there is much testing, even so  bugs are always possible, particularly in new features, such as reporting elements of maps whose keys match a regular expression. Bug reports and suggestions are welcome.
      These UDFs have been in regular use for some years.
      Because when cDebug was developed, maps were a use at your own risk feature, there are two streams of cDebug:
      cDebug.au3 reports maps, so to use it you must be running a version of AutoIt that supports maps, e.g. 3.3.15.0, and #include cDebug.au3 cDebug no maps.au3 does not report maps, so you can be running any recent version of AutoIt, e.g. 3.3.14.5, and #include cDebug no maps.au3 The only difference between the two streams is that map-reporting code is commented out in cDebug no maps.au3 .
      A teaser
      This script:
      #AutoIt3Wrapper_Version=B ; beta 3.3.15.0 or greater is mandatory for cDebug.au3 #include "cDebug.au3" Local $seasons[] $seasons.summer = 'May to September' $seasons.spring = 'April' $seasons.fall = 'October to November' $seasons.winter = 'December to March' Local $aCats[3][3] = [['jack','black',3],['suki','grey',4],[$seasons,'','']] Local $i = 1 Local $tStruct = DllStructCreate('uint') DllStructSetData($tStruct,1,2018) _GuiDebug('At line '&@ScriptLineNumber,'$cats,jack is,$cats[..][$i],$i,hex,structure{uint}', _ $aCats,$aCats[0][2],$aCats,$i,Hex(-$i),$tstruct) produces:

       
      Edit history
      See documentation PDF
      Acknowledgements
      Melba23, Kafu, ProgAndy, jchd
    • c.haslam
      By c.haslam
      cDebug.au3 includes four main debugging UDFs: _GuiDebug(), _ConsDebug(), _ClipDebug() and _FormatValsForDebug(). They all dump the values of all AutoIt subtypes and expressions, in a structured manner, including nested arrays and slices of them, and even DLL structs and maps. It is an alternative to a graphical debugger, offering GUI output.
      The format for calling the UDFs has been designed to make coding a call as convenient and fast as possible, minimizing coding effort and the chances of errors: the $name argument is often the same as the variables arguments, enclosed in quote marks.
      For DLL structures, if you specify a tag, cDebug checks for differences between it and what it detects. If you only specify a structure variable, it can report the structure it detects, with the values of elements.
      It does much more than MsgBox(), ConsoleWrite() and _ArrayDisplay(), in a definitely user-friendly manner, and does its best to avoid hiding your code in SciTE.
      It is fully documented.  During development of new features, the current version is used to debug the upcoming version, so there is much testing.
      These UDFs have been in regular use for some years. Suggestions and bug reports are most welcome.
      Get the latest version in Example Scripts
      #AutoIt3Wrapper_Version=B ; beta 3.3.15.0 or greater is mandatory for cDebug.au3, not for cDebug no maps.au3 #include "cDebug.au3" Local $seasons[] $seasons.summer = 'May to September' $seasons.spring = 'April' $seasons.fall = 'October to November' $seasons.winter = 'December to March' Local $aCats[3][3] = [['jack','black',3],['suki','grey',4],[$seasons,'','']] Local $i = 1 Local $tStruct = DllStructCreate('uint') DllStructSetData($tStruct,1,2018) _GuiDebug('At line '&@ScriptLineNumber,'$cats,jack is,$cats[..][$i],$i,hex,structure{uint}', _ $aCats,$aCats[0][2],$aCats,$i,Hex(-$i),$tstruct) reports

         
    • Chimp
      By Chimp
      regex and iso escape sequences
      Hi, I would like to extract all ISO escape squences embedded in a string and separate them from the rest of the string, still keeping the information about their position, so that, for exemple, a string like this one (or even more complex):
      (the string could start with normal text or iso sequences)
       
      '\u001B[4mUnicorn\u001B[0m' should be 'transformed' in an array like this
      $a[0] = '\u001B[4m' ; first iso escape sequence $a[1] = 'Unicorn' ; normal text $a[2] = '\u001B[4m' ; second iso escape sequence ... and so on (note: the above escape sequence has 'control codes' marked as "\u001B' for the asc "esc" char for exemple and a similar notation is also used for other control chars, but in the real string to be parsed those control chars  are embedded  as a single byte with a value from 01 to 31). at this link (http://artscene.textfiles.com/ansi/) there are many example of real ANSI text files .
      searching on the web I've found some possible solutions that make use of regexp to achieve similar purpose, and above some others, the regexp pattern posted in the following link by kfir (https://stackoverflow.com/questions/14693701/how-can-i-remove-the-ansi-escape-sequences-from-a-string-in-python) seems to be able to catch a wider range of ISO escape sequences (not only color sequences), but my lack of skills on regexp, prevents me from evaluating and testing such patterns
      I would be very grateful if some regexp guru could come to my rescue...
      thanks everybody  for reading...
    • ADMPV
      By ADMPV
      https://sourceforge.net/projects/rhash/
      librhash.dll - supports CRC32, MD4, MD5, SHA1, SHA256, SHA512, SHA3, Tiger, TTH, Torrent BTIH, AICH, ED2K, GOST R 34.11-94, RIPEMD-160, HAS-160, EDON-R 256/512, WHIRLPOOL and SNEFRU hash sums.
      faster than _Crypt_HashFile about 2 times
      librhash.au3, librhash.dll in archive
      Changelog:
              2017-07-11 Added: rhash_timer_start, rhash_timer_stop
                         Changed: DLL - rhash_run_benchmark_mod - passing file as HANDLE
              2017-07-07 Changed: rhash_ex()
                         Added: DLL - rhash_run_benchmark_mod
              2017-07-04 Changed rhash_ex()
       
      librhash_134.zip
    • Jefrey
      By Jefrey
      Non-important short long story: I was facing several troubles when working with a webservice made in PHP and an AutoIt client. The AutoIt client had to send some data to the PHP webservice, then it would get back part of the data (with additional data) back to AutoIt, then send through Json to another webservice and end up in a TV system (huff). As I was using mostly Inet* functions, working with charsets became complicated, as it had to encode, decode, encode... and the mess is done. On the other end I was receiving a completely buggy string with several problems in accentuated characters (note that I live in Brazil, we speak portuguese that contains a lot of accented chars - Ááãç...). I tried and tried mixing utf_encodes and decodes everywhere, in PHP and Javascript. Wouldn't it be easier if I could just force the string to be UTF-8 and screw everything else? So I found toUTF8() PHP function.
      I've ported toUTF8() function (truly, the whole Encoding class) by Sebastián Grignoli to AutoIt. It offers useful functions to force a string to be in a specified charset in a really easy way.
      From the readme file:
      Usage
      $utf8_string = toUTF8($utf8_or_latin1_or_mixed_string) $latin1_string = toLatin1($utf8_or_latin1_or_mixed_string) Also:
      $utf8_string = fixUTF8($garbled_utf8_string) fixUTF8() converts the string to UTF-8 repeatedly until make sure it has only UTF-8 valid chars (it's really UTF-8).
      Example:
      #include 'forceutf8.au3' MsgBox(0, '', fixUTF8( 'ãé' ) ) Will output:
      ãé Note that it's just a port. If you look at both the source codes together (PHP and AutoIt), you'll see that they're exactly the same thing, but in different approaches (PHP arrays converted to Scripting.Dictionary objects, function renames, syntax porting, a few functions completely rewritten due to differences between PHP and AutoIt). Therefore, all credits goes to Sebastián Grignol.
      It seems that it works only with latin/roman alphabet (used by English).
      Downloads
      Download ZIP from Github
      Wanna help?
      Fork me on Github
×