|
9771
|
Programación / .NET (C#, VB.NET, ASP) / Re: [APORTE] Snippets !! (Posteen aquí sus snippets)
|
en: 15 Enero 2013, 07:33 am
|
He añadido, ordenado, y mejorado bastantes snippets del pack de snippets, el nuevo enlace está en el comentario principal. Función para eliminar atributos de un archivo, preservando el resto de atributos. #Region " File Remove Attribute Function " ' [ File Remove Attribute Function ] ' ' Examples : ' ' MsgBox(File_Remove_Attribute("C:\Test.txt", FileAttribute.ReadOnly)) ' MsgBox(File_Remove_Attribute("C:\Test.txt", FileAttribute.ReadOnly + FileAttribute.Hidden)) Public Function File_Remove_Attribute (ByVal File As String, ByVal Remove_Attribute As FileAttribute ) As Boolean Try Dim FileAttributes As FileAttribute = IO. File. GetAttributes(File) IO. File. SetAttributes(File, FileAttributes And Not Remove_Attribute ) Return True Catch ex As Exception Return False End Try End Function #End Region
Función para añadir atributos a un archivo, preservando el resto de atributos. #Region " File Add Attribute Function " ' [ File Add Attribute Function ] ' ' Examples : ' ' MsgBox(File_Add_Attribute("C:\Test.txt", FileAttribute.ReadOnly)) ' MsgBox(File_Add_Attribute("C:\Test.txt", FileAttribute.ReadOnly + FileAttribute.Hidden)) Public Function File_Add_Attribute (ByVal File As String, ByVal Add_Attribute As FileAttribute ) As Boolean Try Dim FileAttributes As FileAttribute = IO. File. GetAttributes(File) IO. File. SetAttributes(File, FileAttributes Or Add_Attribute ) Return True Catch ex As Exception Return False End Try End Function #End Region
Función que comprueba si un archivo tiene un atributo #Region " File Have Attribute Function " ' [ File Have Attribute Function ] ' ' Examples : ' ' MsgBox(File_Have_Attribute("C:\Test.txt", FileAttribute.ReadOnly)) ' MsgBox(File_Have_Attribute("C:\Test.txt", FileAttribute.ReadOnly + FileAttribute.Hidden)) Public Function File_Have_Attribute (ByVal File As String, ByVal CheckAttribute As FileAttribute ) As Boolean Try Dim FileAttributes As FileAttribute = IO. File. GetAttributes(File) If (FileAttributes And CheckAttribute) = CheckAttribute Then Return True Else Return False Catch ex As Exception Return Nothing End Try End Function #End Region
|
|
|
9772
|
Programación / .NET (C#, VB.NET, ASP) / Re: [APORTE] Snippets !! (Posteen aquí sus snippets)
|
en: 15 Enero 2013, 07:11 am
|
Crea un acceso directo a una aplicación o a una página web, con muchas opciones. #Region " Create ShortCut Function " ' [ Create ShortCut Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' Create_ShortCut(ShortcutPath.MyDocuments, "My APP Shortcut.lnk", "C:\File.exe") ' Create_ShortCut(ShortcutPath.Desktop, "My CMD Shortcut.lnk", "CMD.exe", "/C Echo Hello World & Pause") ' Create_ShortCut(ShortcutPath.Favorites, "My INTERNET Shortcut.lnk", "http://www.Google.com", , "CTRL+SHIFT+S") ' Create_ShortCut(ShortcutPath.Favorites, "My INTERNET Shortcut.lnk", "http://www.Google.com", , "CTRL+SHIFT+S", "Description of the shortcut") Enum ShortcutPath AppData = Environment.SpecialFolder.ApplicationData Desktop = Environment.SpecialFolder.Desktop Favorites = Environment.SpecialFolder.Favorites LocalAppData = Environment.SpecialFolder.LocalApplicationData MyDocuments = Environment.SpecialFolder.MyDocuments ProgramFiles = Environment.SpecialFolder.ProgramFiles ProgramFilesx86 = Environment.SpecialFolder.ProgramFilesX86 StartMenu = Environment.SpecialFolder.StartMenu System32 = Environment.SpecialFolder.System SysWOW64 = Environment.SpecialFolder.SystemX86 UserProfile = Environment.SpecialFolder.UserProfile Windows = Environment.SpecialFolder.Windows End Enum Function Create_ShortCut(ByVal Shortcut_Path As ShortcutPath, _ ByVal Shortcut_Name As String, _ ByVal APP As String, _ Optional ByVal APP_Arguments As String = Nothing, _ Optional ByVal HotKey As String = Nothing, _ Optional ByVal Icon As String = Nothing, _ Optional ByVal Description As String = Nothing) As Boolean Dim Dir = New IO.DirectoryInfo(System.Environment.GetFolderPath(Shortcut_Path)) Dim WorkingDir As IO.FileInfo If Not APP.Contains("/") Then WorkingDir = New IO.FileInfo(APP) Else WorkingDir = Nothing Try Dim WSHShell As Object = CreateObject("WScript.Shell") Dim Shortcut As Object Shortcut = WSHShell.CreateShortcut(Dir.FullName & "\" & Shortcut_Name) Shortcut.TargetPath = APP Shortcut.Arguments = APP_Arguments Shortcut.WindowStyle = 2 Shortcut.Hotkey = HotKey Shortcut.Description = Description If Not APP.Contains("/") Then Shortcut.WorkingDirectory = WorkingDir.DirectoryName If Icon IsNot Nothing Then Shortcut.IconLocation = Icon Else Shortcut.IconLocation = APP Shortcut.Save() Return True Catch ex As Exception Return False End Try End Function #End Region
|
|
|
9773
|
Programación / Scripting / Re: Programa que simula la presión de teclas
|
en: 15 Enero 2013, 05:52 am
|
Batch es .bat, ¿verdad? Sí. Como te digo en Batch no es posible enviar pulsaciones del teclado, a menos que mezcles VBS con Batch o uses aplicaciones externas (Lo cual significa compilar o unirlo de alguna manera por ejemplo con WinRAR), Así que te puse el código en VisualBasicScript para no hacer un engorro de código usando Batch. no sabría como generar el programa usando su código en VBS. De todos modos, muchas gracias. Sigue las instrucciones de SegadorFelix, tán fácil como ponerle la extensión VBS al script. PD: Y luego puedes ejecutar el VBS desde batch la CMD con el intérprete adecuado: WScript.exe "Archivo.vbs" Saludos
|
|
|
9775
|
Programación / .NET (C#, VB.NET, ASP) / Re: [APORTE] Snippets !! (Posteen aquí sus snippets)
|
en: 15 Enero 2013, 05:05 am
|
Make Dir, para crear directorios con opción de añadir atributos. #Region " Make Dir Function " ' [ Make Dir Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(MakeDir("C:\Test")) Private Function Make_Dir(ByVal Path As String, Optional ByVal Attributes As System.IO.FileAttributes = IO.FileAttributes.Normal) If My.Computer.FileSystem.DirectoryExists(Path) Then Return Nothing ' Directory already exists Try My.Computer.FileSystem.CreateDirectory(Path) ' Create directory If Not Attributes = IO.FileAttributes.Normal Then My.Computer.FileSystem.GetDirectoryInfo(Path).Attributes = Attributes ' Apply Folder Attributes Return True ' Directory is created OK Catch ex As Exception Return False ' Can't create the directory maybe because user permissions ' Return ex.Message End Try End Function #End Region
Copy File , para copiar archivos, con opción de crear el directorio si no existe, opción de reemplazar archivos, y opcion de aplicar atributos al archivo. #Region " Copy File Function " ' [ Copy File Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(Copy_File("C:\File.txt", "C:\Test\")) ' Standard copy ' MsgBox(Copy_File("C:\File.txt", "C:\Test\", True)) ' Create the directory if doesn't exists ' MsgBox(Copy_File("C:\File.txt", "C:\Test\", , True)) ' Replace any existing file ' MsgBox(Copy_File("C:\File.txt", "C:\Test\", , , IO.FileAttributes.Hidden + IO.FileAttributes.ReadOnly)) ' Apply new attributes Private Function Copy_File (ByVal File As String, ByVal Target_Path As String, _ Optional ByVal Force_Target_Path As Boolean = False, Optional ByVal Force_File_Replace As Boolean = False, _ Optional ByVal Attributes As System.IO.FileAttributes = IO.FileAttributes.Normal) Dim File_Information = My. Computer. FileSystem. GetFileInfo(File) ' Get Input File Information ' Directory If Not Force_Target_Path And Not My.Computer.FileSystem.DirectoryExists(Target_Path) Then Return False ' Target Directory don't exists ElseIf Force_Target_Path Then Try My.Computer.FileSystem.CreateDirectory(Target_Path) ' Create directory Catch ex As Exception 'Return False Return ex.Message ' Directory can't be created maybe beacuse user permissions End Try End If ' File Try My. Computer. FileSystem. CopyFile(File, Target_Path & "\" & File_Information. Name, Force_File_Replace ) ' Copies the file If Not Attributes = IO.FileAttributes.Normal Then My.Computer.FileSystem.GetFileInfo(Target_Path & "\" & File_Information.Name).Attributes = Attributes ' Apply File Attributes Return True ' File is copied OK Catch ex As Exception 'Return False Return ex.Message ' File can't be created maybe beacuse user permissions End Try End Function #End Region
|
|
|
9776
|
Programación / Scripting / Re: menu bath cambiar codigo
|
en: 15 Enero 2013, 03:48 am
|
Aquí tienes un menú, y sin usar SETLOCAL. :: By Elektro H@cker Set "DefaultExt=bat doc cmd exe txt" :MENU CLS SET /A Count+=1 & REM Sumo un valor en el contador Call SET "EXT %%COUNT%%=%%@" & REM Creo la variable dinámica que contendrá cada extensión Call <Nul SET /P =[ %%COUNT%%] %%@ & REM Muestro las extensiones REM Si quieres la lista en horizontal en lugar de vertical elimina la línea del echo ) Choice /C AEN /m "[A]Agregar, [E] Eliminar, [N] Nada" :Agregar CLS Echo: [ Agregar extension ] | MORE SET /p "ADDEXT= AGREGA UNA EXTENSION >> " SET "ADDEXT= %ADDEXT:.=%" & REM Elimino cualquier punto SET "ADDEXT= %ADDEXT: =%" & REM Elimino cualquier espacio SET "DefaultExt= %DefaultExt% %ADDEXT%" & REM Añado la nueva extensión a la lista de extensiones :Eliminar CLS Echo: [ Eliminar extension ] | MORE Set "ChoiceDigits=" & REM Reseteo la variable Call Echo [ %%X] %%EXT%%X%% & REM Muestro las variables que creé en el menú Call Set "ChoiceDigits= %%ChoiceDigits%%%%X" & REM Seteo las opciones del comando CHOICE ) Choice /C %ChoiceDigits%N /M "[N] Ninguna" Call Set "DEL_EXT= %%EXT%ERRORLEVEL %%%" & REM Seteo la extensión elegida call SET "DefaultExt= %%DefaultExt:%DEL_EXT %=%%" & REM Elimino la extensión de la lista call SET "DefaultExt= %%DefaultExt: = %%" & REM Elimino dobles espacios si quedasen. :Copiar CLS Set "DefaultExt= %DefaultExt: = ,*.%" & REM Modifico los espacios de la variable para añadirlo los símbolos necesarios :: FOR /R "%userprofile%\Mis documentos\" %%a IN (*.%DefaultExt%) DO (copy /y "%%a" "E:\datossss\")
Saludos
|
|
|
9779
|
Programación / .NET (C#, VB.NET, ASP) / Re: [APORTE] Snippets !! (Posteen aquí sus snippets)
|
en: 14 Enero 2013, 08:09 am
|
Para convertir un string a lower,upper,wordcase o titlecase, con opción de invertir el string #Region " String To Case Function " ' [ String To Case Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(String_To_Case("ThiS is A TeST", StringCase.Lower)) ' MsgBox(String_To_Case("ThiS is A TeST", StringCase.Upper)) ' MsgBox(String_To_Case("ThiS is A TeST", StringCase.Word)) ' MsgBox(String_To_Case("ThiS is A TeST", StringCase.Title)) ' MsgBox(String_To_Case("ThiS is A TeST", StringCase.Title, True)) Enum StringCase Lower Upper Title Word End Enum Public Function String_To_Case(ByVal Input_String As String, ByVal StringCase As StringCase, Optional ByVal Reverse As Boolean = False) As String If Not Input_String = Nothing And Not Input_String = "" Then Dim Output_String As String = Nothing Select Case StringCase Case StringCase.Lower : Output_String = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToLower(Input_String) Case StringCase.Upper : Output_String = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToUpper(Input_String) Case StringCase.Title : Output_String = Char.ToUpper(Input_String(0)) + StrConv(Input_String.Substring(1), VbStrConv.Lowercase) Case StringCase.Word : Output_String = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(Input_String) End Select If Reverse Then Return Microsoft.VisualBasic.StrReverse(Output_String) Else Return Output_String Else : Return False ' Any string to convert End If End Function #End Region
|
|
|
9780
|
Programación / .NET (C#, VB.NET, ASP) / Re: Cual es la forma más simple de obtener el tamaño de una carpeta?
|
en: 14 Enero 2013, 04:12 am
|
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
Por "rápido" me refiero al performance, sí, a la que gaste menos recursos, menos tiempo, y la que no deba leer todos los archivos para saber el tamaño total (Si es que hubiera alguna que no lo hiciera, que parece que no). Es una m**rda lo que comenta Novlucker porque ya lo he sufrido más de una vez, pero windows si que obtiene el tamaño de las carpetas que contienen archivos sin acceso, entonces alguna forma habrá, ¿No? He reducido el code que me ha enseñado Seba, a esto: ' MsgBox(Get_Directory_Size(New IO.DirectoryInfo("C:\_"), True)) Private Function Get_Directory_Size(Dir_Info As IO.DirectoryInfo, Include_Subfolders As Boolean) As Long Dim Dir_Total_Size As Long = Dir_Info. EnumerateFiles(). Sum(Function(file) file. Length) If Include_Subfolders Then Dir_Total_Size += Dir_Info.EnumerateDirectories().Sum(Function(dir) Get_Directory_Size(dir, True)) Return Dir_Total_Size End Function
El tema es... que no sé usar los identificadores de acceso, ya lo intenté hace unos días... ¿Como hago esto?: Private Function Get_Directory_Size(Directory As IO.DirectoryInfo, Include_Subfolders As Boolean) As Long Dim Dir_Security As System.Security.AccessControl.DirectorySecurity = Directory.GetAccessControl() If Dir_Security = "SIN ACCESO a alguno de los archivos" Then Return Nothing ' bueno aquí tengo un lío de momento, quiero que salte el archivo y siga con el siguiente claro Else Dim Dir_Total_Size As Long = Directory.EnumerateFiles().Sum(Function(file) file.Length) If Include_Subfolders Then Dir_Total_Size += Directory.EnumerateDirectories().Sum(Function(dir) Get_Directory_Size(dir, True)) Return Dir_Total_Size End If End FunctionEDITO: Olviden lo que he dicho, con un TRY y listo
|
|
|
|
|
|
|