elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: 1 ... 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 [767] 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 ... 1236
7661  Foros Generales / Dudas Generales / Re: carpetas misteriosas. en: 29 Diciembre 2013, 03:25 am
! Ahi qe ber qe pronto se hagarran a los fáyos hórtograficos, cuomo si ustèdes escriviesen un perdfecto díalekto ¡

Yo no lo veo motivo de burla por muy garrafal que sea el fallo (como es el caso), pero ...sí, vaya, ¡ vaya un personaje merecedor de una insignia Troll !.

Saludos!
7662  Programación / .NET (C#, VB.NET, ASP) / Re: Como podría combinar el contenido de dos lixtbox en un tercero en: 29 Diciembre 2013, 02:32 am
Al final voy a acabar odiando los Listbox :silbar:

¿Que has intentado?

No entiendo muy bien lo que pretendes hacer (eso de combinar, pero no sumar ni adicionar?), te muestro la manera de concatenar dos listas de items en un tercer Listbox, añadiendo un "separador" entre cada lista (que si no me equivoco, ya las tienes agrupadas de 4 en 4).

Código
  1.        Dim Items1 As List(Of String) = ListBox1.Items.Cast(Of String)().ToList
  2.        Items1.Add("  ")
  3.  
  4.        Dim Items2 As List(Of String) = ListBox2.Items.Cast(Of String)().ToList
  5.        Items2.Add("  ")
  6.  
  7.        Dim CombinedItems As List(Of String) = Items1.Concat(Items2).ToList
  8.  
  9.        ListBox3.Items.AddRange(CombinedItems.ToArray)

Saludos
7663  Programación / .NET (C#, VB.NET, ASP) / Re: Interceptar borrado de archivo en: 29 Diciembre 2013, 01:34 am
No se si te das cuenta de la cantidad de conocimientos que se requieren para llevar a cabo esta tarea, además de la experiencia en intentos fallidos, si ...porque hookear APIS es lo que tiene, que por alguna chorrada insignificante un hook puede ir perféctamente en Windows XP, pero no funcionar en otra versión de Windows, y lo mismo con las arquitecturas, además entre las diferentes versiones de windows pueden modificar los parámetros de "X" funciones. Fíjate si es dificil que resulta necesario utilizar librerías de terceros para realizar estos hooks de forma decente los cuales ya se encargan de inyectar y etc...

Este campo no lo he tocado prácticamente nada, no vayas a pensar que soy un experto en el tema, los únicos hooks que he realizado han sido de bajo nivel con las funciones que la WinAPI proporciona para instalar los hooks, pero a lo que voy ...implementar ICopyHook sería una manera más limpia (y estable) sin necesidad de Hookear, y te permitiria tener control sobre los archivos eliminados desde el Explorer, pero sigue siendo una pesadilla llevarlo a cabo.

Ahora bien, hay otra alternativa mucho más facil que se me ha ocurrido, sirviéndote del FileSystemWatcher. No pongo la mano en el fuego de haberlo dejado 100% efectivo, deberías testear en profundidad lo que sucede cuando eliminas dos archivos/carpetas con el mismo nombre pero con distinta fecha de modificación para comprobar si se restaura la que se debe restaurar, yo solo te dejo la idea:

EDITO: Para proceder a usar el siguiente código necesitas referenciar Microsoft Shell Controls And Automation.
EDITO2: Le añadí un par de cosas más, y también lo documenté un poco mejor...
Código
  1. Imports System.IO
  2. Imports Shell32
  3.  
  4. Public Class Test
  5.  
  6.    Private SH As New Shell
  7.    Private RecycleBin As Folder = SH.NameSpace(ShellSpecialFolderConstants.ssfBITBUCKET)
  8.    Private WithEvents FSW As New FileSystemWatcher
  9.  
  10.    Private Shadows Sub Load() _
  11.    Handles MyBase.Load
  12.  
  13.        ' Seteo las propiedades del objeto 'FileSystemWatcher'.
  14.        With FSW
  15.            .Path = "C:\Test"
  16.            .IncludeSubdirectories = True
  17.            .Filter = "*"
  18.            .NotifyFilter = NotifyFilters.FileName Or NotifyFilters.DirectoryName
  19.            .EnableRaisingEvents = True
  20.        End With
  21.  
  22.    End Sub
  23.  
  24.    Private Sub OnItemDeleted(sender As FileSystemWatcher, e As FileSystemEventArgs) _
  25.    Handles FSW.Deleted
  26.  
  27.        ' Almacenamos una colección de los items de la papelera de reciclaje.
  28.        ' Tanto archivos, carpetas, y accesos directos .lnk (que no se tratan como archivos ni carpetas),
  29.        ' cuyo nombre sea el mismo nombre que el elemento que se acaba de eliminar.
  30.        ' Y los ordenamos por su fecha de modificación.
  31.        Dim DeletedItems As IEnumerable(Of FolderItem) =
  32.            RecycleBin.Items.Cast(Of FolderItem).
  33.                             Where(Function(Item) Item.Name = e.Name).
  34.                             OrderBy(Function(Item) Item.ModifyDate)
  35.  
  36.        ' Si hubiera más de un elemento con el mismo nombre,
  37.        ' seleccionamos el último elemento que se eliminó (o al menos, eso se supone que debería suceder.)
  38.        Dim LastDeletedItem As Shell32.FolderItem = DeletedItems.LastOrDefault
  39.  
  40.        If LastDeletedItem IsNot Nothing Then
  41.  
  42.            ' Esto es un simple checkeo por prevención,
  43.            ' considero que solo hay un 0,00001% de posibilidades de que se de la condición...
  44.            ' Esto podría deberse a que el usuario haya desecho manuálmente la acción de borrado (CTRL+Z),
  45.            ' en un tiempo menor del que la aplicación ha procesado los elementos de la papelera.
  46.            '
  47.            ' También está el caso de las incontrolables acciones de terceros,
  48.            ' Como por ejemplo el editor de texto 'Sublime Text', que al modificar un archivo,
  49.            ' lo elimina dando un falso positivo.
  50.            If (LastDeletedItem.IsFolder AndAlso Directory.Exists(e.FullPath)) _
  51.               OrElse (Not LastDeletedItem.IsFolder AndAlso File.Exists(e.FullPath)) Then
  52.  
  53.                Throw New Exception(String.Format("¿ El elemento ha sido restaurado ?: {0}", e.FullPath))
  54.                Exit Sub
  55.  
  56.            End If
  57.  
  58.            ' Invocamos el verbo "undelete" para deshacer la acción de borrado sin necesidad de escribir más isntrucciones.
  59.            ' Otros verbos que se pueden usar por ejemplo "delete" para eliminar el elemento de forma permanente,
  60.            ' u "open" para abrir las propiedades del elemento.
  61.            LastDeletedItem.InvokeVerb("undelete")
  62.  
  63.            ' O bien hacemos otra cosa distinta, como por ejemplo un backup del archivo/directorio eliminado...
  64.            '
  65.            'Dim BackupPath = String.Format("C:\Backup\{0}", e.Name)
  66.            '
  67.            'Select Case LastDeletedItem.IsFolder
  68.            '
  69.            '    Case True
  70.            '        FileIO.FileSystem.CopyDirectory(LastDeletedItem.Path, BackupPath,
  71.            '                                        FileIO.UIOption.AllDialogs, FileIO.UICancelOption.ThrowException)
  72.            '
  73.            '    Case False
  74.            '        FileIO.FileSystem.CopyFile(LastDeletedItem.Path, BackupPath,
  75.            '                                   FileIO.UIOption.AllDialogs, FileIO.UICancelOption.ThrowException)
  76.            '
  77.            'End Select
  78.  
  79.        End If
  80.  
  81.    End Sub
  82.  
  83. End Class

Saludos
7664  Foros Generales / Dudas Generales / Re: carpetas misteriosas. en: 28 Diciembre 2013, 19:19 pm
En fín...
7665  Programación / .NET (C#, VB.NET, ASP) / Re: Interceptar borrado de archivo en: 28 Diciembre 2013, 19:12 pm
user32.dll ... deletefile ...

Esa es precísamente una de las funciones que nombré: http://msdn.microsoft.com/en-us/library/windows/desktop/aa363915%28v=vs.85%29.aspx

Iguálmente deberías hookear esa función para interceptar cuando el SO llama a la función, pero ya puestos mejor prueba con NtSetFileInformation (se encuentra en la ntdll.dll) porque según he leido es la función por la que pasa cualquier método de eliminación (y otros), aunque está indocumentada así que mucha información no tengo, pero DeleteFile ahora que lo leo la documentación es posible que no tenga nada que ver con tu propósito puesto que no tiene parámetros para enviar a la papelera, es una función que debe estar limitada a la Shell (supongo).

Saludos
7666  Programación / Scripting / Re: programita para crear un acceso directo (.bat con vbs) en: 28 Diciembre 2013, 15:30 pm
Veo que al final te serviste de VBS como te indiqué, aquí tienes una pequeña simplificación del código por si quieres:

Código
  1. @ECHO OFF
  2.  
  3. For /F "Tokens=1-2 Delims=." %%X In (
  4. 'wmic.exe os get version ^| FINDSTR "[0-9]"'
  5. ) Do (
  6.  
  7. If %%X%%Y EQU 51 (
  8. REM XP
  9. set "COCO=%UserProfile%\Escritorio"
  10. ) Else (
  11. REM Vista, 7, 8
  12. set "COCO=%UserProfile%\Desktop"
  13. )
  14. )
  15.  
  16. (
  17. Echo Set Link = WScript.CreateObject^("WScript.Shell"^).CreateShortcut^("%COCO%\Compensacion Bicentenario.lnk"^)
  18. Echo With Link
  19. Echo .TargetPath = "%PROGRAMFILES%\CompensacionBicentenario\1.5\BacosiRegional.jar"
  20. Echo .WindowStyle = 1
  21. Echo .IconLocation = "%PROGRAMFILES%\carpeta\1.5\BacosiRegional.jar"
  22. Echo .WorkingDirectory = "%PROGRAMFILES%\CompensacionBicentenario\1.5\"
  23. Echo .Save
  24. Echo End With
  25. ) > "%TEMP%\ad.vbs"
  26.  
  27. Wscript.exe "%TEMP%\ad.vbs"
  28.  
  29. Exit /B 0

Saludos
7667  Programación / .NET (C#, VB.NET, ASP) / Re: Interceptar borrado de archivo en: 28 Diciembre 2013, 14:26 pm
No es nada facil, debes crear o bien un Hook Global (API Hook), o bien un driver (File System Filter Driver).

La función (indocumentada) NtSetFileInformation de la WinAPI es llamada para eliminar un archivo, con la estructura FileDispositionInformation ,
aunque también debes mirar la función DeleteFile, y no se si habrá otras, y luego está el uso de la interface ICopyHook que exclusívamente previene de la eliminación mediante la Shell.

Para intentar hookear la API puedes utilizar la librería Deviare, o EasyHook, mhook (c++), u otras. Hay varios ejemplos en Google tanto para VBNET como C#, aunque parece que todas las librerías tienen sus desventajas y bugs.

EDITO: En este ejemplo puedes hacerte una idea del modo de empleo de Easyhook junto a lo necesario para hookear dicha functión NtSetFileInformation.

Saludos.
7668  Foros Generales / Dudas Generales / Re: carpetas misteriosas. en: 27 Diciembre 2013, 19:59 pm
Probablemente estes infectado con algun virus, pasale el antivirus y el antispyware a tu pc.

estoy resfriado. Lo he contado en forocoches.

Y a nosotros que coño nos importa si lo has contado en forocoches.??

tengo una invi...

Siempre intentando que te proporcionen ayuda con una indirecta sobre una (supuesta) invitación a forocoches, de verdad que eres muy cansino...

Como ya te han comentado, no nos importa en absoluto, es más, a mi me resulta patético, es como el que se registra con nombre de mujer para que le ayuden.

Saludos!
7669  Programación / Scripting / Re: Problemas con Comando IF en: 27 Diciembre 2013, 19:45 pm
Esta linea:
Citar
Código
  1. If not defined var (goto:menu)

La reemplazas por esta otra:
Código
  1. If Not Defined VAR (Goto :MENU) ELSE (Goto :%VAR%)

Y eliminas todo esto:
Citar
Código
  1. IF "%var%" = "%PECOMEXT%" GOTO:PECOMEXT
  2. IF "%var%" = "%PEGARANT%" GOTO:PEGARANT
  3. IF "%var%" = "%PEIMPORT%" GOTO:PEIMPORT
  4. IF "%var%" = "%PEOPINTE%" GOTO:PEOPINTE
  5. IF "%var%" = "%PETESORI%" GOTO:PETESORI
  6. IF "%var%" = "%PETRANXT%" GOTO:PETRANXT
  7. IF "%var%" = "%PEVALORE%" GOTO:PEVALORE
  8. IF "%var%" = "%PECOMUNIC%" GOTO:PECOMUNIC

Si quieres simplificar más el código, puedes utilizar Call en lugar de Goto, y elimina todos los Pause/Exit, son innecesarios.

Saludos
7670  Programación / Scripting / Re: Batch que copie todas las lineas menos la ultima en: 27 Diciembre 2013, 19:37 pm
¿A que lineas duplicadas te refieres?.

El comando REN / RENAME sirve para renombrar un archivo, no para eliminarlo.
El comando ECHO sirve para imprimir un eco en la salida de la CMD, no para eliminar un archivo.

Debes usar el comando DEL para eliminar un archivo.

Si intentas eliminar un script que se está procesando sin dejar que se procesen todas las instrucciones de ese script ...no se procesarán las demás instrucciones porque no existirá el archivo que las contenga.

Creo que lo que intentas hacer sería esto...:

Código
  1. @Echo OFF
  2.  
  3. (
  4.  
  5. If Exist "%~1" (Echo Call :mover "%%~1")
  6. If Exist "%~2" (Echo Call :mover "%%~2")
  7. If Exist "%~3" (Echo Call :mover "%%~3")
  8. If Exist "%~4" (Echo Call :mover "%%~4")
  9. If Exist "%~5" (Echo Call :mover "%%~5")
  10. Echo Del /Q "%%~f0"
  11.  
  12. ) > "%TEMP%\0_ejecutar.bat"
  13.  
  14. Pause&Exit

Saludos
Páginas: 1 ... 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 [767] 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines