goldenix Posted December 12, 2007 Share Posted December 12, 2007 (edited) Hi. I want the user to specify the image path & where to save the image ( then the prog will loop the folder & add to exe all images ) see the problem is, that this works theoretically fine. i men in the F5 test mode, but when i compile, it says, that it cant find the files to write to file. I understand, why it cant find the files, but this is unimportant, because they will be defined once the user runs the exe....but i cant compile, maybe someone know a solution? ;~ ================================================================================= ; Choose skin foder? ;~ ================================================================================= $browsefolder_ = FileOpenDialog('Choose the Skin folder to read skins from', @ScriptDir & "\", "Select Skin.dat from Folder & Press OPEN(*.dat;*.bmp)", 1 ,'Skin.dat') If @error then Exit $a_ = StringSplit($browsefolder_,"\",0) $_Skin_Folder_o = StringReplace($browsefolder_,$a_[$a_[0]], "") ;~ ================================================================================= ; Where Should We write the Temp skin folder? ;~ ================================================================================= $browsefolder = FileSaveDialog('Choose the folder to save temp skin folder', @ScriptDir & "\", "Select temp Skin dir & Press SAVE(x.x)", 1 ,'Select temp Skin dir & Press SAVE') If @error then Exit $a = StringSplit($browsefolder,"\",0) $Temp_Skin_folder_s = StringReplace($browsefolder,$a[$a[0]], "") ;~ ================================================================================= ; Search folder for skins & install them ;~ ================================================================================= $search_handle = FileFindFirstFile($_Skin_Folder_o & '*.*') If $search_handle = -1 Then MsgBox(0, "Error", "Cant Find the" & $search_handle) Exit EndIf While 1 $file_found = FileFindNextFile($search_handle) If @error Then ExitLoop ; if no files found exit If StringInStr($file_found,'.bmp') Or StringInStr($file_found,'.dat') Then ; if find files we want to binarywrite.. FileInstall($_Skin_Folder_o & $file_found, $Temp_Skin_folder_s & $file_found) EndIf WEnd FileClose($search_handle) Edited December 12, 2007 by goldenix My Projects:[list][*]Guide - ytube step by step tut for reading memory with autoitscript + samples[*]WinHide - tool to show hide windows, Skinned With GDI+[*]Virtualdub batch job list maker - Batch Process all files with same settings[*]Exp calc - Exp calculator for online games[*]Automated Microsoft SQL Server 2000 installer[*]Image sorter helper for IrfanView - 1 click opens img & move ur mouse to close opened img[/list] Link to comment Share on other sites More sharing options...
herewasplato Posted December 12, 2007 Share Posted December 12, 2007 (edited) Turn the FileInstall line into a /AutoIt3ExecuteLine line.Edit: Take a look at this code for ideas...http://www.autoitscript.com/forum/index.php?showtopic=22531 Edited December 12, 2007 by herewasplato [size="1"][font="Arial"].[u].[/u][/font][/size] Link to comment Share on other sites More sharing options...
goldenix Posted December 12, 2007 Author Share Posted December 12, 2007 (edited) Turn the FileInstall line into a /AutoIt3ExecuteLine line. Edit: Take a look at this code for ideas... http://www.autoitscript.com/forum/index.php?showtopic=22531umm why isnt this working? i mean the msgbox does jump out, but the file isnt being copied. Thats wierd..., since they are identical $title_ = 'C:\0.bmp' $text_ ='C:\1.bmp' _FileInstall($title_, $text_) Func _FileInstall($title, $text) Local $pid, $pos $pid = Run(@AutoItExe & ' /AutoIt3ExecuteLine ' & '"MsgBox(0x0,''' & $title & ''',''' & $text & ''')"') ; this works $pid = Run(@AutoItExe & ' /AutoIt3ExecuteLine ' & '"FileInstall(''' & $title & ''',''' & $text & ''')"') ProcessWaitClose($pid) EndFunc Run(@AutoItExe & ' /AutoIt3ExecuteLine "MsgBox(0, ''Hello World!'', ''Hi!'')"') ; this works Run(@AutoItExe & ' /AutoIt3ExecuteLine "FileInstall(''C:\0.bmp'', ''C:\1.bmp'')"') Edited December 12, 2007 by goldenix My Projects:[list][*]Guide - ytube step by step tut for reading memory with autoitscript + samples[*]WinHide - tool to show hide windows, Skinned With GDI+[*]Virtualdub batch job list maker - Batch Process all files with same settings[*]Exp calc - Exp calculator for online games[*]Automated Microsoft SQL Server 2000 installer[*]Image sorter helper for IrfanView - 1 click opens img & move ur mouse to close opened img[/list] Link to comment Share on other sites More sharing options...
Skruge Posted December 12, 2007 Share Posted December 12, 2007 umm why isnt this working? i mean the msgbox does jump out, but the file isnt being copied. Thats wierd..., since they are identical $pid = Run(@AutoItExe & ' /AutoIt3ExecuteLine ' & '"FileInstall(''' & $title & ''',''' & $text & ''')"') In my testing, FileInstall didn't work from an AutoIt3ExecuteLine command. I haven't seen the sourcecode, but I think it has to do with the conversion to a resource at compile-time. If a script isn't compiled, the interpreter will use FileCopy instead. Since the files exist outside of the compiled script, why not just use FileCopy? [font="Tahoma"]"Tougher than the toughies and smarter than the smarties"[/font] Link to comment Share on other sites More sharing options...
goldenix Posted December 12, 2007 Author Share Posted December 12, 2007 In my testing, FileInstall didn't work from an AutoIt3ExecuteLine command.I haven't seen the sourcecode, but I think it has to do with the conversion to a resource at compile-time.If a script isn't compiled, the interpreter will use FileCopy instead.Since the files exist outside of the compiled script, why not just use FileCopy?I want to make the Ezskin, alias XSkin to write the skin pictures into the exe (this way I can run my compilied exe anywhere & the skin folder isnt required anymore in the exe folder) this is wy i must write the files into the exe. My Projects:[list][*]Guide - ytube step by step tut for reading memory with autoitscript + samples[*]WinHide - tool to show hide windows, Skinned With GDI+[*]Virtualdub batch job list maker - Batch Process all files with same settings[*]Exp calc - Exp calculator for online games[*]Automated Microsoft SQL Server 2000 installer[*]Image sorter helper for IrfanView - 1 click opens img & move ur mouse to close opened img[/list] Link to comment Share on other sites More sharing options...
Skruge Posted December 12, 2007 Share Posted December 12, 2007 I want to make the Ezskin, alias XSkin to write the skin pictures into the exe (this way I can run my compilied exe anywhere & the skin folder isnt required anymore in the exe folder) this is wy i must write the files into the exe.OK, in that case I would suggest a secondary script that identifies the files, generates the FileInstall lines, and inserts them into your main script before compiling. [font="Tahoma"]"Tougher than the toughies and smarter than the smarties"[/font] Link to comment Share on other sites More sharing options...
goldenix Posted December 12, 2007 Author Share Posted December 12, 2007 (edited) I wanted to use install, since its only 1 line of code, but if this is bugged it cant be helped, Ill just use the script by Farby. Tthanx for the replays. ;~ ================================================================================= ; Convert files to binary by Fabry. ;~ ================================================================================= $file = FileOpenDialog('Open the image file', @ScriptDir, 'image (*.jpg;*.xm;*dll;*.png)', 1) $file2 = FileSaveDialog('Save the file', @ScriptDir, 'script (*.au3)') _CheckExt($file2, 'au3') $var = InputBox('Name variable', 'Prompt the name variable used', '$pic') _CheckCapital($var, '$') $hfile = FileOpen($file, 16) $hfile2 = FileOpen($file2, 2) FileWrite($hfile2, $var&'="0x"' & @CRLF) While 1 $data = FileRead($hfile, 30) If @error Then ExitLoop FileWrite($hfile2, $var&'&="' & StringTrimLeft($data,2) & '"' & @CRLF) WEnd MsgBox(0, 'Done!!', 'Done by Fabry!!!') Func _CheckExt(ByRef $s_file, $s_ext) If StringRight($s_file, StringLen($s_ext)) <> $s_ext Then $s_file &= '.' & $s_ext EndFunc ;==>_CheckExt Func _CheckCapital(ByRef $s_file, $s_cap) If StringLeft($s_file, StringLen($s_cap)) <> $s_cap Then $s_file = $s_cap & $s_file EndFunc ;==>_CheckExt Edited December 12, 2007 by goldenix My Projects:[list][*]Guide - ytube step by step tut for reading memory with autoitscript + samples[*]WinHide - tool to show hide windows, Skinned With GDI+[*]Virtualdub batch job list maker - Batch Process all files with same settings[*]Exp calc - Exp calculator for online games[*]Automated Microsoft SQL Server 2000 installer[*]Image sorter helper for IrfanView - 1 click opens img & move ur mouse to close opened img[/list] Link to comment Share on other sites More sharing options...
herewasplato Posted December 12, 2007 Share Posted December 12, 2007 umm why isnt this working?...From the help file under FileInstall:The source path of the file to compile. This must be a literal string; it cannot be a variable.You cannot use a variable in the compiled version.Now that I think about it a bit more, you don't need a secondary script;You can do a file install to a temp location...Then copy them to the location indicated by the user of the script....or maybe I don't get what you are attempting to do. [size="1"][font="Arial"].[u].[/u][/font][/size] Link to comment Share on other sites More sharing options...
goldenix Posted December 12, 2007 Author Share Posted December 12, 2007 ...or maybe I don't get what you are attempting to do. I assume $userdefined_skinfolder is variable? is there any chance, that variables can be used in Fileinstall future autoit releases? to come back to /AutoIt3ExecuteLine. I read the help file, but it confused me even more, so let me ask , can i run include with it. I tried & it does not seem to be working, i still cant compile due an error: ERROR: can't open include file <_temp_skins_in_binary.au3> #include '_temp_skins_in_binary.au3' Run(@AutoItExe & ' /AutoIt3ExecuteLine "#include"'"_temp_skins_in_binary.au3"'""'); this is not working. My Projects:[list][*]Guide - ytube step by step tut for reading memory with autoitscript + samples[*]WinHide - tool to show hide windows, Skinned With GDI+[*]Virtualdub batch job list maker - Batch Process all files with same settings[*]Exp calc - Exp calculator for online games[*]Automated Microsoft SQL Server 2000 installer[*]Image sorter helper for IrfanView - 1 click opens img & move ur mouse to close opened img[/list] Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted December 12, 2007 Moderators Share Posted December 12, 2007 s there any chance, that variables can be used in Fileinstall future autoit releases?No.Look for the resource post by Zedna in the Example Script forum. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
herewasplato Posted December 12, 2007 Share Posted December 12, 2007 ...Look for the resource post by Zedna in the Example Script forum.http://www.autoitscript.com/forum/index.ph...showtopic=51103 [size="1"][font="Arial"].[u].[/u][/font][/size] Link to comment Share on other sites More sharing options...
herewasplato Posted December 12, 2007 Share Posted December 12, 2007 I assume $userdefined_skinfolder is variable?...Well, yes it is - but I do not see that variable in your OP code.The AutoIt3ExecuteLine switch takes one line of code and executes it as a totally separate script. AutoIt3ExecuteScript runs an additional script. Both use the AutoIt exe from your main script to run the line or script.The example that I pointed you to has the main script write a temporary text file and then the main script runs that text file as a script. Now that I've had a bit more time to look over the code in your OP, I see where SmOke_N's suggestion is the route that you need to take. :-) [size="1"][font="Arial"].[u].[/u][/font][/size] Link to comment Share on other sites More sharing options...
goldenix Posted December 12, 2007 Author Share Posted December 12, 2007 Well, yes it is - but I do not see that variable in your OP code.The AutoIt3ExecuteLine switch takes one line of code and executes it as a totally separate script. AutoIt3ExecuteScript runs an additional script. Both use the AutoIt exe from your main script to run the line or script.The example that I pointed you to has the main script write a temporary text file and then the main script runs that text file as a script. Now that I've had a bit more time to look over the code in your OP, I see where SmOke_N's suggestion is the route that you need to take. :-)I still cant understand anything, but im working on it, looks like examples arent working all i see is blanks.....anyway thanx. im going to switch to that topic now. My Projects:[list][*]Guide - ytube step by step tut for reading memory with autoitscript + samples[*]WinHide - tool to show hide windows, Skinned With GDI+[*]Virtualdub batch job list maker - Batch Process all files with same settings[*]Exp calc - Exp calculator for online games[*]Automated Microsoft SQL Server 2000 installer[*]Image sorter helper for IrfanView - 1 click opens img & move ur mouse to close opened img[/list] 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