Propriedades
Posted: 06 Jul 2023, 12:26
Propriedades é um programa para ver algumas propriedades de arquivos e pastas do Windows.
Code: Select all
/*
Propriedades de arquivos e pastas
Copyright 2023 Benedito Carneiro
*/
#NoEnv
#SingleInstance, Force
SendMode, Input
SetBatchLines, -1
SetWorkingDir, %A_ScriptDir%
bc := Chr(0169) " 2023 Benedito Carneiro"
Gui, default
Gui, Font, s13 cWhite, Segoe UI
Gui, Color,003366
Gui, Add, Text,, Propriedades de arquivos e pastas
Gui, Add, Button, h30 gArquivo, Escolher o arquivo
Gui, Add, Button, h30 w158 gPasta, Escolher a pasta
Gui, Add, Text,,
Gui, Add, Button, h30 w80 gSair, Sair
Gui, Add, Text,, %bc%
Gui, Show,,Propriedades
Return
Arquivo:
FileSelectFile, arquivo,,, Selecione o arquivo
if ErrorLevel
Return
FileGetTime, modificado, %arquivo%, M
FormatTime, modificado, %modificado%, dd/MM/yyyy HH:mm
FileGetTime, criado, %arquivo%, C
FormatTime, criado, %criado%, dd/MM/yyyy HH:mm
FileGetTime, acessado, %arquivo%, A
FormatTime, acessado, %acessado%, dd/MM/yyyy HH:mm
FileGetSize, kbytes, %arquivo%, K
kbytes := ThousandsSep(kbytes)
bytes := TamanhoArquivo(arquivo)
bytes := ThousandsSep(bytes)
atributo := StringAtributos(arquivo)
saida := "Propriedades do arquivo:`n" . arquivo . "`n`n"
saida := saida . "1. Criado em: " . criado . "`n`n"
saida := saida . "2. Modificado em: " . modificado . "`n`n"
saida := saida . "3. Acessado em: " . acessado . "`n`n"
saida := saida . "4. Tamanho: " . bytes . " bytes, " . kbytes . " kB`n`n"
saida := saida . "5. Atributos: " . atributo
Resizable_GUI(saida,,330)
Return
Pasta:
FileSelectFolder, arquivo,,, Selecione a pasta
if ErrorLevel
Return
FileGetTime, modificado, %arquivo%, M
FormatTime, modificado, %modificado%, dd/MM/yyyy HH:mm
FileGetTime, criado, %arquivo%, C
FormatTime, criado, %criado%, dd/MM/yyyy HH:mm
FileGetTime, acessado, %arquivo%, A
FormatTime, acessado, %acessado%, dd/MM/yyyy HH:mm
atributo := StringAtributos(arquivo)
bytes := TamanhoPasta(arquivo)
kbytes := bytes / 1024
bytes := ThousandsSep(bytes)
kbytes := ThousandsSep(kbytes)
saida := "Propriedades da pasta:`n" . arquivo . "`n`n"
saida := saida . "1. Criada em: " . criado . "`n`n"
saida := saida . "2. Modificada em: " . modificado . "`n`n"
saida := saida . "3. Acessada em: " . acessado . "`n`n"
saida := saida . "4. Tamanho: " . bytes . " bytes, " . kbytes . " kB`n`n"
saida := saida . "5. Atributos: " . atributo
Resizable_GUI(saida,,330)
Return
ThousandsSep(x, s=".") {
x := RegExReplace(x,"(?<=\.\d{" 1 "}).*$") ; arredonda para um decimal
x := RegExReplace(x, "\.", ",") ; troca o ponto por vírgula nos decimais
x := RegExReplace(x, "\G\d+?(?=(\d{3})+(?:\D|$))", "$0" s) ; separa o número em milhares com ponto
return x
}
LimpaFimString(x){
return RegExReplace(x, ", $", "")
}
TamanhoArquivo(nome){
return ComObjCreate("Scripting.FileSystemObject").GetFile(nome).Size
}
TamanhoPasta(nome){
Try {
tamanho := ComObjCreate("Scripting.FileSystemObject").GetFolder(nome).Size
} Catch {
tamanho := 0
}
return tamanho
}
StringAtributos(arquivo){
FileGetAttrib, atributos, %arquivo%
atributo := ""
atributo := InStr(atributos, "C") ? (atributo . "Comprimido, ") : atributo
atributo := InStr(atributos, "D") ? (atributo . "Diretório, ") : atributo
atributo := InStr(atributos, "E") ? (atributo . "Encriptado, ") : atributo
atributo := InStr(atributos, "I") ? (atributo . "Indexado, ") : atributo
atributo := InStr(atributos, "A") ? (atributo . "Ler e gravar, ") : atributo
atributo := InStr(atributos, "H") ? (atributo . "Oculto, ") : atributo
atributo := InStr(atributos, "S") ? (atributo . "Sistema, ") : atributo
atributo := InStr(atributos, "R") ? (atributo . "Somente ler, ") : atributo
atributo := LimpaFimString(atributo)
return atributo
}
Resizable_GUI(saida,x=800,y=600){
static EditWindow
Gui,12:Destroy
Gui,12:Default
Gui,12:+Resize
Gui,12:Font,s13 cBlack q5, Segoe UI
Gui,12:Color,003366
Gui,12:Add,Edit,w%x% h%y% -Wrap HScroll hwndEditWindow, %saida%
Gui,12:Show
SendInput, ^{Home}
Return
12GuiEscape:
12GuiClose:
Gui,12:Destroy
Return
12GuiSize:
GuiControl,12:Move,%EditWindow%,% "w" A_GuiWidth-30 "h" A_GuiHeight-25
Return
}
GuiEscape:
GuiClose:
Sair:
Gui,destroy
ExitApp