p4ntb0y Posted June 6, 2007 Posted June 6, 2007 (edited) Hi guys I have a Imagex gui here which I hope you will like.The whole thing has been re-done all the code has been done in VB6.This has been tested in vista pe and winpe 2005.here are a couple of screenshots...Added different compression types.As you can see you can Mount Images, extract well do everything that the cmd line imagex can do, as all that the code does is call imagex behind the GUI, The cmd for imagex will be displayed at the botton of the gui for debug.Anyone that would like to have the source files are welcome please PM me and I will mail you untill I can host them somewhere. The current size is 1.5mbI have added a place on the front of the gui so that you can place a OEMLOGO.JPG for your company or yourself (I made a mistake and left it at jpg instead of bmptrtkrom was kind enougth to post the VB6 api calls, I am way out of my depth here with the coding :-(You do need the following files within the same location..imagex.exeintclg.exewinfltr.iniwinfltr.syswimgapi.dllCOMDLG32.OCXMSCOMCTL.OCXMSVBVM60.DLLtabctl32.ocxand if you want to add your own exclude list...include a custom Wimscript.ini fileIf you would like the Source files then Please PM me and I will send it out. The above ocx and dll files apart from wimgapi are included.This is all I have at the moment which is a a bit lame as I need to learn a hell of a lot more vb and c++I would be willing to fund a project if someone can code a proper gui with api calls and a progress bar!I have included a new attachment but it does not have the MSCOMCTL.OCX or MSVBVM60.DLL due to the sizeOnDansWIM.rar Edited August 19, 2007 by p4ntb0y
mmarable Posted June 6, 2007 Posted June 6, 2007 I like the idea. The transparancy is a bit distracting, but other than that it looks interesting.
mmarable Posted June 6, 2007 Posted June 6, 2007 Okay, a couple of questions. When making a WIM, what is the "Output Folder" as compared to the "Destination Folder"? Will there be an option to use a config file for exclusions? Does it have any dependencies (i.e. you have to have the WAIK installed, etc.)?
p4ntb0y Posted June 12, 2007 Author Posted June 12, 2007 Nearly done a new version of this GUI.I have binned the transparent window.Added an option for Checkdisk.And as soon as I have worked out the split wims that will be an option as well.Was thinking of adding support to intergrate drivers and change HAL type.any other options reguired?Once finsihed I will post it.
geezery Posted June 13, 2007 Posted June 13, 2007 (edited) I didn't get the PM, but can you send me the source code. I could look it a bit. Does it use the wimgapi.dll directly?I think that the mounting won't work in WinPe, but I'm nota 100% sure about that. Edited June 13, 2007 by geezery
geezery Posted June 13, 2007 Posted June 13, 2007 (edited) wrong thread Edited June 13, 2007 by geezery
p4ntb0y Posted June 15, 2007 Author Posted June 15, 2007 just a litle update on what the gui looks like at the moment.screenshots....I am going to add the option for the different compressions I think.The WimInfo button gives you all the info about WIMS in a nice laid out window from the xml output this includes total sizes so I may use this option for the split wims accross CD's /DVD'sThe check wim on capture option is the the checkdisk optionI really want to be able to convert the c++ header file for the wimgapi.dll api's to vb6 any takers on this?what other options would be needed? diskpart GUI to go along side this? map network share? inject drivers option? change hal option?
pretender69 Posted June 15, 2007 Posted June 15, 2007 wow this is looking awesome, great work can't wait to try this out!heheall those options sound really good to me wow!!
rabiddachshund Posted June 29, 2007 Posted June 29, 2007 (edited) Awesome work. One question though: If the command line won't work, this won't force it, will it?<imagex /mount e:\preload\base5.wim 1 c:\vistamount>returns: The request is not supported.....why? Please help. I'm desperate----------------------------------There's no place like 127.0.0.1. Edited June 29, 2007 by rabiddachshund
p4ntb0y Posted June 30, 2007 Author Posted June 30, 2007 sorry for the late reply..I have only got the mount thing working when the waik is installed on your machine. I will be releaseing a new version which is just about finished.the finished version and open source will be avaiable later this week.As before this does not use any API Calls, however I am trying to learn a c++ so that I can use API's from the wimgapi.dll but like like everything trying to learn a new langauge, and exams to study for it may be some time.But the new version looks plain but works for my Engineers and me.
trtkron Posted July 2, 2007 Posted July 2, 2007 As before this does not use any API Calls, however I am trying to learn a c++ so that I can use API's from the wimgapi.dll but like like everything trying to learn a new langauge, and exams to study for it may be some time.Here is some code to get you started. I belive this is everything in wimgapi.h and a couple examples. Some tricky ones are the progress bar ones. Wimgapi is multithreaded so you have to create a form + callback for it on the fly to track the progress when using VB6.Option ExplicitPublic Declare Function WIMApplyImage Lib "WIMGAPI.DLL" (ByVal hImage As Long, ByVal lpszPath As String, ByVal dzApplyFlags As Long) As BooleanPublic Declare Function WIMCaptureImage Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal lpszPath As String, ByVal dwCaptureFlags As Long) As BooleanPublic Declare Function WIMCloseHandle Lib "WIMGAPI.DLL" (ByVal hObject As Long) As BooleanPublic Declare Function WIMCreateFile Lib "WIMGAPI.DLL" (ByVal lpszWimPath As String, ByVal dwDesiredAccess As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal dwCompressionType As Long, ByRef CreationResult As Boolean) As LongPublic Declare Function WIMMountImage Lib "WIMGAPI.DLL" (ByVal lpszMountPath As String, ByVal lpszWimFileName As String, ByVal dwImageIndex As Long, Optional ByVal lpszTempPath As String) As BooleanPublic Declare Function WIMDeleteImage Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal dwApplyFlags As Integer) As BooleanPublic Declare Function WIMExportImage Lib "WIMGAPI.DLL" (ByVal hImage As Long, ByVal hwim As Long, ByVal dwApplyFlags As Integer) As BooleanPublic Declare Function WIMGetImageCount Lib "WIMGAPI.DLL" (ByVal hwim As Long) As IntegerPublic Declare Function WIMGetMessagecallbackCount Lib "WIMGAPI.DLL" (ByVal hwim As Long) As IntegerPublic Declare Function WIMLoadImage Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal dwImageIndex As Integer) As LongPublic Declare Function WIMSetBootImage Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal dwImageIndex As Integer) As BooleanPublic Declare Function WIMSetReferenceFile Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal lpszPath As String, ByVal dwFlags As Integer) As BooleanPublic Declare Function WIMSplitFile Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal lpszPartPath As String, ByRef pliPartSize As Integer, ByVal dwFlags As Integer) As BooleanPublic Declare Function WIMUnmountImage Lib "WIMGAPI.DLL" (ByVal lpszMountPath As String, ByVal lpszWimFileName As String, ByVal dwImageIndex As Integer, ByVal bCommitChanges As Boolean) As BooleanPublic Declare Function WIMSetTemporaryPath Lib "WIMGAPI.DLL" (ByVal hwim As Long, ByVal lpszPath As String) As BooleanPublic Declare Function WIMGetImageInformation Lib "WIMGAPI.DLL" (ByVal hImage As Long, ByRef lplpvImageInfo As Long, ByRef lpcbImageInfo As Integer) As BooleanPublic Declare Function WIMSetImageInformation Lib "WIMGAPI.DLL" (ByVal hImage As Long, ByVal lpvImageInfo As Long, ByVal cbImageInfo As Integer) As BooleanPublic Declare Function WIMMessageCallback Lib "WIMGAPI.DLL" (ByVal dwMessageId As Integer, ByVal wParam As Long, ByVal lParam As Long, ByVal lpvUserData As Long) As IntegerPublic Declare Function WIMCopyFile Lib "WIMGAPI.DLL" (ByVal lpszExistingFileName As String, ByVal lpszNewFileName As String, ByVal lpProgressRoutine As Any, ByVal lpvData As Long, ByVal pbCancel As Boolean, ByVal dwCopyFlags As Integer) As BooleanPublic Const WIM_GENERIC_READ As Long = &H80000000Public Const WIM_GENERIC_WRITE As Long = &H40000000Public Const WIM_CREATE_NEW As Byte = &H1Public Const WIM_CREATE_ALWAYS As Byte = &H2Public Const WIM_OPEN_EXISTING As Byte = &H3Public Const WIM_OPEN_ALWAYS As Byte = &H4Public Const WIM_COMPRESS_NONE As Byte = 0Public Const WIM_COMPRESS_XPRESS As Byte = 1Public Const WIM_COMPRESS_LZX As Byte = 2Public Const WIM_CREATED_NEW As Byte = 0Public Const WIM_OPENED_EXISTING As Byte = 1Public Const WIM_FLAG_RESERVED As Byte = &H1Public Const WIM_FLAG_VERIFY As Byte = &H2Public Const WIM_FLAG_INDEX As Byte = &H4Public Const WIM_FLAG_NO_APPLY As Byte = &H8Public Const WIM_FLAG_NO_DIRACL As Byte = &H10Public Const WIM_FLAG_NO_FILEACL As Byte = &H20Public Const WIM_FLAG_SHARE_WRITE As Byte = &H40Public Const WIM_FLAG_FILEINFO As Byte = &H80Public Const WIM_FLAG_NO_RP_FIX As Integer = &H100Public Const WIM_REFERENCE_APPEND As Long = &H10000Public Const WIM_REFERENCE_REPLACE As Long = &H20000Public Const WIM_EXPORT_ALLOW_DUPLICATES As Byte = &H1Public Const WIM_EXPORT_ONLY_RESOURCES As Byte = &H2Public Const WIM_EXPORT_ONLY_METADATA As Byte = &H4Public Const INVALID_CALLBACK_VALUE As Long = &HFFFFFFFFPublic Const WIM_COPY_FILE_RETRY As Long = &H1000000Public Const WIM_MSG_SUCCESS As Byte = 0&Public Const WIM_MSG_DONE As Long = &HFFFFFFF0Public Const WIM_MSG_SKIP_ERROR As Long = &HFFFFFFFEPublic Const WIM_MSG_ABORT_IMAGE As Long = &HFFFFFFFFPublic Const WIM_ATTRIBUTE_NORMAL As Byte = &H0Public Const WIM_ATTRIBUTE_RESOURCE_ONLY As Byte = &H1Public Const WIM_ATTRIBUTE_METADATA_ONLY As Byte = &H2Public Const WIM_ATTRIBUTE_VERIFY_DATA As Byte = &H4Public Const WIM_ATTRIBUTE_RP_FIX As Byte = &H8Public Const WIM_ATTRIBUTE_SPANNED As Byte = &H10Public Const WIM_ATTRIBUTE_READONLY As Byte = &H20DeletelHandle = WIMCreateFile(ConvertToUniCode("Path_To_Wim"), WIM_GENERIC_WRITE, WIM_OPEN_EXISTING, WIM_FLAG_SHARE_WRITE, WIM_COMPRESS_XPRESS, 0)WIMSetTemporaryPath(lHandle, ConvertToUniCode(oWSHShell.ExpandEnvironmentStrings("%Temp%"))) WIMDeleteImage(lHandle, cmbImageNumber.Text)WIMCloseHandle (lHandle)MountWIMMountImage(ConvertToUniCode("Path_To_Mount"), ConvertToUniCode("Path_To_Wim"), ImageNumber, ConvertToUniCode("Path_To_Temp"))UnmountWIMUnmountImage(ConvertToUniCode("Path_To_Mount"), ConvertToUniCode("Path_To_Wim"), ImageNumber, True/FalseSaveChanges))Get Number of Images in WIM filelHandle = WIMCreateFile(ConvertToUniCode("Path_To_Wim"), WIM_GENERIC_WRITE, WIM_OPEN_EXISTING, WIM_FLAG_SHARE_WRITE, WIM_COMPRESS_XPRESS, 0)iNumberOfImages = WIMGetImageCount(lHandle)WIMCloseHandle (lHandle)
chiners_68 Posted July 26, 2007 Posted July 26, 2007 where do you get these two files from..winfltr.iniwinfltr.sysive got the rest but searching on my whole drive but they dont exist. Ill search the web but it might benefit others if they know where to locate them from.
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