Sign in to follow this  
Followers 0
Psibernetic

Securacy failing...

7 posts in this topic

#1 ·  Posted (edited)

I need some help, when I try to "secure" a folder, it is supposeed to encrypt the PsiE_******.zp, it doesnt....works fine with files any ideas? I kno I am asking alit..but I am out of options..

I am including the files... Securacy runs the program others are includes...(problem could be in the includes)

Edited by Psibernetic

[sup]Psibernetic[/sup]My Creations:X-HideSecuracy

Share this post


Link to post
Share on other sites



I need some help, when I try to "secure" a folder, it is supposeed to encrypt the PsiE_******.zp, it doesnt....works fine with files any ideas? I kno I am asking alit..but I am out of options..

I am including the files... Securacy runs the program others are includes...(problem could be in the includes)

your thread here is kind of confusing... please clear this up.

 

Spoiler

shoot_zpsfd329d66.png
dontbelieveeverythingyouthink_zps0e1e900

Madness is the first step to understanding...

Share this post


Link to post
Share on other sites

sorry uploading issues...


[sup]Psibernetic[/sup]My Creations:X-HideSecuracy

Share this post


Link to post
Share on other sites

Ok RE-cap...(sorry it is very confusing to me so I am trying to explain my own confusion...)

When I run my script Securacy, it is supposed to take the file or folder, make a zip file out of it, and then encrypt the zip, this one adds the prefix PsiE_ (which means psibernetic encrypt)...it works fine with files, but if u attempt it on a folder, the file that is supposed to be encrypted will not encrypt


[sup]Psibernetic[/sup]My Creations:X-HideSecuracy

Share this post


Link to post
Share on other sites

ok thanks for clearing up your post, but why not post your script here... so we can have a look at it, so it can be diagnosed easily... files being uploaded by people whom i don't know is kind of ehhhhh. It could be infected with a virus for all o know. so please just post the script... that is the preffered method.


 

Spoiler

shoot_zpsfd329d66.png
dontbelieveeverythingyouthink_zps0e1e900

Madness is the first step to understanding...

Share this post


Link to post
Share on other sites

umm.. there is alot of code.... in multiple files... it'll be a mess but ill try....


[sup]Psibernetic[/sup]My Creations:X-HideSecuracy

Share this post


Link to post
Share on other sites

Securacy.au3

CODE

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

;~~~~~~~~~~~~~~~~~~~(Psibernetic Computing's X- AutoIt3 Special Edition)~~~~~~~~~~~~~~~

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(01/03/07 - 1/10/07)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#include <GUIConstants.au3>

#include <File.au3>

#include <Array.au3>

#Include <String.au3>

#Include <GuiListView.au3>

#include <FileEncryption.au3>

#include <xZipUDF.au3>

#Include <PsiberneticUDF.au3>

#NoTrayIcon

;Initial Variables

$xHSpath=@ScriptDir & "\HSlog\logHSfiles.log" ;Path to the Entry Database

$xEncryptPath=@scriptDir &"\HSlog\PSIFR.log" ;Path to the first time run and password file

$xFirstRun=FileReadLine($xEncryptPath, 1) ;is it the first run?

;This Code Executes on user's first run of the program, sets the password for encryption and decryption

If $xFirstRun<>1 then ;execute if first run

$xEncryptPassword=InputBox("Password Set","Please set your password to encrypt your database","","*M") ;ask what to set the password as

If @error=1 then exit

$xSetEncryptedPass=_StringEncrypt(1,$xEncryptPassword,"PsiPhi",2) ;Encrypt it

FileWriteLine($xEncryptPath, 1) ;Write on the first line 1 telling x-hide it has been ran before (set this to zero manually to change pass)

FileWriteLine($xEncryptPath, $xSetEncryptedPass) ;Write the encrypted passwaord

;Log Encryption

$xDatabaseCrypt=_FileCountLines($xHSpath) ;See how many lines there are

If $xDatabaseCrypt<>0 Then ; If there are any entries, do following:

dim $ArrayToClearLog[1] ;make an array for clearing file

$ArrayToClearLog[0]="" ;set the array's only element to nothing

$xHS_Database=FileRead($xHSpath) ; read the log into $xHS_Database

$xHS_Database_En=_StringEncrypt(1,$xHS_Database,$xDecryptPassword,2) ;Save the encrypted log into $xHS_Database_En

_FileWriteFromArray ($xHSpath, $ArrayToClearLog) ;Clear the log

FileWrite($xHSpath, $xHS_Database_En) ;Write the encrypted log back

EndIf

EndIf

$xPasswordEncrypted=FileReadLine($xEncryptPath, 2)

$xPasswordDecrypted=_StringEncrypt(0,$xPasswordEncrypted,"PsiPhi",2)

$xDecryptPassword=InputBox("Password Required", "Please enter the password to decrypt your database", "","*M")

If @error=1 then exit

If $xDecryptPassword<>$xPasswordDecrypted Then

msgbox(0,"ERROR","Incorrect Password, Good-Bye")

Exit

Else

;Log Decryption

$xDatabaseCrypt=_FileCountLines($xHSpath) ;See how many lines there are

If $xDatabaseCrypt<>0 Then ; If there are any entries, do following:

dim $ArrayToClearLog[1] ;make an array for clearing file

$ArrayToClearLog[0]="" ;set the array's only element to nothing

$xHS_Database=FileRead($xHSpath) ; read the log into $xHS_Database

$xHS_Database_De=_StringEncrypt(0,$xHS_Database,$xDecryptPassword,2) ;Save the decrypted log into $xHS_Database_De

_FileWriteFromArray ($xHSpath, $ArrayToClearLog) ;Clear the log

FileWrite($xHSpath, $xHS_Database_De) ;Write the Decrypted log back

EndIf

EndIf

;Define GUI type and specifics

$xMainWin=GUICreate("Securacy Beta R1", 300, 242)

GUISetIcon ("Xau3.ico")

GUISetBkColor(0x000000)

;Picture CTRLs

$xLogoPic=GUICtrlCreatePic(@ScriptDir & "\button\securacy.bmp", 63,0, 172, 63) ;$xLogoPic Construction

$xFilePic=GUICtrlCreatePic(@ScriptDir & "\button\file.bmp",-10,122,75,30) ;$xFilePic Construction

$xFolderPic=GUICtrlCreatePic(@ScriptDir & "\button\folder.bmp",215,122,75,30) ;$xFolderPic Construction

$xHide=GUICtrlCreatepic(@scriptDir & "\Button\secure.bmp", 2, 32, 59, 30) ;xHide Construction

$xBrowse=GUICtrlCreatepic(@scriptDir & "\Button\browse.bmp", 120, 68, 59, 30) ;xBrowse Construction

$xUnHide=GUICtrlCreatepic(@scriptDir & "\Button\unsecure.bmp", 239, 32, 59, 30) ;xUnHide Construction

;Input CTRLs

$xFilePath=GUICtrlCreateInput("",41,103,216,20) ;xFilePath Construction

GUICtrlSetBkColor($xFilePath, 0x000000) ;xFilePath Background Color: 000000(Black)

GUICtrlSetColor($xFilePath, 0x00FF00) ;xFilePath Font Color: 00FF00(lime)

;Slider CTRLs

$xBrowseType=GUICtrlCreateSlider(65,127,150) ;xBrowseType Construction

GUICtrlSetLimit($xBrowseType,2,1) ; change min/max value

;ListView CTRLs

$xHiddenListView=GUICtrlCreateListView ("File|Path",0,154,300,88,$LVS_NOSORTHEADER) ;xHiddenListView Construction

GUICtrlSetBkColor($xHiddenListView, 0x000000) ;xHiddenListView Background Color: 000000(Black)

GUICtrlSetColor($xHiddenListView, 0x00FF00) ;xHiddenListView Font Color: 00FF00(lime)

_GUICtrlListViewSetColumnWidth ( $xHiddenListView, 0, 70 ) ;set "File" column width to 70

_GUICtrlListViewSetColumnWidth ( $xHiddenListView, 1, 226 ) ;set "Path" column width to 226

;ListView Item CTRLs

psi_LoadList($xHSpath, $xHiddenListView) ;Call the xLoadList function exports control IDs to the array $xListItems[]

;GUI activate

GUISetState(@SW_SHOW)

;Program Event Checking loop

While 1

$Event=GUIGetMsg()

Select

case $Event=$GUI_EVENT_CLOSE

ExitLoop

case $Event=$xBrowse

$xBrowseMethod=GUICtrlRead($xBrowseType)

Select

case $xBrowseMethod=1

$xRetrievedPath=FileOpenDialog("Choose your file to hide/unhide...", "C:\", "All (*.*)", 1+2+4+8)

ControlSetText("","",$xFilePath, $xRetrievedPath)

case $xBrowseMethod=2

$xRetrievedPath=FileSelectFolder("", "C:\" & @CommonFilesDir)

ControlSetText("","",$xFilePath, $xRetrievedPath)

EndSelect

case $Event=$xHide ;If Hide is clicked execute following

$xFile=ControlGetText ("","",$xFilePath) ;get the path returned by Browse

$xFileCol=psi_PathManipulate($xFile, "F") ;retreive the file portion of the fullpath

$xPathCol=psi_PathManipulate($xFile, "P") ;retreive the path portion of the fullpath

Select ;if no Filename, do not include it in new path

case $xFileCol<>"N/A"

Dim $xFullPath[1]

$xFullPath[0]=$xPathCol & $xFileCol ;Essentially the same as $xFile, but $xFile may cause a conflict so remade variable ensure proper execution

$xZippedFilePath=$xFullPath[0] & ".zip"

_ZipOpen($xZippedFilePath)

_ZipPackGroup($xFullPath, False)

_ZipClose()

$xFileCol="PsiE_" & $xFileCol ;If selected file/folder is a folder path then do not add prefix PsiE_

$xFileAndPathCols=$xFileCol & "|" & $xPathCol ;format the path and filename as reurned by psi_PathManipulate

$xEncryptedFilePath=$xPathCol & $xFileCol & ".zip"

case Else

Dim $xFullPathDir[1]

$xFolderDir=psi_PathManipulate($xFile & ".", "F") ;retreive the final dir portion of the fullpath (added decimal to trick function into treating it as a file)

$xFolderDir=StringLeft($xFolderDir,stringlen($xFolderDir)-1) ;get rid of the decimal

$xPathFolder=psi_PathManipulate($xFile & ".", "P") ;retreive the path portion of the fullpath (added decimal to trick function to returning the path -1 directory)

$xFullPathDir[0]=$xPathFolder & $xFolderDir ;Essentially the same as $xFile, but $xFile may cause a conflict so remade variable ensure proper execution

$xZippedFilePath=$xPathFolder & $xFolderDir & ".zip"

_ZipOpen($xZippedFilePath)

_ZipPackGroup($xFullPathDir, False)

_ZipClose()

$xFileAndPathCols=$xFileCol & "|" & $xPathCol ;format the path and filename as reurned by psi_PathManipulate

$xEncryptedFilePath=$xPathFolder & "PsiE_" & $xFolderDir & ".zip"

EndSelect

_FileEncrypt($xZippedFilePath, $xEncryptedFilePath, $xDecryptPassword & "@1") ; IDEA Encrypt File

psi_Hide($xEncryptedFilePath, "hide") ;make "Superhidden" (Hidden System files)

psi_AddListItem($xHSpath, $xFileAndPathCols, $xHiddenListView) ; add new file to the log and ListView

ControlSetText("","",$xFilePath,"") ;empty the input boxes content

_FileDecrypt($xEncryptedFilePath,"C:\DE.zip",$xDecryptPassword & "@1") ; IDEA Encrypt File

case $Event=$xUnHide ;If UnHide is clicked execute following

$xFile=ControlGetText ("","",$xFilePath)

psi_Hide($xFile, "unhide")

$xPrefixCheck=stringleft(psi_PathManipulate($xFile, "F"), 4)

If StringLower($xPrefixCheck)="psie" Then

$xOriginalFileName=stringright(psi_PathManipulate($xFile, "F"), stringlen(psi_PathManipulate($xFile, "F"))-5)

$xOriginalPath=psi_PathManipulate($xFile, "P")

$xOriginalFilePath=$xOriginalPath & $xOriginalFilename

_FileDecrypt($xFile, $xOriginalFilePath, $xDecryptPassword & "@1")

FileDelete($xFile)

EndIf

psi_RemoveListItem($xHiddenListView, $xHSpath)

ControlSetText("","",$xFilePath,"")

case $Event=$GUI_EVENT_PRIMARYDOWN

psi_DetectDblClick()

case $Event=$xFilePic

GUICtrlSetData($xBrowseType,1)

case $Event=$xFolderPic

GUICtrlSetData($xBrowseType, 2)

EndSelect

wend

;ReEnccrypt Entry DataBase

$xDatabaseCrypt=_FileCountLines($xHSpath) ;See how many lines there are

If $xDatabaseCrypt<>0 Then ; If there is any entries, do following:

dim $ArrayToClearLog[1] ;make an array for clearing file

$ArrayToClearLog[0]="" ;set the array's only element to nothing

$xHS_Database=FileRead($xHSpath) ; read the log into $xHS_Database

$xHS_Database_En=_StringEncrypt(1,$xHS_Database,$xDecryptPassword,2) ;Save the encrypted log into $xHS_Database_En

_FileWriteFromArray ($xHSpath, $ArrayToClearLog) ;Clear the log

FileWrite($xHSpath, $xHS_Database_En) ;Write the encrypted log back

EndIf

;End Execution

exit

func psi_DetectDblClick()

$psi_SelectedItemListView=_GUICtrlListViewGetCurSel($xHiddenListView)

Select

Case $psi_SelectedItemListView<>-1

$psi_LonePath=_GUICtrlListViewGetItemText($xHiddenListView, $psi_SelectedItemListView,1)

$psi_Filename=_GUICtrlListViewGetItemText($xHiddenListView, $psi_SelectedItemListView,0)

If $psi_Filename<>"N/A" Then

$psi_FullPath=$psi_LonePath & $psi_Filename

GUICtrlSetData($xFilePath, $psi_FullPath)

Else

GUICtrlSetData($xFilePath, $psi_LonePath)

EndIf

EndSelect

EndFunc

FileEncryption.au3:

CODE

;===============================================================================

;

; Function Name: _FileEncrypt()

; Description: Encrypts a file using the IDEA Algorithm

; Parameter(s): $FileInput - File to encrypt

; $FileOutput - Where to save encrypted file

; $sKey - Key to encrypt file with

; Requirement(s): File.au3

; Return Value(s): On Success - Returns 1

; On Failure - Sets @error to 1 if input file does not exist

; - Sets @error to 2 if writing new file fails

; Author(s): RazerM

;===============================================================================

;

Func _FileEncrypt($FileInput, $FileOutput, $sKey)

Select

Case Not FileExists(@TempDir & "\encrypt.com")

_WriteEncryptCom()

Case Not FileExists($FileInput)

Return SetError(1, 0, 0)

EndSelect

$FileTemp = __FileCopy($FileInput, $FileOutput)

If @extended = 0 Then Return SetError(2, 0, 0)

RunWait(@ComSpec & " /c echo " & $sKey & "|" & FileGetShortName(@TempDir & "\encrypt.com") & " + " & FileGetShortName($FileOutput), "", @SW_HIDE)

FileDelete(@TempDir & "\encrypt.com")

FileDelete($FileTemp)

EndFunc ;==>_FileEncrypt

;===============================================================================

;

; Function Name: _FileDecrypt()

; Description: Decrypt a file using the IDEA Algorithm

; Parameter(s): $FileInput - File to decrypt

; $FileOutput - Where to save decrypted file

; $sKey - Key to decrypt file with

; Requirement(s): File.au3

; Return Value(s): On Success - Returns 1

; On Failure - Sets @error to 1 if input file does not exist

; - Sets @error to 2 if writing new file fails

; Author(s): RazerM

;===============================================================================

;

Func _FileDecrypt($FileInput, $FileOutput, $sKey)

Select

Case Not FileExists(@TempDir & "\encrypt.com")

_WriteEncryptCom()

Case Not FileExists($FileInput)

Return SetError(1, 0, 0)

EndSelect

If Not FileExists(@TempDir & "\encrypt.com") Then _WriteEncryptCom()

$FileTemp = __FileCopy($FileInput, $FileOutput)

If @extended = 0 Then Return SetError(2, 0, 0)

RunWait(@ComSpec & " /c echo " & $sKey & "|" & FileGetShortName(@TempDir & "\encrypt.com") & " - " & FileGetShortName($FileOutput), "", @SW_HIDE)

FileDelete(@TempDir & "\encrypt.com")

FileDelete($FileTemp)

EndFunc ;==>_FileDecrypt

Func __FileCopy($FileInput, $FileOutput)

Local $NULL, $szDrive, $szDir, $szFName, $szExt

_PathSplit($FileOutput, $szDrive, $szDir, $szFName, $szExt)

FileCopy($FileInput, @TempDir & "\" & $szFName & $szExt, 9)

Return SetError(0, FileMove(@TempDir & "\" & $szFName & $szExt, $FileOutput, 9), @TempDir & "\" & $szFName & $szExt)

EndFunc ;==>__FileCopy

Func _WriteEncryptCom()

Local $com = "0x"

$com &= "E81A01BAE402BE8000AC0AC0740AACAC3C2D74073C2B7407E9FE00FE06DD01AD"

$com &= "AC3C2077FB884CFFB2F0B409CD21B2F6B40ACD21B110BEF8025156B104BE8203"

$com &= "BF9A03F3A55E56E8DC00BE9A03568BFEE8E600B104BE7A03BF8A0357F3A55F5E"

$com &= "56E802018BF7BF7A03E8C3005F5E5657E8B300B104BE8A03F3A55E8BFEE8B900"

$com &= "B104BE8203BF92035657F3A55F57BE9A03E8D2005E5FE896005E83C60859E299"

$com &= "BF7A03E89300BA8400B8023DCD21720B93B90080BA0A04B43FCD2172590BC074"

$com &= "5C5250538BFA050700B103D3E891BE7A035157BF0204E88D00B904005EF8720F"

$com &= "AD86E03305AB86E08944FEE2F3EB0F8B1DAD86E0AB33D886FB895CFEE2F18BFE"

$com &= "59E2CB5B5A52F7DA49B80142CD21595AB440CD21739BBADE02B409CD21BFF702"

$com &= "B91381F3AAC3B104AD86E0ABE2FAC3B90400AD3305ABE2FAC383C710B3088BC3"

$com &= "24073C068B45F28B55F472088B55E474038B45E2B109D3E0B107D3EA0BC2AB43"

$com &= "80FB3475D9C3C606780308578B158B4D028B6D048B7D06E8500093AD03C8AD03"

$com &= "E88BD7E8440097515533EB33CF8BD5E8380003C8958BD1E8300003E89133D933"

$com &= "FD5A5833CA33E88BD3FE0E780375C8E8180093AD03E8AD03C88BD7E80C005F57"

$com &= "93AB95AB91AB93AB5FC352ADF7E22BC25A7507402B44FE2BC2C3150000C34572"

$com &= "726F72094944454120F12046696C65244B65793A202480"

FileDelete(@TempDir & "\encrypt.com")

Return FileWrite(@TempDir & "\encrypt.com", BinaryString($com))

EndFunc ;==>_WriteEncryptCom

PsiberneticUDF.au3:

CODE

#include-once

;Hide/UnHide Function

Func psi_Hide($psi_File, $psi_Action)

select

case $psi_Action="hide" ;if action is hide execute

FileSetAttrib($psi_File, "+SH") ;Hide chosen file

case $psi_Action="unhide" ;if action is unhide execute

FileSetAttrib($psi_File, "-SH") ;UnHide chosen file

EndSelect

EndFunc ;==>psi_Hide()

#cs

=========================================================================================

Function Reference

psi_LoadList

--------------------------------------------------------------------------------

Loads a set of ListViewItems into a ListView box from a file

#Include <PsiberneticUDF.au3>

psi_loadlist ( $psi_Path, $psi_ListViewCTRL )

Parameters

$psi_Path Indicates path of log

$psi_ListViewCTRL Indicates the ID of the ListView CTRL the items will be placed into

Return Value

Success: Returns the global array $psi_ListViewItems[] which contains the control IDs of each item.

Failure: Returns program run-time error.

Remarks

This function will read from the file indicated, each line is considered an entry.

Related

psi_AddListItem, psi_RemoveListItem

=========================================================================================

#ce

func psi_LoadList($psi_Path, $psi_ListViewCTRL)

$psi_FilesContainer=FileOpen($psi_Path,0) ;Open the log

$psi_logEntries=_FileCountLines($psi_Path) ;Count the entries in the log

Dim $psi_FileEntry[1] ;Set the log importing array (integer indexed)

$psi_ImportIndex=0 ;set the counter at 0

while $psi_ImportIndex < $psi_LogEntries ;Log import loop beginning

$psi_ImportIndex=$psi_ImportIndex+1 ;Increase counter

_ArrayAdd($psi_FileEntry, FileReadLine($psi_FilesContainer, $psi_ImportIndex)) ;import an entry from the log into $psi_FileEntry[]

WEnd ;Log import loop ending

FileClose($psi_FilesContainer) ;Close the log

Global $psi_ListViewItems[1] ;set the array containing the handles of the ListView Items (integer indexed)

Global $psi_ImportIndex

$psi_ImportIndex=0 ;set the counter at 0

While $psi_ImportIndex < $psi_LogEntries ;Item add loop beginning

$psi_ImportIndex=$psi_ImportIndex+1 ;Increase counter

_ArrayAdd($psi_ListViewItems, GUICtrlCreateListViewItem($psi_FileEntry[$psi_ImportIndex], $psi_ListViewCTRL)) ;addListView entry to the specified ListView CTRL

Wend ;Item add loop ending

return

endfunc ;==>psi_LoadList()

;===============================================================================

;

; Function Name: psi_PathManipulate ( $psi_PathToEval, $psi_Action )

; Description: Retrieve the filename or path from a file or folder path

; Parameter(s): $psi_PathToEval -The path to retrieve the filename from

; $psi_Action -Retrieve filename or path correct values: F or P

; Requirement(s): #include <PsiberneticUDF.au3>

; Return Value(s): On Success - Returns the filename

; On Failure - Returns N/A as filename

; @ERROR = 1 Not a file path

; @ERROR = 2 Not a valid path

; Author(s): Psibernetic

;

;===============================================================================

func psi_PathManipulate($psi_PathToEval, $psi_Action)

Select

case StringInStr($psi_PathToEval, ".")=0

SetError(1)

$psi_Filename="N/A"

$psi_Path=$psi_PathToEval

select

case StringUpper($psi_Action)="F"

Return $psi_Filename

case StringUpper($psi_Action)="P"

Return $psi_Path

EndSelect

case StringInStr($psi_PathToEval, "\")=0

SetError(2)

$psi_Filename="N/A"

$psi_Path="N/A"

Return $psi_Filename

Return $psi_Path

select

case StringUpper($psi_Action)="F"

Return $psi_Filename

case StringUpper($psi_Action)="P"

Return $psi_Path

EndSelect

case Else

$psi_Filename=""

While StringRight($psi_PathToEval,1)<>"\"

$psi_Filename=StringRight($psi_PathToEval,1) & $psi_Filename

$psi_PathToEval=StringLeft($psi_PathToEval, (StringLen($psi_PathToEval)-1))

WEnd

$psi_Path=$psi_PathToEval

select

case StringUpper($psi_Action)="F"

Return $psi_Filename

case StringUpper($psi_Action)="P"

Return $psi_Path

EndSelect

EndSelect ;==>psi_PathManipulate()

EndFunc

func psi_AddListItem($psi_Path, $psi_Data, $psi_ListViewCTRL)

FileWriteLine($psi_Path, $psi_Data) ;Add the entry

_ArrayAdd($psi_ListViewItems, GUICtrlCreateListViewItem($psi_Data, $psi_ListViewCTRL))

Global $psi_ImportIndex

$psi_ImportIndex=$psi_ImportIndex+1

EndFunc ;==>psi_AddListItem()

func psi_RemoveListItem($psi_ListViewID, $psi_File)

$psi_SelectedItem=_GUICtrlListViewGetCurSel($psi_ListViewID)

$psi_SelectedItem=$psi_SelectedItem+1

Dim $psi_FileRW[1]

_FileReadToArray($psi_File, $psi_FileRW)

_ArrayDelete($psi_FileRW, $psi_SelectedItem)

_FileWriteFromArray($psi_File, $psi_FileRW, 1)

GUICtrlDelete($psi_ListViewItems[$psi_SelectedItem])

_ArrayDelete($psi_ListViewItems, $psi_SelectedItem)

EndFunc ;==>psi_RemoveListItem()

xZipUDF.au3:

CODE

; ======================================================================================

; Zip UDFs based on standared fileOpen()/fileClose() system

; Based on other people's work.

;

; Only the more basic functions of XZip are represnted (poorly)

;

; Requires: XZip.dll:

; http://xstandard.com/printer-friendly.asp?...60-2267ED6763A7

; ======================================================================================

#include-once

#include <array.au3>

#include <file.au3>

Global $oXZip_UDFGlobal, $sZipPath_UDFGlobal, $oComError_UDFGlobal, $sDllLoc_UDFGlobal, $iRegDelay_UDFGlobal

; ============================================================================

; Turned off COM erroring

; I don't think it's needed if the scripter is not directly interacting with

; the object, plus it causes an error with my choosen exit(_ZipClose) method

; ============================================================================

;$oComError_UDFGlobal = ObjEvent("AutoIt.Error", "__XZip_COM_Error")

;===============================================================================

;

; Description: :Open ZIP file, and load XZip.dll as a service

; Parameter(s): :Archive path, (Opt)XZip.dll path (default to @ScriptDir),

; (opt)Delay between regsrv, and objcreate (default 150 ms)

; Requirement: :XZip.dll, XZip.au3

; Return Value(s): :True/False (error #)

; User CallTip: :_ZipOpen(ArchivePath, XZipDllPath, Delay in MS)

;

;===============================================================================

;

Func _ZipOpen($sNewArchivePath, $sDllPath = '', $iDelay = 200)

If $sDllPath = '' Then $sDllPath = @ScriptDir & '\XZip.dll'

;some error checking

If Not FileExists($sDllPath) Then

SetError(1)

Return False

ElseIf Not IsInt($iDelay) Then

SetError(2)

Return False

EndIf

;set the globals

$sZipPath_UDFGlobal = $sNewArchivePath

$sDllLoc_UDFGlobal = $sDllPath

$iRegDelay_UDFGlobal = $iDelay

__DOSStart('regsvr32 /s "' & $sDllLoc_UDFGlobal & '"')

Sleep($iRegDelay_UDFGlobal);needs a sec when loaded silent.

$oXZip_UDFGlobal = ObjCreate('XStandard.Zip')

If IsObj($oXZip_UDFGlobal) Then;make sure it's opened

Return True

Else

SetError(3)

Return False

EndIf

EndFunc ;==>_ZipOpen

;===============================================================================

;

; Description: :List items in given Zip file

; Parameter(s): :None (see _ZipOpen)

; Requirement: :XZip.dll, XZip.au3

; Return Value(s): :Array contaning archive contents

; User CallTip: :_ZipContents()

;

;===============================================================================

;

Func _ZipContents();this func needs some more work

Local $oItem

Local $aRet[1]

If Not IsObj($oXZip_UDFGlobal) Then

SetError(1)

Return False

EndIf

For $oItem In $oXZip_UDFGlobal.Contents ($sZipPath_UDFGlobal)

_ArrayAdd($aRet, $oItem.Path & $oItem.Name)

Next

$aRet[0] = UBound($aRet)

Return $aRet

EndFunc ;==>_ZipContents

;===============================================================================

;

; Description: :Add items to opened Zip file

; Parameter(s): :Array contaning item paths, (opt)Retain dir structure

; Requirement: :XZip.dll, XZip.au3

; Return Value(s): :True/False (error #)

; User CallTip: :_ZipPack(array of item paths, Bool)

;

;===============================================================================

;

Func _ZipPackGroup(ByRef $aItems, $bKeepPath = True);this func needs some more work

If Not IsObj($oXZip_UDFGlobal) Then

SetError(1)

Return False

EndIf

Local $x

For $x = 0 To UBound($aItems) - 1

If Not FileExists($aItems[$x]) Then

SetError(2)

SetExtended($aItems[$x])

Return False

EndIf

$oXZip_UDFGlobal.Pack ($aItems[$x], $sZipPath_UDFGlobal, $bKeepPath)

Next

Return True

EndFunc ;==>_ZipPackGroup

;;===============================================================================

;

; Description: :Add all items in a dir to opened Zip file

; Parameter(s): :String dir path

; Requirement: :XZip.dll, XZip.au3

; Return Value(s): :True/False (error #)

; User CallTip: :_ZipPackDir(DirPath)

;

;===============================================================================

;

Func _ZipPackDir($sDirPath);this is the one that I needed, so it works well

Local $aFiles, $x, $i, $aDirs[1], $sStartDir, $sWorkingDir, $sNewDirPath, $iInsert, $sDirInZip

If Not IsObj($oXZip_UDFGlobal) Then

SetError(1)

Return False

ElseIf Not StringInStr(FileGetAttrib($sDirPath), 'D') Then

SetError(2)

Return False

EndIf

$sStartDir = $sDirPath

$aDirs[0] = $sDirPath

$i = 0

; ===========================================================

; This loop might have some unneeded code, because it took a

; lot of trys to get it right. Also some error more checking,

; optimization and clean couldn't hurt. But it works!:)

; ===========================================================

Do

$sWorkingDir = $aDirs[$i] & '\'

$aFiles = _FileListToArray ($aDirs[$i])

For $x = 1 To UBound($aFiles) - 1

If StringInStr(FileGetAttrib($aFiles[$x]), 'D') Then

$sNewDirPath = $sDirPath & '\' & $aFiles[$x]

$iInsert = $i + 1

_ArrayInsert($aDirs, $iInsert, $sNewDirPath)

Else

$sDirInZip = StringReplace($sWorkingDir, $sDirPath, '')

$oXZip_UDFGlobal.Pack ($sWorkingDir & $aFiles[$x], $sZipPath_UDFGlobal, 1, $sDirInZip)

EndIf

Next

$i = $i + 1

$aFiles = ''

Until UBound($aDirs) = $i

Return True

EndFunc ;==>_ZipPackDir

;===============================================================================

;

; Description: :Unpack a zip file

; Parameter(s): :String: Path to extract Zip file to

; Requirement: :XZip.dll, XZip.au3

; Return Value(s): :True/False (error #)

; User CallTip: :_ZipUnpack(ExtractPath)

;

;===============================================================================

;

Func _ZipUnpack($sDestPath)

If Not IsObj($oXZip_UDFGlobal) Then

SetError(1)

Return False

EndIf

If Not FileExists($sDestPath) Then DirCreate($sDestPath)

$oXZip_UDFGlobal.UnPack ($sZipPath_UDFGlobal, $sDestPath)

Return True

EndFunc ;==>_ZipUnpack

;===============================================================================

;

; Description: :Close ZIP file, and unload XZip.dll as a service

; Parameter(s): :None, based on _ZipOpen globals

; Requirement: :XZip.dll, XZip.au3

; Return Value(s): :True/False (error #)

; User CallTip: :_ZipClose(XZipDllPath, Delay in MS)

;

;===============================================================================

;

Func _ZipClose()

;some error checking

If Not FileExists($sDllLoc_UDFGlobal) Then

SetError(1)

Return False

EndIf

__DOSStart('regsvr32 /s /u "' & $sDllLoc_UDFGlobal & '"')

Sleep($iRegDelay_UDFGlobal);needs a sec when unloaded silently.

; =====================================================

; This way of checking will cause a COM error

; but I like to confirm that the object's been closed

; =====================================================

$oXZip_UDFGlobal = ObjCreate('XStandard.Zip')

If Not IsObj($oXZip_UDFGlobal) Then;make sure it's closed

;reset globals, for next call

$sZipPath_UDFGlobal = ''

$sDllLoc_UDFGlobal = ''

$iRegDelay_UDFGlobal = 0

$oXZip_UDFGlobal = ''

Return True

Else

SetError(2)

Return False

EndIf

EndFunc ;==>_ZipClose

;helper functions

Func __XZip_COM_Error()

Local $hNumber = Hex($oComError_UDFGlobal.number, 8)

;blantly stolen from SvenP (We'll call it a 'port')

MsgBox(0, 'XZip Com Error', 'There was COM Error!' & @CRLF & @CRLF & _

'description is: ' & @TAB & $oComError_UDFGlobal.description & @CRLF & _

'windescription:' & @TAB & $oComError_UDFGlobal.windescription & @CRLF & _

'number is: ' & @TAB & $hNumber & @CRLF & _

'lastdllerror is: ' & @TAB & $oComError_UDFGlobal.lastdllerror & @CRLF & _

'scriptline is: ' & @TAB & $oComError_UDFGlobal.scriptline & @CRLF & _

'source is: ' & @TAB & $oComError_UDFGlobal.source & @CRLF & _

'helpfile is: ' & @TAB & $oComError_UDFGlobal.helpfile & @CRLF & _

'helpcontext is: ' & @TAB & $oComError_UDFGlobal.helpcontext _

)

SetError(1)

EndFunc ;==>__XZip_COM_Error

Func __DOSStart($sStart)

Run(@ComSpec & ' /c start ' & $sStart, '', @SW_HIDE)

EndFunc ;==>__DOSStart

#cs UserCalltips

_ZipOpen($sNewArchivePath, $sDllPath = '', $iDelay = 150)

_ZipContents()

_ZipPackGroup(ByRef $aItems, $bKeepPath = True);this func needs some more work

_ZipPackDir(DirPath)

_ZipUnpack($sDestPath)

_ZipClose($sDllPath = '', $iDelay = 150)

#ce

Enjoy... told you alot of code....


[sup]Psibernetic[/sup]My Creations:X-HideSecuracy

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  
Followers 0