Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#1211
Para los que todavía no sepan que es la Homeopatía:

Cita de: https://es.wikipedia.org/wiki/Homeopat%C3%ADaLa homeopatía es un sistema de medicina alternativa creado en 1796 por Samuel Hahnemann basado en su doctrina de «lo similar cura lo similar», que sostiene que una sustancia que causa los síntomas de una enfermedad en personas sanas curará lo similar en personas enfermas. La homeopatía es una pseudociencia: una creencia que es presentada falsamente como ciencia. Las preparaciones homeopáticas no son efectivas para tratar ninguna enfermedad. Estudios a gran escala han demostrado que los remedios homeopáticos no son más efectivos que los placebos, lo que sugiere que cualquier sensación positiva posterior al tratamiento solo se debe al efecto placebo y la recuperación normal de la enfermedad.

Bien. En el siguiente video nos explican desde una perspectiva neutral o imparcial lo negativo del fraude de la Homeopatía, pero tambien las cosas positivas (cuesta imaginar que tenga algo de positivo, pero podría ser que si):

[youtube=640,360]https://www.youtube.com/watch?v=8HslUzw35mc[/youtube]

PD: activad los subtítulos.

Saludos!
#1212
Cita de: OscarCadenas_91 en 23 Febrero 2018, 00:59 AM
pero aun me queda por resolver como capturar el archivo que intento abrir es decir ya no se abre otra ves pero no puedo obtener el nuevo archivo que intento abrir en mi aplicacion

Pensé que ya sabrías como. Puedes usar cualquier tipo de intercomunicación entre procesos (IPC) como por ejemplo MMF (memory mapped file) para compartir un bloque de memoria entre tus procesos y escribir los argumentos recibidos en el stream, o iguálmente lo puedes hacer con una named pipe, o con un socket si me apuras. Tambien puedes usar la clase EventWaitHandle para crear un 'semáforo' global entre tus procesos, aunque ello implicaría la necesidad de adaptar tu código para volverlo asíncrono (ya que la idea sería detener la ejecución de un thread y enviar una señal de reanudación al iniciar la próxima instancia de tu aplicación con los nuevos argumentos). En fin, formas de hacerlo hay muchas. Yo lo que considero más simple para este escenario en concreto sería declarar una clase que implemente la interfaz INotifyPropertyChanged, y listo.

Te muestro un ejemplo completo mediante la implementación de INotifyPropertyChanged:

CommandLineNotifier.vb
Código (vbnet) [Seleccionar]
Imports System.Collections.ObjectModel
Imports System.ComponentModel
Imports System.Runtime.CompilerServices

Public Class CommandLineNotifier : Implements INotifyPropertyChanged

   Public Property Arguments As ReadOnlyCollection(Of String)
       Get
           Return Me.argumentsB
       End Get
       Set(ByVal value As ReadOnlyCollection(Of String))
           If (value.Any()) AndAlso Not (value.Equals(Me.argumentsB)) Then
               Me.argumentsB = value
               Me.NotifyPropertyChanged()
           End If
       End Set
   End Property
   Private argumentsB As ReadOnlyCollection(Of String)

   Private Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
   Public Shared Event ArgumentsReceived As EventHandler(Of ReadOnlyCollection(Of String))

   Public Sub New(ByVal notifyCurrentArguments As Boolean)
       If (notifyCurrentArguments) Then
           Me.Arguments = New ReadOnlyCollection(Of String)(Environment.GetCommandLineArgs().Skip(1).ToArray())
       End If
   End Sub

   Private Sub NotifyPropertyChanged(<CallerMemberName> Optional ByVal propertyName As String = Nothing)
       RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
   End Sub

   Private Sub CommandLineNotifier_PropertyChanged(sender As Object, e As PropertyChangedEventArgs) _
   Handles Me.PropertyChanged

       Select Case (e.PropertyName)

           Case NameOf(Arguments)
               If (CommandLineNotifier.ArgumentsReceivedEvent IsNot Nothing) Then
                   RaiseEvent ArgumentsReceived(Me, Me.argumentsB)
               End If

           Case Else
               Throw New NotImplementedException()

       End Select

   End Sub

End Class


ApplicationEvents.vb (la clase donde se controlan los eventos de la aplicación)
Código (vbnet) [Seleccionar]
Imports Microsoft.VisualBasic.ApplicationServices

Namespace My

   Partial Friend Class MyApplication

       Public Shared CommandLineNotifier As CommandLineNotifier

       Public Sub MyApplication_StartupNextInstance(sender As Object, e As StartupNextInstanceEventArgs) Handles Me.StartupNextInstance
           If (e.CommandLine.Any) Then
               My.MyApplication.CommandLineNotifier.Arguments = e.CommandLine
           End If
       End Sub

   End Class

End Namespace


Form1.vb
Código (vbnet) [Seleccionar]
Imports System.Collections.ObjectModel

Public Class Form1

   Public Sub New()
       MyClass.InitializeComponent()
       AddHandler CommandLineNotifier.ArgumentsReceived, AddressOf Me.CommandLineNotifier_ArgumentsReceived
       My.MyApplication.CommandLineNotifier = New CommandLineNotifier(notifyCurrentArguments:=True)
   End Sub

   Public Sub CommandLineNotifier_ArgumentsReceived(sender As Object, e As ReadOnlyCollection(Of String))
       ' En este ejemplo añado los nuevos argumentos recibidos, a un ListBox.
       Me.ListBox1.Items.AddRange(DirectCast(sender, CommandLineNotifier).Arguments.ToArray())
   End Sub

End Class


Saludos.
#1213
Cita de: okik en 22 Febrero 2018, 22:25 PM

No doy crédito a lo que estás diciendo.

Se deduce de tu argumento que la pornografía infantil debería ser permitida

Me parece bien que no compartas mi opinión, pero no me parece tan bien que para intentar explicar el por que no se debe tolerar el gore me pongas un argumento del hombre de paja,
ya que intentas poner como argumento la situación más extrema y escandalosa: la pornografía infantil. Ese tipo de respuesta y argumento es el mismo que suele dar cualquier feminazi a favor del aborto, poniendo como ejemplo el de la mujer que ha sido violada y se ha quedado embarazada, es decir, el 1% del resto de 99% de aplicaciones del aborto. Lo mismo es.

En fin, a lo que vamos que no quiero desviarme, la pornografía infantil, bien, como no conozco los datos me los inventaré: digamos que a escala global en todo el mundo ese tipo de contenido solo se distribuye un 1-3% en comparación con el gore, así que creo que NO es comparable. Aparte de que visualizar el gore no le hace daño a nadie, pero en la pornografia infantil si, le hace daño a las víctimas menores de edad y a sus familias, así que no me compares por que no es lo mismo... yo por gore entiendo fotos o videos de gente que han sido heridos, mutilados o muertos en circunstancias muy desagradables de ver, obviamente el que toma la foto o el video no es un asesino, solo es un morboso que luego publica ese contenido, así que para nada es comparable con la pornografia infantil y no, no le hace daño a nadie, bueno, solo a...

Cita de: okik en 22 Febrero 2018, 22:25 PMo decir que "no le hace daño a nadie (bueno, solo a las personas mutiladas que aparecen en ese tipo de imágenes...)".

¿Que problema se supone que hay con ese comentario que he dicho?. Tan solo he comentado la realidad puntualizando eso entre paréntesis, no estaba bromeando con sarcasmo ni nada por el estilo. No se que te parece tan mal o inapropiado en ese comentario, sinceramente.




Cita de: okik en 22 Febrero 2018, 22:25 PMHombre el problema es la forma en que se expone. Si este tipo de cosas genera negocio o expectación de alguna manera

Ya veriamos si seguirías opinando exactamente lo mismo si en lugar de fotos o videos de seres humanos heridos o muertos fuesen fotos de pollos con la cabeza cortada, por que te recuerdo que eso también es mutilación, ¿he?, lo digo por que como al parecer se supone que por que yo tolero que exista y se difunda el gore tambien tolero que exista y se difunda la pornograffía infantil, pues entonces si tu no toleras la difusión del gore tampoco defenderás que las industrias de comestibles hagan negocio exponiendo a los pollos sin cabeza en las carnicerías, ¿verdad?.




Cita de: okik en 22 Febrero 2018, 22:25 PMEl problema aquí es como digo el modo en que se trata, no en un ámbito forense, científico, si no que se vende como algo 'morboso' algo prohibido lo cual se crea una especie de submundo donde gente se obsesiona por estas cosas, colecciona, busca y encuentra alguna especie de satisfacción con ello.

También hay gente que se obsesiona por los cromos de fútbol, colecciona, busca y encuentra satisfacción en ello, ¿puedes explicarme cual se supone que es la diferencia?. Aparte, seguro que más de uno estaría dispuesto a matar para convertirse en un fichaje estrella y millonario de algún equipo importante... en esta vida todas las cosas tienen ciertos peligros de acabar convirtiéndose en un asesino, depende de la cordura de la persona, no de la actividad en si.

Lo cierto es que a millones de personas en este planeta les encanta ver películas de gore, y ya no me refiero a ese gore extremo, que también, pero a la mayoria nos gustan las películas de violencia, ver un poco de sangre por aquí o por allá cuando el poli bueno le pega un tiro en el pecho a los malos en una persecusción donde el coche acaba volcándose y solo queda un cuerpo ensangrentado y lleno de cristales clavados en su cuerpo, es un espectáculo, ¿verdad?, por que el ser humano es morboso por naturaleza por mucho que tu pretendas intentar oponerte a esta opinión, los hechos son los hechos ya que está demostrado científicamente, así que no se que problema se supone que hay para que una minoria de personas les guste ver fotos reales de personas que se han cortado un brazo o cosas así raras y disfruten haciéndolo, incluso se masturben si quieren, son sus vidas y pueden tener el hobbie que les de la gana mientras eso no les haga daño a nadie.




Cita de: okik en 22 Febrero 2018, 22:25 PM
El cine muestra violencia pero todos entendemos que es falso, no es real (a veces se tira de archivo).

Esto me parece otro argumento del hombre de paja. Aparte de que el propósito de toda gran producción es conseguir que la violencia/sangre/apuñaladas/etc y la película en si parezca lo más real posible, hay todo tipo de estudios psicológicos detrás, como todos esos envoltorios que aparecen en los productos de comida donde te muestran un producto que en realidad no es el que compras, y se supone que todo el mundo sabemos que la imagen del envoltorio es falso, ¿verdad?, pero aun así las compañías no dejan de mostrarnos comida falsa en el etiquetado de sus productos para jugar con nuestra mente, y lo consiguen, por que si lo siguen haciendo a estas alturas es por algo, por que obtienen un resultado esperado y beneficioso para ellos...




CitarSi este tipo de cosas genera negocio o expectación de alguna manera esto con lo que se consigue que haya gente dispuesta a todo como matar y grabar las mutilaciones para luego difundirlo por Internet o para satisfacción propia.

Ahá, por esa regla de tres se supone que tambien deberiamos prohibir las películas de asesinos o los videojuegos donde te pasas las horas matando a "gente", por que claro, encontrar satisfacción en ese tipo de actividades crea asesinos en potencia...

[youtube=640,360]https://www.youtube.com/watch?v=2i2UqTSxk0U[/youtube]

en fin. en general he visto mucha hipocresia en los argumentos y comparaciones que has hecho, no te ofendas, pero es lo que pienso.

Saludos.
#1215
Ya que estás formulando una duda en un foro de programación general, lo normal por sentido común y tambien por respeto hacia los demás sería que hubieras especificado el lenguaje que estás utilizando, creo que eso es lo mínimo.

Respondiendo al problema que planteas, primero debes obtener una colección/array con los archivos que deseas mover, y seguidamente iterar la colección para mover uno por uno cada archivo...

Un ejemplo básico:
Código (vbnet) [Seleccionar]
Dim srcDir As New DirectoryInfo("C:\DIRECTORIO ORIGEN\")
Dim dstDir As New DirectoryInfo("C:\DIRECTORIO DESTINO\")

Dim files As IEnumerable(Of FileInfo) =
   srcDir.GetFiles("*", SearchOption.TopDirectoryOnly)

For Each fi As FileInfo In files

   Try
       fi.MoveTo(Path.Combine(dstDir.FullName, fi.Name))

   Catch ex As Exception
       Throw

   End Try

Next fi


PD: siempre puedes declarar un método con nombre "MoveAllFiles" o como prefieras llamarlo, y desarrollar el algoritmo que mueva todos los archivos de un directorio a otro. el código necesario para lograrlo te lo mostré en el ejemplo de más arriba.

Saludos!
#1216
Unas extensiones de método para obtener el ancho y alto del borde horizontal y vertical de un Form. Y también para obtener el tamaño de la barra de título (plus la opción de incluir el tamaño de los bordes de la ventana o no):

Código (vbnet) [Seleccionar]
<HideModuleName>
Public Module FormExtensions

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Gets the size of the vertical border (the border of the left or right edge) of the source <see cref="Form"/>.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <example> This is a code example.
   ''' <code>
   ''' Dim verticalBorderSize As Size = GetVerticalBorderSize(Me)
   ''' Console.WriteLine(String.Format("Vertical Border Width  = {0}", verticalBorderSize.Width))
   ''' Console.WriteLine(String.Format("Vertical Border Height = {0}", verticalBorderSize.Height))
   ''' </code>
   ''' </example>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="f">
   ''' The source <see cref="Form"/>.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' The size of the vertical border (the border of the left or right edge) of the source <see cref="Form"/>.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   <Extension>
   <EditorBrowsable(EditorBrowsableState.Always)>
   <DebuggerStepThrough>
   Public Function GetVerticalBorderSize(ByVal f As Form) As Size

       Select Case f.FormBorderStyle

           Case FormBorderStyle.None
               Return Size.Empty

           Case FormBorderStyle.Fixed3D
               Return New Size(SystemInformation.FixedFrameBorderSize.Width + SystemInformation.Border3DSize.Width,
                               f.Height)

           Case FormBorderStyle.FixedDialog, FormBorderStyle.FixedSingle, FormBorderStyle.FixedToolWindow
               Return New Size(SystemInformation.FixedFrameBorderSize.Width,
                               f.Height)

           Case Else
               Return New Size(SystemInformation.FrameBorderSize.Width,
                               f.Height)

       End Select

   End Function

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Gets the size of the horizontal border (the border of the top or bottom edge) of the source <see cref="Form"/>.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <example> This is a code example.
   ''' <code>
   ''' Dim horizontalBorderSize As Size = GetHorizontalBorderSize(Me)
   ''' Console.WriteLine(String.Format("Horizontal Border Width  = {0}", horizontalBorderSize.Width))
   ''' Console.WriteLine(String.Format("Horizontal Border Height = {0}", horizontalBorderSize.Height))
   ''' </code>
   ''' </example>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="f">
   ''' The source <see cref="Form"/>.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' The size of the horizontal border (the border of the top or bottom edge) of the source <see cref="Form"/>.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   <Extension>
   <EditorBrowsable(EditorBrowsableState.Always)>
   <DebuggerStepThrough>
   Public Function GetHorizontalBorderSize(ByVal f As Form) As Size

       Select Case f.FormBorderStyle

           Case FormBorderStyle.None
               Return Size.Empty

           Case FormBorderStyle.Fixed3D
               Return New Size(f.Width,
                               SystemInformation.FixedFrameBorderSize.Height + SystemInformation.Border3DSize.Height)

           Case FormBorderStyle.FixedDialog, FormBorderStyle.FixedSingle, FormBorderStyle.FixedToolWindow
               Return New Size(f.Width,
                               SystemInformation.FixedFrameBorderSize.Height)

           Case Else
               Return New Size(f.Width,
                               SystemInformation.FrameBorderSize.Height)

       End Select

   End Function

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Gets the titlebar bounds of the source <see cref="Form"/>.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <example> This is a code example.
   ''' <code>
   ''' Dim titleBarBoundsWithBorders As Rectangle = GetTitleBarBounds(Me, includeBorderSizes:=True)
   ''' Console.WriteLine(String.Format("TitleBar Bounds (including borders) Width  = {0}", titleBarBoundsWithBorders.Width))
   ''' Console.WriteLine(String.Format("TitleBar Bounds (including borders) Height = {0}", titleBarBoundsWithBorders.Height))
   ''' Console.WriteLine(String.Format("TitleBar Bounds (including borders) Pos. X = {0}", titleBarBoundsWithBorders.X))
   ''' Console.WriteLine(String.Format("TitleBar Bounds (including borders) Pos. Y = {0}", titleBarBoundsWithBorders.Y))
   '''
   ''' Dim titleBarBoundsWithoutBorders As Rectangle = GetTitleBarBounds(Me, includeBorderSizes:=False)
   ''' Console.WriteLine(String.Format("TitleBar Bounds (not including borders) Width  = {0}", titleBarBoundsWithoutBorders.Width))
   ''' Console.WriteLine(String.Format("TitleBar Bounds (not including borders) Height = {0}", titleBarBoundsWithoutBorders.Height))
   ''' Console.WriteLine(String.Format("TitleBar Bounds (not including borders) Pos. X = {0}", titleBarBoundsWithoutBorders.X))
   ''' Console.WriteLine(String.Format("TitleBar Bounds (not including borders) Pos. Y = {0}", titleBarBoundsWithoutBorders.Y))
   ''' </code>
   ''' </example>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="f">
   ''' The source <see cref="Form"/>.
   ''' </param>
   '''
   ''' <param name="includeBorderSizes">
   ''' If <see langword="True"/>, the titlebar bounds will include the bounds of the top, left and right border edges.
   ''' <para></para>
   ''' If <see langword="False"/>, the titlebar bounds will NOT include the bounds of the top, left and right border edges.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' The titlebar bounds (including the border sizes) of the source <see cref="Form"/>.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   <Extension>
   <EditorBrowsable(EditorBrowsableState.Always)>
   <DebuggerStepThrough>
   Public Function GetTitleBarBounds(ByVal f As Form, ByVal includeBorderSizes As Boolean) As Rectangle

       If (includeBorderSizes) Then
           Select Case f.FormBorderStyle

               Case FormBorderStyle.None
                   Return Rectangle.Empty

               Case FormBorderStyle.Fixed3D
                   Return New Rectangle(New Point(0, 0),
                                        New Size(f.Width, SystemInformation.CaptionHeight + SystemInformation.FixedFrameBorderSize.Height + SystemInformation.Border3DSize.Height))

               Case FormBorderStyle.FixedToolWindow
                   Return New Rectangle(New Point(0, 0),
                                        New Size(f.Width, SystemInformation.ToolWindowCaptionHeight + SystemInformation.FixedFrameBorderSize.Height))

               Case FormBorderStyle.SizableToolWindow
                   Return New Rectangle(New Point(0, 0),
                                        New Size(f.Width, SystemInformation.ToolWindowCaptionHeight + SystemInformation.FrameBorderSize.Height))

               Case FormBorderStyle.FixedDialog, FormBorderStyle.FixedSingle
                   Return New Rectangle(New Point(0, 0),
                                        New Size(f.Width, SystemInformation.CaptionHeight + SystemInformation.FixedFrameBorderSize.Height))

               Case Else
                   Return New Rectangle(New Point(0, 0),
                                        New Size(f.Width, SystemInformation.CaptionHeight + SystemInformation.FrameBorderSize.Height))

           End Select

       Else
           Dim verticalBorderSize As Size = FormExtensions.GetVerticalBorderSize(f)
           Dim horizontalBorderSize As Size = FormExtensions.GetHorizontalBorderSize(f)

           Select Case f.FormBorderStyle

               Case FormBorderStyle.None
                   Return Rectangle.Empty

               Case FormBorderStyle.FixedToolWindow, FormBorderStyle.SizableToolWindow
                   Return New Rectangle(New Point(verticalBorderSize.Width, horizontalBorderSize.Height),
                                    New Size(f.ClientRectangle.Width, SystemInformation.ToolWindowCaptionHeight))

               Case Else
                   Return New Rectangle(New Point(verticalBorderSize.Width, horizontalBorderSize.Height),
                                    New Size(f.ClientRectangle.Width, SystemInformation.CaptionHeight))

           End Select

       End If

   End Function

End Module


Lo he probado con todos los tipos de estilos de form, y temas de terceros, parece funcionar correctamente en todos los casos, pero no descarto quizás haber cometido algún error en alguno de los cálculos de algún estilo de form, si encuentran algo me avisan.

Aquí les dejo un test de unidad que utilicé:

Código (vbnet) [Seleccionar]
<TestMethod()>
Public Sub TestNonClientAreaMeasures()

   Using f As New Form With {.Size = New Size(100, 100)}

       For Each style As FormBorderStyle In [Enum].GetValues(GetType(FormBorderStyle))

           Console.WriteLine(String.Format("Testing form border style: {0}", style.ToString()))
           If (style = FormBorderStyle.None) Then
               ' Zero border size and no title bar, so nothing to do here.
               Continue For
           End If

           f.FormBorderStyle = style
           f.Show()

           Dim titlebarBounds As Rectangle = FormExtensions.GetTitleBarBounds(f, True) ' includes border bounds.
           Dim titlebarBoundsWitoutBorders As Rectangle = FormExtensions.GetTitleBarBounds(f, False) ' not includes border bounds.

           Dim verticalBorderSize As Size = FormExtensions.GetVerticalBorderSize(f)
           Dim horizontalBorderSize As Size = FormExtensions.GetHorizontalBorderSize(f)

           Dim formSize As Size = f.Bounds.Size ' includes non-client size.
           Dim formClientSize As Size = f.ClientRectangle.Size ' client size only.
           Dim formNonClientSize As New Size((formSize.Width - formClientSize.Width), ' non-client size only.
                                         (formSize.Height - formClientSize.Height))

           Assert.AreEqual(formNonClientSize.Width, (verticalBorderSize.Width * 2),
                       Environment.NewLine & Environment.NewLine &
                       String.Format("Value of '{0} * 2' ({1}) and '{2}' ({3}) are not equal.",
                                     "verticalBorderSize.Width", (verticalBorderSize.Width * 2),
                                     "formNonClientSize.Width", formNonClientSize.Width))

           Assert.AreEqual(formClientSize.Width, titlebarBoundsWitoutBorders.Width,
                       Environment.NewLine & Environment.NewLine &
                       String.Format("Value of '{0}' ({1}) and '{2}' ({3}) are not equal.",
                                     "titlebarBoundsWitoutBorders.Width", titlebarBoundsWitoutBorders.Width,
                                     "formClientSize.Width", formClientSize.Width))

           Assert.AreEqual(formSize.Width, titlebarBounds.Width,
                       Environment.NewLine & Environment.NewLine &
                       String.Format("Value of '{0}' ({1}) and '{2}' ({3}) are not equal.",
                                     "titlebarBounds.Width", titlebarBounds.Width,
                                     "formSize.Width", formSize.Width))

           Assert.AreEqual(titlebarBounds.Height, (titlebarBoundsWitoutBorders.Height + horizontalBorderSize.Height),
                       Environment.NewLine & Environment.NewLine &
                       String.Format("Sum of '{0} + {1}' ({2}) and '{3}' ({4}) are not equal.",
                                     "titlebarBoundsWitoutBorders.Height", "horizontalBorderSize.Height",
                                     (titlebarBoundsWitoutBorders.Height + horizontalBorderSize.Height),
                                     "titlebarBounds.Height", titlebarBounds.Height))

           Assert.AreEqual(formSize.Height, formClientSize.Height + titlebarBoundsWitoutBorders.Height + (horizontalBorderSize.Height * 2),
                       Environment.NewLine & Environment.NewLine &
                       String.Format("Sum of '{0} + {1} + ({2} * 2)' ({3}) and '{4}' ({5}) are not equal.",
                                     "formClientSize.Height", "titlebarBoundsWitoutBorders.Height", "horizontalBorderSize.Height",
                                     formClientSize.Height + titlebarBoundsWitoutBorders.Height + (horizontalBorderSize.Height * 2),
                                     "formSize.Height", formSize.Height))

           Assert.AreEqual(formNonClientSize.Height, (titlebarBounds.Height + horizontalBorderSize.Height),
                       Environment.NewLine & Environment.NewLine &
                       String.Format("Sum of '{0} + {1}' ({2}) and '{3}' ({4}) are not equal.",
                                     "titlebarBounds.Height", "horizontalBorderSize.Height",
                                     (titlebarBounds.Height + horizontalBorderSize.Height),
                                     "formNonClientSize.Height", formNonClientSize.Height))

           f.Hide()
       Next style

   End Using

End Sub





Este método sirve para 'bloquear' la región visible de un Form, a los límites visibles de los controles hijos. El resultado es un Form con un fondo invisible y los controles visibles. Añadí una sobrecarga para poder especificar el tipo de control.

IMPORTANTE: este código utiliza las extensiones de método del módulo FormExtensions que compartí en este comentario más arriba... así que no se olviden de copiar ese código.

Código (vbnet) [Seleccionar]
   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Locks the window region of the specified <see cref="Form"/> to the bounds of its child controls.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <example> This is a code example.
   ''' <code>
   ''' LockFormRegionToControls(Me)
   ''' </code>
   ''' </example>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="f">
   ''' The source <see cref="Form"/>.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <exception cref="NotImplementedException">
   ''' </exception>
   ''' ----------------------------------------------------------------------------------------------------
   Public Shared Sub LockFormRegionToControls(ByVal f As Form)

       LockFormRegionToControls(Of Control)(f)

   End Sub

    ''' ----------------------------------------------------------------------------------------------------
    ''' <summary>
    ''' Locks the window region of the specified <see cref="Form"/> to the bounds of its child controls
    ''' of the specified <see cref="Type"/>.
    ''' </summary>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <example> This is a code example.
    ''' <code>
    ''' LockFormRegionToControls(Of Button)(Me)
    ''' </code>
    ''' </example>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <typeparam name="T">
    ''' The <see cref="Type"/> of control.
    ''' </typeparam>
    '''
    ''' <param name="f">
    ''' The source <see cref="Form"/>.
    ''' </param>
    ''' ----------------------------------------------------------------------------------------------------
    ''' <exception cref="NotImplementedException">
    ''' </exception>
    ''' ----------------------------------------------------------------------------------------------------
    Public Shared Sub LockFormRegionToControls(Of T As Control)(ByVal f As Form)

        Select Case f.FormBorderStyle

            Case FormBorderStyle.FixedToolWindow, FormBorderStyle.SizableToolWindow
                Throw New NotImplementedException()

            Case Else
                Dim vBorderSize As Size = FormExtensions.GetVerticalBorderSize(f)
                Dim tbBounds As Rectangle = FormExtensions.GetTitleBarBounds(f, includeBorderSizes:=True)

                Dim rects As IEnumerable(Of Rectangle) =
                    (From ctrl As T In f.Controls.OfType(Of T)()
                     Order By f.Controls.GetChildIndex(ctrl) Ascending
                     Select ctrl.Bounds)

                Using rgn As New Region(New Rectangle(0, 0, f.Width, f.Height))
                    rgn.MakeEmpty()

                    For Each rect As Rectangle In rects
                        rgn.Union(rect)
                    Next rect
                    rgn.Translate(vBorderSize.Width, tbBounds.Height)

                    If (f.Region IsNot Nothing) Then
                        f.Region.Dispose()
                    End If
                    f.Region = rgn
                End Using

        End Select

    End Sub

#1217
Cita de: OscarCadenas_91 en 22 Febrero 2018, 18:08 PM
Duda - Como restringir la aplicacion a una instancia? 

Solo tienes que hacer un simple click en esta casilla...



Si estuvieramos hablando de C# entonces la cosa cambiaría, ya que a Microsoft y los devs. de Visual Studio les gusta complicarle la vida a los que programan en C#, jeje, lo apropiado sería crear (y apropiarse de) un MUTEX usando la clase Mutex.

Saludos!
#1218
Ese tipo de páginas existen en Internet desde que Jesucristo se iba al cibercafé de su pueblo para participar en torneos del buscaminas... no es algo nuevo ni tampoco ilegal, por ese motivo no se por que se supone que debería clasificarse como contenido oculto, prohibido o ilegal en la deep web.

Cita de: **Aincrad** en 21 Febrero 2018, 17:39 PMQue piensan Ustedes de esta pagina Para mi no debería encontrarse en la web normal.

Pienso que al igual que las películas con asesinatos escenificados y los videojuegos sangrientos, el gore real debe seguir siendo un contenido accesible para todos. Si no lo fuese entonces podría ser peor, ya que cuando se es jóven suele dar morbo conseguir ver aquello que te prohiben ver o hacer aquello que te prohiben hacer, así que las nuevas generaciones podrian acabar aficionándose más de lo sadulable al gore simplemente por ser algo prohibido de ver (y por ende, quizás deseable), podría volverse un tema polémico y crear problemas sociales, y en fin... creo que así como estamos ahora, estamos mejor, ya que el gore solo es un tema taboo que no le hace daño a nadie (bueno, solo a las personas mutiladas que aparecen en ese tipo de imágenes...)

Sobre la necrofilia, para ser sincero no se si en mi país es ilegal o no, me da exactamente igual, pero valorando lo positivo y lo negativo, pienso que sería mucho peor ver imágenes o videos de granjeros desfogándose con una oveja, o una fémina metiendose el rabo de un caballo por el ojete, que ver a un tio zumbánsode el cuerpo de una mujer... muerta. O imagínate ver sexo entre un humano y un animal muerto, uf, quita quita, que mal rollo, al menos la necrofilia sigue siendo sexo entre seres humanos y no con animales (zoofilia), eso cura algo de espanto, así que creo que opino más o menos lo mismo que con el gore/imágenes de mutilaciones etc.

El gore para los adictos simplemente es una adicción que no les hace daño mental ni físico, ¿si les gusta ver sangre pues por que vamos a negárselo?, que hagan lo que quieran, y para el resto de la humanidad, los curiosos, es una forma que podría ayudar a ser consciente de la crueldad del ser humano, una especie de instrumento de supervivencia para darte cuenta de que no vivimos en un mundo de paz y armonia con ponnis voladores... así que lo mire por donde lo mire yo creo que la difusión en pequeñas dosis de este tipo de contenido es algo más positivo que negativo.
La sociedad ya nos ha acostumbrado a ver todo tipo de gore en el cine y la televisión, el 99% es ficticio y el 1% en las noticias, así que no se por que ahora deberíamos ir de monjas y protestar por que el gore es el anticristo... ya es tarde para eso, lo hemos aceptado todos como algo cotidiano en esta sociedad de mierd@.

PD: yo soy de los curiosos, no frecuento para nada este tipo de contenido, pero lo cierto es que he llegado a ver de todo por que considero que de forma evolutiva hay que conocer el sufrimiento aunque sea desde la perspectiva del observador, pues la naturaleza es igual de bella y cruel al mismo tiempo pero nosotros solo nos preocupamos por nuestra felicidad y nos olvidamos de que también existe la maldad y la crueldad en las personas, hay que observar al menos por una vez el punto extremo de la vida que nadie te va a enseñar a menos que te pase algo malo, un accidente de tráfico, que te acuchillen o lo que sea. Otra cosa muy distinta es que mi estómago aguante ese tipo de videos, que no lo hace.

Saludos.
#1219
Prueba a investigar una posible solución en los videos y otros resultados que aparecen en...


Saludos