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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 ... 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 [562] 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 ... 1236
5611  Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Compartan aquí sus snippets) en: 26 Marzo 2015, 11:35 am
Este snippet sirve para añadir o eliminar de forma muuuuuy sencilla :P un archivo/aplicación al Startup de Windows mediante el registro, con características interesantes...

Modo de empleo:
Código
  1. WinStartupUtil.Add(UserType.CurrentUser, StartupType.Run, KeyBehavior.System32,
  2.                   title:="Application Title",
  3.                   filePath:="C:\Application.exe",
  4.                   arguments:="/Arguments",
  5.                   secureModeByPass:=True)

Código
  1. WinStartupUtil.Remove(UserType.CurrentUser, StartupType.Run, KeyBehavior.System32,
  2.                      title:="Application Title",
  3.                      throwOnMissingValue:=True)


Source:
Código
  1. ' ***********************************************************************
  2. ' Author   : Elektro
  3. ' Modified : 25-March-2015
  4. ' ***********************************************************************
  5. ' <copyright file="WinStartupUtil.vb" company="Elektro Studios">
  6. '     Copyright (c) Elektro Studios. All rights reserved.
  7. ' </copyright>
  8. ' ***********************************************************************
  9.  
  10. #Region " Usage Examples "
  11.  
  12. 'WinStartupUtil.Add(WinStartupUtil.UserType.CurrentUser,
  13. '                   WinStartupUtil.StartupType.Run,
  14. '                   WinStartupUtil.KeyBehavior.System32,
  15. '                   title:="Application Title",
  16. '                   filePath:="C:\Application.exe",
  17. '                   secureModeByPass:=True)
  18.  
  19. 'WinStartupUtil.Remove(WinStartupUtil.UserType.CurrentUser,
  20. '                      WinStartupUtil.StartupType.Run,
  21. '                      WinStartupUtil.KeyBehavior.System32,
  22. '                      title:="Application Title",
  23. '                      throwOnMissingValue:=True)
  24.  
  25. #End Region
  26.  
  27. #Region " Option Statements "
  28.  
  29. Option Explicit On
  30. Option Strict On
  31. Option Infer Off
  32.  
  33. #End Region
  34.  
  35. #Region " Imports "
  36.  
  37. Imports Microsoft.Win32
  38.  
  39. #End Region
  40.  
  41. #Region " WinStartupUtil "
  42.  
  43.  
  44. ''' <summary>
  45. ''' Adds or removes an application to Windows Startup.
  46. ''' </summary>
  47. Public NotInheritable Class WinStartupUtil
  48.  
  49. #Region " Properties "
  50.  
  51.    ''' <summary>
  52.    ''' Gets the 'Run' registry subkey path.
  53.    ''' </summary>
  54.    ''' <value>The 'Run' registry subkey path.</value>
  55.    Public Shared ReadOnly Property RunSubKeyPath As String
  56.        Get
  57.            Return "Software\Microsoft\Windows\CurrentVersion\Run"
  58.        End Get
  59.    End Property
  60.  
  61.    ''' <summary>
  62.    ''' Gets the 'Run' registry subkey path for x86 appications on x64 operating system.
  63.    ''' </summary>
  64.    ''' <value>The 'Run' registry subkey path for x86 appications on x64 operating system.</value>
  65.    Public Shared ReadOnly Property RunSubKeyPathSysWow64 As String
  66.        Get
  67.            Return "Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run"
  68.        End Get
  69.    End Property
  70.  
  71.    ''' <summary>
  72.    ''' Gets the 'RunOnce' registry subkey path.
  73.    ''' </summary>
  74.    ''' <value>The 'RunOnce' registry subkey path.</value>
  75.    Public Shared ReadOnly Property RunOnceSubKeyPath As String
  76.        Get
  77.            Return "Software\Microsoft\Windows\CurrentVersion\RunOnce"
  78.        End Get
  79.    End Property
  80.  
  81.    ''' <summary>
  82.    ''' Gets the 'RunOnce' registry subkey path for x86 appications on x64 operating system.
  83.    ''' </summary>
  84.    ''' <value>The 'RunOnce' registry subkey path for x86 appications on x64 operating system.</value>
  85.    Public Shared ReadOnly Property RunOnceSubKeyPathSysWow64 As String
  86.        Get
  87.            Return "Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce"
  88.        End Get
  89.    End Property
  90.  
  91. #End Region
  92.  
  93. #Region " Enumerations "
  94.  
  95.    ''' <summary>
  96.    ''' Specifies an user type.
  97.    ''' </summary>
  98.    Public Enum UserType As Integer
  99.  
  100.        ''' <summary>
  101.        ''' 'HKEY_CURRENT_USER' root key.
  102.        ''' </summary>
  103.        CurrentUser = &H1
  104.  
  105.        ''' <summary>
  106.        ''' 'HKEY_LOCAL_MACHINE' root key.
  107.        ''' </summary>
  108.        AllUsers = &H2
  109.  
  110.    End Enum
  111.  
  112.    ''' <summary>
  113.    ''' Specifies a Startup type.
  114.    ''' </summary>
  115.    Public Enum StartupType As Integer
  116.  
  117.        ''' <summary>
  118.        ''' 'Run' registry subkey.
  119.        ''' </summary>
  120.        Run = &H1
  121.  
  122.        ''' <summary>
  123.        ''' 'RunOnce' registry subkey.
  124.        ''' </summary>
  125.        RunOnce = &H2
  126.  
  127.    End Enum
  128.  
  129.    ''' <summary>
  130.    ''' Specifies a registry key behavior.
  131.    ''' </summary>
  132.    Public Enum KeyBehavior As Integer
  133.  
  134.        ''' <summary>
  135.        ''' System32 registry subkey.
  136.        ''' </summary>
  137.        System32 = &H1
  138.  
  139.        ''' <summary>
  140.        ''' SysWow64 registry subkey.
  141.        ''' </summary>
  142.        SysWow64 = &H2
  143.  
  144.    End Enum
  145.  
  146. #End Region
  147.  
  148. #Region " Public Methods "
  149.  
  150.    ''' <summary>
  151.    ''' Adds an application to Windows Startup.
  152.    ''' </summary>
  153.    ''' <param name="userType">The type of user.</param>
  154.    ''' <param name="startupType">The type of startup.</param>
  155.    ''' <param name="keyBehavior">The registry key behavior.</param>
  156.    ''' <param name="title">The registry value title.</param>
  157.    ''' <param name="filePath">The application file path.</param>
  158.    ''' <param name="secureModeByPass">
  159.    ''' If set to <c>true</c>, the file is ran even when the user logs into 'Secure Mode' on Windows.
  160.    ''' </param>
  161.    ''' <exception cref="System.ArgumentNullException">title or filePath</exception>
  162.    Public Shared Sub Add(ByVal userType As UserType,
  163.                          ByVal startupType As StartupType,
  164.                          ByVal keyBehavior As KeyBehavior,
  165.                          ByVal title As String,
  166.                          ByVal filePath As String,
  167.                          Optional ByVal arguments As String = "",
  168.                          Optional secureModeByPass As Boolean = False)
  169.  
  170.        If String.IsNullOrEmpty(title) Then
  171.            Throw New ArgumentNullException("title")
  172.  
  173.        ElseIf String.IsNullOrEmpty(filePath) Then
  174.            Throw New ArgumentNullException("filePath")
  175.  
  176.        Else
  177.            If secureModeByPass Then
  178.                title = title.Insert(0, "*")
  179.            End If
  180.  
  181.            Dim regKey As RegistryKey = Nothing
  182.            Try
  183.                regKey = GetRootKey(userType).OpenSubKey(GetSubKeyPath(startupType, keyBehavior), writable:=True)
  184.                regKey.SetValue(title, String.Format("""{0}"" {1}", filePath, arguments), RegistryValueKind.String)
  185.  
  186.            Catch ex As Exception
  187.                Throw
  188.  
  189.            Finally
  190.                If regKey IsNot Nothing Then
  191.                    regKey.Close()
  192.                End If
  193.  
  194.            End Try
  195.  
  196.        End If
  197.  
  198.    End Sub
  199.  
  200.    ''' <summary>
  201.    ''' Removes an application from Windows Startup.
  202.    ''' </summary>
  203.    ''' <param name="userType">The type of user.</param>
  204.    ''' <param name="startupType">The type of startup.</param>
  205.    ''' <param name="keyBehavior">The registry key behavior.</param>
  206.    ''' <param name="title">The value name to find.</param>
  207.    ''' <param name="throwOnMissingValue">if set to <c>true</c>, throws an exception on missing value.</param>
  208.    ''' <exception cref="System.ArgumentNullException">title</exception>
  209.    ''' <exception cref="System.ArgumentException">Registry value not found.;title</exception>
  210.    Friend Shared Sub Remove(ByVal userType As UserType,
  211.                             ByVal startupType As StartupType,
  212.                             ByVal keyBehavior As KeyBehavior,
  213.                             ByVal title As String,
  214.                             Optional ByVal throwOnMissingValue As Boolean = False)
  215.  
  216.        If String.IsNullOrEmpty(title) Then
  217.            Throw New ArgumentNullException("title")
  218.  
  219.        Else
  220.            Dim valueName As String = String.Empty
  221.            Dim regKey As RegistryKey = Nothing
  222.  
  223.            Try
  224.                regKey = GetRootKey(userType).OpenSubKey(GetSubKeyPath(startupType, keyBehavior), writable:=True)
  225.  
  226.                If regKey.GetValue(title, defaultValue:=Nothing) IsNot Nothing Then
  227.                    valueName = title
  228.  
  229.                ElseIf regKey.GetValue(title.Insert(0, "*"), defaultValue:=Nothing) IsNot Nothing Then
  230.                    valueName = title.Insert(0, "*")
  231.  
  232.                Else
  233.                    If throwOnMissingValue Then
  234.                        Throw New ArgumentException("Registry value not found.", "title")
  235.                    End If
  236.  
  237.                End If
  238.  
  239.                regKey.DeleteValue(valueName, throwOnMissingValue:=throwOnMissingValue)
  240.  
  241.            Catch ex As Exception
  242.                Throw
  243.  
  244.            Finally
  245.                If regKey IsNot Nothing Then
  246.                    regKey.Close()
  247.                End If
  248.  
  249.            End Try
  250.  
  251.        End If
  252.  
  253.    End Sub
  254.  
  255. #End Region
  256.  
  257. #Region " Private Methods "
  258.  
  259.    ''' <summary>
  260.    ''' Gets a <see cref="RegistryKey"/> instance of the specified root key.
  261.    ''' </summary>
  262.    ''' <param name="userType">The type of user.</param>
  263.    ''' <returns>A <see cref="RegistryKey"/> instance of the specified root key.</returns>
  264.    ''' <exception cref="System.ArgumentException">Invalid enumeration value.;userType</exception>
  265.    Private Shared Function GetRootKey(ByVal userType As UserType) As RegistryKey
  266.  
  267.        Select Case userType
  268.  
  269.            Case userType.CurrentUser
  270.                Return Registry.CurrentUser
  271.  
  272.            Case userType.AllUsers
  273.                Return Registry.LocalMachine
  274.  
  275.            Case Else
  276.                Throw New ArgumentException("Invalid enumeration value.", "userType")
  277.  
  278.        End Select ' userType
  279.  
  280.    End Function
  281.  
  282.    ''' <summary>
  283.    ''' Gets the proper registry subkey path from the parameters criteria.
  284.    ''' </summary>
  285.    ''' <param name="startupType">Type of the startup.</param>
  286.    ''' <param name="keyBehavior">The key behavior.</param>
  287.    ''' <returns>The registry subkey path.</returns>
  288.    ''' <exception cref="System.ArgumentException">
  289.    ''' Invalid enumeration value.;startupType or
  290.    ''' Invalid enumeration value.;keyBehavior
  291.    ''' </exception>
  292.    Private Shared Function GetSubKeyPath(ByVal startupType As StartupType,
  293.                                          ByVal keyBehavior As KeyBehavior) As String
  294.  
  295.        Select Case keyBehavior
  296.  
  297.            Case keyBehavior.System32
  298.  
  299.                Select Case startupType
  300.  
  301.                    Case startupType.Run
  302.                        Return RunSubKeyPath
  303.  
  304.                    Case startupType.RunOnce
  305.                        Return RunOnceSubKeyPath
  306.  
  307.                    Case Else
  308.                        Throw New ArgumentException("Invalid enumeration value.", "startupType")
  309.  
  310.                End Select ' startupType
  311.  
  312.            Case keyBehavior.SysWow64
  313.  
  314.                Select Case startupType
  315.  
  316.                    Case startupType.Run
  317.                        Return RunSubKeyPathSysWow64
  318.  
  319.                    Case startupType.RunOnce
  320.                        Return RunOnceSubKeyPathSysWow64
  321.  
  322.                    Case Else
  323.                        Throw New ArgumentException("Invalid enumeration value.", "startupType")
  324.  
  325.                End Select ' startupType
  326.  
  327.            Case Else
  328.                Throw New ArgumentException("Invalid enumeration value.", "keyBehavior")
  329.  
  330.        End Select ' keyBehavior
  331.  
  332.    End Function
  333.  
  334. #End Region
  335.  
  336. End Class
  337.  
  338. #End Region
5612  Programación / Programación General / Re: Ayuda con programa para abrir archivo de audio automaticamente en: 25 Marzo 2015, 17:19 pm
Buenas

no es tarea, no tengo codigo, mejor dicho, no se de programación, solo quería si era posible que alguien me echara la mano al respecto. no se si alguien seria tan amable...

de todas maneras voy a empezar a aprender la programación porque veo que me es util..

Se considera una tarea puesto que buscas que te den hecho todo el código sin poner ningún esfuerzo por tu parte en el desarrollo del mismo, pero nosotros, quiero decir los usuarios del foro, estamos para orientar y ayudar a resolver problemas específicos;
en muchos casos también aportamos códigos ya sean pequeños o extensos para mostrar soluciones a un problema, pero de ahí a hacerle por la cara un proyecto/aplicación entero a alguien eso no estaría bien cómo comprenderás, ya que sería aprovecharse del esfuerzo ajeno y esa persona no habría conseguido que aprendieses nada,
pero bueno, dejémoslo estar así si realmente tienes ganas de aprender... :)



Ya que no tienes preferencia por ningún lenguaje de programación, te muestro un ejemplo en VB.Net, cómo te comenté es algo muy sencillo en este lenguaje de programación (en C# es practicamente lo mismo pero utilizando otra sintaxis),
este Snippet monitorea los archivos entrantes del directorio que hay especificado, me suscribo el evento 'FileSystemWatcher.Created' que se dispara para notificar el archivo, y con él hago "lo que quiera" cómo por ejemplo ejecutarlo:

Código
  1. Imports System.IO
  2.  
  3. Public Class Form1
  4.  
  5.    Private WithEvents fsw As New FileSystemWatcher With
  6.        {
  7.            .Path = "C:\Directory\",
  8.            .Filter = "*.*",
  9.            .IncludeSubdirectories = False,
  10.            .NotifyFilter = NotifyFilters.FileName,
  11.            .EnableRaisingEvents = True
  12.        }
  13.  
  14.    Private Sub fsw_Created(ByVal sender As Object, ByVal e As FileSystemEventArgs) _
  15.    Handles fsw.Created
  16.  
  17.        Debug.WriteLine(String.Format("Incoming file intercepted: '{0}'", e.Name))
  18.  
  19.        Select Case Path.GetExtension(e.Name).ToLower
  20.  
  21.            Case ".mp3", ".ogg", ".wav"
  22.                Process.Start("C:\Ruta del reproductor.exe", ControlChars.Quote & e.FullPath & ControlChars.Quote)
  23.  
  24.            Case ".jpg", ".jpeg"
  25.                Process.Start("C:\Ruta del visualizador.exe", ControlChars.Quote & e.FullPath & ControlChars.Quote)
  26.  
  27.        End Select
  28.  
  29.    End Sub
  30.  
  31. End Class

Si prefieres abrir los archivos con el programa asociado por defecto, entonces simplemente pásale el nombre completo del archivo cómo primer parámetro al método Process.Start() y deja vacio el segundo parámetro.

PD: Si tienes dudas sobre las herramientas que son necesarias para compilar el código de arriba, no dudes en preguntar, pero entonces trata de publicar tú pregunta en el subforo dedicado a la programación .Net.

Saludos!
5613  Sistemas Operativos / Windows / Re: ¿Aplicación que envíe las pulsaciones de teclas a otra aplicación minimizada? en: 25 Marzo 2015, 16:24 pm
Lo que parece ser que buscas es un administrador de hotkeys con el que poder registrar una combinación de teclas a la que le puedas asignar una serie de acciones cuando sea pulsada dicha combinación, y teniendo en cuenta que en esas acciones soportadas por ese Software se encuentren las acciones que necesitas de "activar ventana" (es decir, actvar el foco de una ventana localizándola mediante un Título, Handle, o PID) y "enviar keystrokes" (simular pulsaciones del teclado) ...pues, aunque todo es cuestión de buscar a fondo, parece dificil encontrar un Software con tantas características específicas rehunidas.

Mediante programación lo podrías hacer tu mismo, depende del lenguaje y de tus conocimientos, no requeriría mucho esfuerzo.

PD: Si quieres intertarlo por la vía facil entonces podrías usar el lenguaje AutoHotkey, que está orientado a la automatización de tareas por Macros (y es capaz de registrar un Hotkey global), aunque yo cómo de costumbre recomiendo VB.Net/C# ...que también es facil llevarlo a cabo.

EDITO:
http://www.hotkeymaster.com/
Prueba la característica "Window" y "Keyboard Macro" ;)

Saludos!
5614  Programación / .NET (C#, VB.NET, ASP) / Re: Extraer datos de CDATA de un archivo XML en C# en: 25 Marzo 2015, 00:44 am
Buenas!

Para empezar, hay algunos errores en ese documento XML cómo para poder parsearlo.

1. El CDATA de tu documento XML lo tienes mal cerrado en </detalles>]> sería así: </detalles>]]>

2. Los elementos <infoTributaria> y <factura> no los cierras en la expresión literal.

Una vez hayas corregido esos fallos ...y de paso no te vendría nada mal formatear/indentar el código para hacerlo minimanete legible al ojo humano y así además evitar en el futuro ese tipo de errores que he mencionado,
te quedaía más o menos un documento así:

Código
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <autorizacion>
  3. <estado>AUTORIZADO</estado>
  4. <numeroAutorizacion>1703201515411617921521270013730687438</numeroAutorizacion>
  5. <fechaAutorizacion>2015-03-17T15:41:16.486-05:00</fechaAutorizacion>
  6. <comprobante>
  7. <![CDATA[
  8. <?xml version="1.0" encoding="UTF-8"?>
  9. <factura id="comprobante" version="1.0.0">
  10. <infoTributaria>
  11. <ambiente>2</ambiente>
  12. <tipoEmision>1</tipoEmision>
  13. <razonSocial>UNNOCYCLES CIA. LTDA.</razonSocial>
  14. <nombreComercial>UNNOCYCLES CIA. LTDA.</nombreComercial>
  15. <ruc>1792152127001</ruc>
  16. <detalles>
  17. <detalle>
  18. <codigoPrincipal>5132</codigoPrincipal>
  19. <codigoAuxiliar>FX150FM-BLA</codigoAuxiliar>
  20. <descripcion> MOTO  FX 150  FORTE BLANCO  MOTOR UNO</descripcion>
  21. <cantidad>2</cantidad>
  22. <precioUnitario>1887.11</precioUnitario>
  23. <descuento>1889.76</descuento>
  24. <precioTotalSinImpuesto>1884.46</precioTotalSinImpuesto>
  25. <impuestos>
  26. <impuesto>
  27. <codigo>2</codigo>
  28. <codigoPorcentaje>2</codigoPorcentaje>
  29. <tarifa>12.00</tarifa>
  30. <baseImponible>1884.46</baseImponible>
  31. <valor>226.14</valor>
  32. </impuesto>
  33. </impuestos>
  34. </detalle>
  35. </detalles>
  36. </infoTributaria>
  37. </factura>
  38. ]]>
  39. </comprobante>
  40. </autorizacion>

Ahora, solo debes cargar el documento corregido, y cargar la expresión literal cómo si fuese un documento XML adicional, y ya podrás parsear sus nodos/elementos cómo en este ejemplo:

Código
  1.        ' Valor literal.
  2.        Dim cdataValue As String = XDocument.Load("C:\Doc.xml").
  3.                                   <autorizacion>.<comprobante>.First.Value.
  4.                                   Trim({" "c, ControlChars.Lf, ControlChars.Tab})
  5.  
  6.        ' Documento XML desde un valor literal.
  7.        Dim xDoc As XDocument = XDocument.Parse(cdataValue)
  8.  
  9.        Dim sb As New System.Text.StringBuilder
  10.        With sb
  11.            .AppendFormat("Ambiente....: {0}", xDoc.<factura>.<infoTributaria>.<ambiente>.Value)
  12.            .AppendLine()
  13.  
  14.            .AppendFormat("Razón.Social: {0}", xDoc.<factura>.<infoTributaria>.<razonSocial>.Value)
  15.            .AppendLine()
  16.  
  17.            .AppendFormat("Descripción.: {0}", xDoc.<factura>.<infoTributaria>.<detalles>.<detalle>.<descripcion>.Value.Trim(" "c))
  18.        End With
  19.  
  20.        Trace.WriteLine(sb.ToString)

Saludos
5615  Programación / Programación General / Re: Ayuda con programa para abrir archivo de audio automaticamente en: 24 Marzo 2015, 23:44 pm
· ¿Donde está tú código? (aquí no se hacen tareas)

· ¿En que lenguaje de programación?

PD: En C#/VB.Net puedes utilizar la Class FileSystemWatcher que sirve especificamente para monitorear los archivos entrantes de un directorio de forma sutil y eficiente,
en otros lenguajes sería distinto, no tiene por que ser ni más fácil ni más dificil, solo distinto, es una tarea sencilla.
https://msdn.microsoft.com/es-es/library/system.io.filesystemwatcher%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

Saludos!
5616  Sistemas Operativos / Windows / Re: [Duda y problema] Tengo un problema en: 24 Marzo 2015, 07:46 am
1. El tal Spyware Terminator es un producto gratuito, muy mediocre, y con bajos índices de detección que está orientado al spyware con una pobre protección viral adicional, ese programa de poco te sirve en comparación con otros programas comerciales que ya he mencionado.

· ¿Tienes un AntiVirus eficiente instalado en tú sistema?,
en caso afirmativo ...¿Cual?, y salta al siguiente punto,
en caso negativo, desinstala completamente 'Spyware Terminator' para reemplazarlo, te recomiendo utilizar Malware-Bytes AntiMalware , o Avira , o NOD32, cualquiera de ellos.

2. ¿Has realizado en tu equipo algún escaneo profundo de virus con las firmas de virus actualizadas a la fecha actual?,
en caso afirmativo, y suponiendo que el resultado del escaneo haya sido favorable, salta al siguiente punto,
en caso negativo, no vale la pena seguir este tema hasta que realices una verificación con un software anti-viral que sea medianamente eficiente.

3. ¿Si reinicias tu equipo en 'Modo Seguro', siguen ocurriendo los problemas de saturación de red que has mencionado?,
en caso afirmativo, comenta si notas cualquier diferencia en los síntomas que pueda ser de utilidad para localizar el motivo del problema, y salta al siguiente punto,
en caso negativo, con mucha probabilidad puede ser síntoma de una infección de software malicioso y te sugiero volver a leer el primer punto, aunque también podría deberse a conflictos por drivers u otros servicios y/o procesos del sistema.

4. He leido varios comentarios en los cuales afirman que 'Spyware Terminator' disminuye notablemente el rendimiento general del equipo, y además, en tu log parece tener activo un proceso que estaría solicitando y/o recibiendo actualizaciones constantemente o cada "X" intervalos.

· ¿Si desinstalas el tal 'Spyware Temrinator', siguen ocurriendo los problemas de saturación de red que has mencionado?.
en caso afirmativo, comenta si notas cualquier diferencia en los síntomas que pueda ser de utilidad para localizar el motivo del problema,
en caso negativo, ya has dado con el origen del problema.

Saludos!
5617  Programación / .NET (C#, VB.NET, ASP) / Re: DLL en c# en: 24 Marzo 2015, 06:54 am
pero cuando estoy usandolo en otro proyecto y ocurre una excepcion no controlada el depurador de visual me manda al codigo de donde ocurrio la exepcion en el dll.

Tú mismo te estás respondiendo, eres tú quien tiene VS instalado y quien tiene el depurador de VS adjuntado, por ese motivo se te muestra el código fuente que ha generado la excepción.

Cualquier otro PC que no disponga de VS instalado y que no tenga activado/adjuntado el depurador de VS en el S.O, y que además no disponga de los archivos de base de datos de depuración (PDB) entonces no debería poder acceder de forma accidental al código fuente del ensamblado al generarse una excepción,
y digo de forma "accidental" por que el código fuente siempre será accesible para cualquier persona que tuviese un conocimiento básico sobre ingenieria inversa mediante Reflection (hay herramientas que facilitan la tarea, como .Net Reflector), a menos que protejas el código mediante empaquetado u ofuscación y esa persona no sea capaz de encontrar la forma de revertir dicha protección.

¿acaso tengo que controlar todas los errores de ejecucion en mi dll antes de generarlo, para que quienes lo usen no puedan acceder al codigo?

Pues... hombre, si el código que estás manipulando lanza una excepción entonces desde luego que algo hay mal y eso significa que deberías tratar de corregirlo y/o controlar la excepción, todas las excepciones que haya y además las excepciones que puedas preveer, claro está.

De todas formas, y aunque estas técnicas no te las aconsejo EN ABSOLUTO por ser motivo de MUY malas prácticas de programación:

· En Vb.Net puedes ignorar las excecpciones de un bloque de código específico usando la declaración "On Error" (On Error Resume Next), en C# creo que no existe un equivalente.

· Puedes controlar todas las excepciones de un proyecto, suscribiéndote a los siguientes eventos de la aplicación:
AppDomain.CurrentDomain.FirstChanceException, AppDomain.CurrentDomain.UnhandledExceptiony Application.ThreadException,
pero ten en cuenta que la ejecución se seguirá deteniendo al encontrar una excepción, y se seuirá reportando la excepción.
Es algo muy sencillo pero si quieres un mayor control puedes hacer lo mismo con la librería NByg: https://nbug.codeplex.com/

· Otra alternativa para ignorar las excepciones sería ejecutar todos los bloques de código pasando las instrucciones cómo parámetro de un método que recibiese cómo parámetro una expresión Lambda, por ejemplo:
Código
  1.    Public Shared Sub IgnoreExceptions(ByVal action As Action)
  2.  
  3.        Try
  4.            action.Invoke()
  5.  
  6.        Catch ex As Exception
  7.            MessageBox.Show(ex.Message)
  8.  
  9.        End Try
  10.  
  11.    End Sub
  12.  
  13.    Private Sub Test()
  14.  
  15.        IgnoreExceptions(Sub()
  16.                             IO.File.Open("", IO.FileMode.Open)
  17.                         End Sub)
  18.  
  19.    End Sub

· Por último, otra alternativa para ignorar todas las excepciones, y mi favorita (aunque nunca he tratado de hacerlo de esta manera), sería utilizando técnicas del paradigma AOP (Aspect Oriented Programming),
te recomiendo utilizar la librería PostSharp para facilitar dicha tarea, para decorar el código fuente de tal manera que puedas añadir atributos (o Aspects) a un método para ignorar las excepciones.
Aquí tienes un ejemplo: http://www.rhyous.com/2012/06/15/aop-implementing-try-catch-in-csharp-with-postsharp/

PD: No se si con la versión gratuita de PostSharp se podrá hacer.

Saludos
5618  Programación / Programación General / MOVIDO: Abrir cerrar Conexion Mysql C#? en: 24 Marzo 2015, 00:30 am
El tema ha sido movido a .NET.

http://foro.elhacker.net/index.php?topic=432280.0
5619  Programación / Programación General / MOVIDO: DLL en c# en: 24 Marzo 2015, 00:30 am
El tema ha sido movido a .NET.

http://foro.elhacker.net/index.php?topic=432310.0
5620  Sistemas Operativos / Windows / Re: Procesos dobles en: 23 Marzo 2015, 21:36 pm
¿Es normal esto?

Depende.

Un proceso puede ser single-instance, es decir, de única instancia, o multi-instance, de múltiples instancias (ej: explorer.exe).

Cómo el término multi-instance nos indica, el mismo proceso puede ser ejecutado varias veces, por ende se instanciará un proceso adicional con el mismo nombre que el proceso anteriormente instanciado,
pero para llamar "clon" a un proceso adicional, éste también debería tener asignado un mismo MUTEX, y un mismo PID o Process Identifier (entre otros factores) para identificar los 2 procesos cómo el mismo proceso, lo que es imposible debido a la naturaleza del S.O.

Lo que pretendo explicar con esto es que, encontrar dos procesos con el mismo nombre no es raro, ni mucho menos tiene por que ser síntoma de virus.

Por otro lado, un virus puede haber sido desarrollado para suplantar la identidad de otro proceso por ejemplo utilizando un nombre conocido y familiar (ej: taskmgr.exe) para hacerse pasar cómo proceso legítimo y seguro,
por ende, sin poder analizar y/o monitorear debidamente los procesos que has comentado aquí no se te puede dar ningún veredicto que sea 100% fiable sobre el origen de esos procesos.

Los nombres de los procesos son: igfxsrvc.exe y taskeng.exe

El primer proceso, igfxsrvc.exe, supuestamente se refiere a un servicio de Intel, Intel(R) Integrated Graphics Service, en ese caso no sería perjudicial.
El segundo proceso, taskeng.exe, parece ser un virus conocido.
Fuente(s):
http://www.neuber.com/taskmanager/process/igfxsrvc.exe.html
http://answers.microsoft.com/en-us/windows/forum/windows_7-security/what-is-taskengexe/526f43d3-d311-4637-a19a-a76f1ce351fb

Tus problemas de posibles virus los solucionarías muy sencillamente con un AntiVirus, así de simple, ¿a que esperas pues?, instálate MalwareBytes Anti-Malware, actualiza la base de firmas de virus a día de hoy, y realiza un escaneo profundo del sistema o simplemente escanea esos dos procesos sospechosos que comentaste.

Saludos.
Páginas: 1 ... 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 [562] 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines