Skitty 49 Posted January 25, 2011 (edited) Edit: Found a work around but any advice is still welcome! Global $Rar = _TempFile(@ScriptDir, "DATA_", ".rar", 7) How do you prevent the above code from returning a full path instead of the filename? I'm trying to use it with this little project of mine. It's supposed to protect and hide files by archiving them with rar,exe expandcollapse popup#include<File.au3> #RequireAdmin HotKeySet("{F2}","_Select") Global $Rar = _TempFile(@ScriptDir, "DATA_", ".rar", 7) While 1 Sleep(360000) WEnd Func _Select() Local $I = InputBox("Command Center", " ", "", "", 200, 100) Switch $I Case "kill", "exit", "stop", "Kill", "Exit", "Stop", "KILL", "EXIT", "STOP" Exit Case "create", "Create", "CREATE" _create() Case "lock", "Lock", "LOCK" _lock() Case "unlock", "Unlock", "UNLOCK", "un-lock", "Un-lock", "UN-LOCK", "un lock", "Un lock", "UN LOCK", "Un Lock", "Un-Lock" _unlock() Case "google", "Google", "GOOGLE" ShellExecute("http://www.google.com") Case "au3" ShellExecute("http://www.autoitscript.org") Case Else MsgBox(0, "Syntax error", "'" & $I & "'" & " is not recognized as an internal or external command." & _ @LF & "Correct your syntax and try again.") EndSwitch EndFunc Func _create() $folder = @ScriptDir & "\Archive" DirCreate(@ScriptDir & "\Archive") _FileCreate(@ScriptDir & "\Archive\desktop.ini") FileInstall("C:\W7\lock.ico",@ScriptDir & "\Archive\lock.ico") $ico = @ScriptDir & "\Archive\lock.ico" IniWriteSection($folder & "\" & "Desktop.ini", ".ShellClassInfo", _ "IconFile=" & $ico & @LF & _ "IconIndex=0" & @LF & _ "InfoTip=Folder ready for archiving!") FileSetAttrib($folder & "\" & "Desktop.ini", "+H") FileSetAttrib($folder, "+R") FileSetAttrib($folder & "\lock.ico", "+SHR") EndFunc Func _lock() _TalkOBJ("At your command sir") $KB29 = InputBox("Set a password"," ","","",250,100) FileInstall("C:\W7\Rar.exe",@TempDir & "\Rar.exe") Sleep(1000) FileChangeDir(@TempDir) RunWait("rar a Data.rar -k -ow -m5 -hp" & $KB29 & " " & @ScriptDir & "\Archive",@TempDir,@SW_HIDE) FileMove(@TempDir & "\Data.rar", $Rar) ProcessClose("Rar.exe") FileChangeDir(@ScriptDir) DirCreate(@ScriptDir & "\KB29") _FileCreate(@ScriptDir & "\KB29\$~settings.ini") IniWriteSection(@ScriptDir & "\KB29\$~settings.ini", "KB29", _ $Rar & "=" & $KB29) _TalkOBJ("Data archiving was successful") EndFunc Func _unlock() EndFunc Func _TalkOBJ($s_text) Local $o_speech = ObjCreate("SAPI.SpVoice") $o_speech.Speak($s_text) $o_speech = "" EndFunc You're going to have to edit the file install's if you wan't this to work! It's causing a problem with the iniwritesection area. I need the iniwritesection function to only write the file name. I'm planning on adding a password encryption function so that even passwords area some what safe. Safe from what? no one really, just an interesting little project. supposedly rar.exe doc's say that using the -ph switch makes it impossible to open and view an archive when you use a password above 15-20 characters. Edited January 25, 2011 by xJSLRx Share this post Link to post Share on other sites
wakillon 403 Posted January 25, 2011 you can use this function for get file nameConsoleWrite ( _GetNameByFullPath ( @ScriptFullPath ) & @CRLF ) Func _GetNameByFullPath ( $_FullPath ) If Not FileExists ( $_FullPath ) Then Return 0 $_FileName = StringSplit ( $_FullPath, '\' ) Return $_FileName[$_FileName[0]] EndFunc ;==> _GetNameByFullPath ( )it give you scriptname like @Scriptname result ! AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Share this post Link to post Share on other sites
Skitty 49 Posted January 25, 2011 you can use this function for get file name ConsoleWrite ( _GetNameByFullPath ( @ScriptFullPath ) & @CRLF ) Func _GetNameByFullPath ( $_FullPath ) If Not FileExists ( $_FullPath ) Then Return 0 $_FileName = StringSplit ( $_FullPath, '\' ) Return $_FileName[$_FileName[0]] EndFunc ;==> _GetNameByFullPath ( ) it give you scriptname like @Scriptname result ! Thanks! that's exactly what I needed! Share this post Link to post Share on other sites