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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Temas
Páginas: 1 [2] 3 4 5 6 7
11  Programación / Desarrollo Web / Obtener URL del traductor de Google para traducir desde programa en: 22 Julio 2016, 15:47 pm
Hola
He probado este servidor que antes funcionaba pero lo han debido de cambiar y ahora ya no me funciona:

Código:
http://translate.google.com/translate_a/t?client=t&text=hello&sl=en&tl=es


obtengo el siguiente error :

"Error en el servidor remoto: (503) Servidor no disponible."

Bueno, he estado mirando por ahí, y parece que ya no es tan simple  :(





12  Programación / .NET (C#, VB.NET, ASP) / Código para reproducir notas musicales mediante midiOutShortMsg en: 14 Junio 2016, 00:12 am
Hola

Quiero compartir este programa que he desarrollado.

Se trata de un teclado musical, un piano que utiliza el parche Standard MIDI Patch Assignments del MIDI Manufacturers Association (MMA) con 128 sonidos de instrumentos diferentes.

Standard MIDI Patch Assignments


Permite tanto tocar con el ratón como con el teclado del ordenador.



Puedes descargarte el código aquí:

Musical_Keyboard.zip

*Elige el botón de la derecha, el que pone  'Descargar con el navegador'



Si lo prefieres puedes hacer simplemente un copia y pega en un nuevo proyecto 'Aplicación de Windows Form'

No necesitas crear controles, tan solo deja todo en blanco en el editor de código de Form1.vb, y pegas este código:

Código
  1. '//////////////////////////////
  2. '//    Date: 13/06/2016      //
  3. '//  Programmed by LEKIM     //
  4. '//////////////////////////////
  5.  
  6. Option Strict On
  7. Imports System.Runtime.InteropServices
  8. Imports System.Text
  9. Imports System.Security
  10.  
  11. Public Class Form1
  12.    Dim lblMuscKey(61) As Label
  13.    Dim lblInstruments(127) As Label
  14.    Dim lblOctave(5) As Label
  15.    Dim FlLayPanel As FlowLayoutPanel
  16.    Dim lblTitle As New Label
  17.    Dim ttip As New ToolTip
  18.    Dim numKeysBlack() As Integer = _
  19.        {2, 4, 7, 9, 11, 14, 16, 19, 21, 23, 26, 28, 31, _
  20.         33, 35, 38, 40, 43, 45, 47, 50, 52, 55, 57, 59}
  21.    Dim numKeysWhite() As Integer = _
  22.        {1, 3, 5, 6, 8, 10, 12, 13, 15, 17, 18, 20, 22, _
  23.         24, 25, 27, 29, 30, 32, 34, 36, 37, 39, 41, 42, _
  24.         44, 46, 48, 49, 51, 53, 54, 56, 58, 60, 61}
  25.    Dim hMidiOut As IntPtr
  26.    Dim intMsg As Integer
  27.    Dim Msg As NativeMethods.MidiMsg
  28.    Dim Octave As Byte = 1 'Octave from where begins the first key of the musical keyboard
  29.    Dim ListKeyPress As New List(Of Integer)
  30.    Dim VolumeKey As Byte = 127 'min=0; max=127
  31.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  32.        CreateMusicalKeyBoard()
  33.        CreatePanelInstruments()
  34.        CreateOctaveButtons()
  35.        With lblTitle
  36.            .Text = "Standard MIDI Patch Assignments"
  37.            .BackColor = Color.Transparent
  38.            .ForeColor = Color.WhiteSmoke
  39.            .Font = New Font("Arial", 20, FontStyle.Bold)
  40.            .TextAlign = ContentAlignment.MiddleLeft
  41.            .Size = CType(New Point(470, 40), Drawing.Size)
  42.            .Location = New Point(5, 5)
  43.        End With
  44.  
  45.        With Me
  46.            .Controls.Add(lblTitle)
  47.            .KeyPreview = True
  48.            .BackColor = System.Drawing.Color.FromArgb(40, 40, 40)
  49.            .Size = CType(New Point(835, 440), Drawing.Size)
  50.            .Text = "Demo Musical Keyboard"
  51.            .MaximizeBox = False
  52.            .FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
  53.            .StartPosition = FormStartPosition.CenterScreen
  54.            .SetBounds(CInt((Screen.PrimaryScreen.Bounds.Width - .Width) / 2),
  55.                       CInt((Screen.PrimaryScreen.Bounds.Height - .Height) / 2) - 50,
  56.                       .Width, .Height)
  57.        End With
  58.  
  59.        'Show a tooltip message
  60.        ttip.AutoPopDelay = 2000
  61.        ttip.InitialDelay = 1000
  62.        ttip.ReshowDelay = 500
  63.        For I As Integer = 1 To 5
  64.            ttip.SetToolTip(Me.lblOctave(I), "Octave")
  65.        Next
  66.  
  67.  
  68.        NativeMethods.midiOutOpen(hMidiOut, _
  69.                                  NativeMethods.MIDI_MAPPER, CType(0, IntPtr), _
  70.                                        CType(0, IntPtr), NativeMethods.CALLBACK_NULL)
  71.    End Sub
  72.    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
  73.        If ListKeyPress.Contains(e.KeyCode) = True Then Exit Sub ' Key is already pressed
  74.        If Key(e.KeyCode) = 0 Then Exit Sub
  75.        PlayMusicalNote(CByte(Key(e.KeyCode)), VolumeKey, Octave)
  76.        ListKeyPress.Add(e.KeyCode)
  77.    End Sub
  78.    Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
  79.  
  80.        OffMusicalNote(CByte(Key(e.KeyCode)), Octave)
  81.        ListKeyPress.Remove(e.KeyCode)
  82.        Try
  83.            If numKeysWhite.Contains(Msg.Note) Then
  84.                lblMuscKey(Msg.Note).BackColor = Color.White
  85.            Else
  86.                lblMuscKey(Msg.Note).BackColor = Color.Black
  87.            End If
  88.        Catch ex As Exception
  89.        End Try
  90.  
  91.    End Sub
  92.  
  93. #Region "Octave Buttons"
  94.    Sub CreateOctaveButtons()
  95.        Dim pOct As New Point(30, 265)
  96.        Dim inc As Integer = 0
  97.        For I = 1 To 5
  98.            lblOctave(I) = New Label
  99.            With lblOctave(I)
  100.                .Text = CStr(I)
  101.                .Font = New Font("Arial", 10, FontStyle.Bold)
  102.                .Size = CType(New Point(20, 20), Drawing.Size)
  103.                .BorderStyle = BorderStyle.FixedSingle
  104.                .Location = New Point(pOct.X + inc, pOct.Y)
  105.                .ForeColor = System.Drawing.Color.FromArgb(120, 120, 120)
  106.                .BackColor = System.Drawing.Color.FromArgb(20, 20, 20)
  107.                .TextAlign = ContentAlignment.MiddleCenter
  108.                AddHandler .MouseDown, AddressOf lblOctave_MouseDown
  109.                AddHandler .MouseEnter, AddressOf lblOctave_MouseEnter
  110.                AddHandler .MouseLeave, AddressOf lblOctave_MouseLeave
  111.            End With
  112.            inc = inc + 19
  113.            Me.Controls.Add(lblOctave(I))
  114.        Next
  115.  
  116.        lblOctave(1).BackColor = System.Drawing.Color.FromArgb(150, 150, 150)
  117.        lblOctave(1).ForeColor = System.Drawing.Color.FromArgb(10, 10, 10)
  118.  
  119.    End Sub
  120.    Private Sub lblOctave_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
  121.        Dim Index As Integer = Array.IndexOf(lblOctave, sender)
  122.        For I As Integer = 1 To 5
  123.            lblOctave(I).BackColor = System.Drawing.Color.FromArgb(20, 20, 20)
  124.            lblOctave(I).ForeColor = System.Drawing.Color.FromArgb(120, 120, 120)
  125.        Next
  126.        lblOctave(Index).BackColor = System.Drawing.Color.FromArgb(150, 150, 150)
  127.        lblOctave(Index).ForeColor = System.Drawing.Color.FromArgb(10, 10, 10)
  128.  
  129.        Octave = CByte(Index)
  130.    End Sub
  131.    Private Sub lblOctave_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs)
  132.        Dim Index As Integer = Array.IndexOf(lblOctave, sender)
  133.        Cursor = Cursors.Hand
  134.    End Sub
  135.    Private Sub lblOctave_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs)
  136.        Dim Index As Integer = Array.IndexOf(lblOctave, sender)
  137.        Cursor = Cursors.Default
  138.    End Sub
  139. #End Region
  140.  
  141. #Region "Panel of Instruments"
  142.    ''' <summary>
  143.    ''' Create a panel of instruments
  144.    ''' </summary>
  145.    ''' <remarks></remarks>
  146.    Public Sub CreatePanelInstruments()
  147.        FlLayPanel = New FlowLayoutPanel
  148.        With FlLayPanel
  149.            .AutoScroll = True
  150.            .VerticalScroll.Visible = False
  151.            .BorderStyle = BorderStyle.FixedSingle
  152.            .Size = CType(New Point(808, 205), Drawing.Size)
  153.            .Location = New Point(5, 50)
  154.            .FlowDirection = FlowDirection.TopDown
  155.            .BackColor = System.Drawing.Color.FromArgb(10, 10, 10)
  156.        End With
  157.        Me.Controls.Add(FlLayPanel)
  158.  
  159.        For I As Integer = 0 To lblInstruments.Count - 1
  160.            lblInstruments(I) = New Label
  161.            With lblInstruments(I)
  162.                .Width = 155
  163.                .Font = New Font("Arial", 8, FontStyle.Bold)
  164.                .ForeColor = System.Drawing.Color.FromArgb(120, 120, 120)
  165.                .BorderStyle = BorderStyle.FixedSingle
  166.                .TextAlign = ContentAlignment.MiddleLeft
  167.  
  168.            End With
  169.            FlLayPanel.Controls.Add(lblInstruments(I))
  170.        Next (I)
  171.  
  172.        'Standard MIDI Patch Assignments
  173.        Dim strInstruments() As String = _
  174.            {"000 Acoustic grand piano", "001 Bright acoustic piano", "002 Electric grand piano", "003 Honky-tonk piano",
  175.             "004 Rhodes(piano)", "005 Chorused(piano)", "006 Harpsichord", "007 Clavinet", "008 Celesta",
  176.             "009 Glockenspiel", "010 Music(box)", "011 Vibraphone", "012 Marimba", "013 Xylophone", "014 Tubular(bells)",
  177.             "015 Dulcimer", "016 Hammond(organ)", "017 Percussive(organ)", "018 Rock(organ)", "019 Church(organ)",
  178.             "020 Reed(organ)", "021 Accordion", "022 Harmonica", "023 Tango(accordion)", "024 Acoustic guitar (nylon)",
  179.             "025 Acoustic(guitar(steel))", "026 Electric(guitar(jazz))", "027 Electric(guitar(clean))",
  180.             "028 Electric(guitar(muted))", "029 Overdriven(guitar)", "030 Distortion(guitar)", "031 Guitar(harmonics)",
  181.             "032 Acoustic bass", "033 Electric bass (finger)", "034 Electric bass (pick)", "035 Fretless bass",
  182.             "036 Slap bass 1", "037 Slap bass 2", "038 Synth bass 1", "039 Synth bass 2", "040 Violin",
  183.             "041 Viola", "042 Cello", "043 Contrabass", "044 Tremolo strings", "045 Pizzicato strings", "046 Orchestral harp",
  184.             "047 Timpani", "048 String ensemble 1", "049 String ensemble 2", "050 Synth.strings(1)", "051 Synth.strings(2)",
  185.             "052 Choir(Aahs)", "053 Voice(Oohs)", "054 Synth(voice)", "055 Orchestra(hit)", "056 Trumpet", "057 Trombone",
  186.             "058 Tuba", "059 Muted(trumpet)", "060 French(horn)", "061 Brass(section)", "062 Synth.brass(1)",
  187.             "063 Synth.brass(2)", "064 Soprano sax", "065 Alto sax", "066 Tenor sax", "067 Baritone sax", "068 Oboe",
  188.             "069 English horn", "070 Bassoon", "071 Clarinet", "072 Piccolo", "073 Flute", "074 Recorder",
  189.             "075 Pan flute", "076 Bottle blow", "077 Shakuhachi", "078 Whistle", "079 Ocarina", "080 Lead 1 (square)",
  190.             "081 Lead 2 (sawtooth)", "082 Lead 3 (calliope lead)", "083 Lead 4 (chiff lead)", "084 Lead 5 (charang)",
  191.             "085 Lead 6 (voice)", "086 Lead 7 (fifths)", "087 Lead 8 (brass + lead)", "088 Pad 1 (new age)",
  192.             "089 Pad 2 (warm)", "090 Pad 3 (polysynth)", "091 Pad 4 (choir)", "092 Pad 5 (bowed)", "093 Pad 6 (metallic)",
  193.             "094 Pad 7 (halo)", "095 Pad 8 (sweep)", "096 FX 1 (rain)", "097 FX 2 (soundtrack)", "098 FX 3 (crystal)",
  194.             "099 FX 4 (atmosphere)", "100 FX 5 (brightness)", "101 FX 6 (goblins)", "102 FX 7 (echoes)", "103 FX 8 (sci-fi)",
  195.             "104 Sitar", "105 Banjo", "106 Shamisen", "107 Koto", "108 Kalimba", "119 Bagpipe", "110 Fiddle", "111 Shanai2",
  196.             "112 Tinkle Bell", "113 Agogo", "114 Steel Drums", "115 Woodblock", "116 Taiko Drum", "117 Melodic Tom",
  197.             "118 Synth Drum2", "119 Reverse Cymbal", "120 Guitar fret noise", "121 Breath noise", "122 Seashore",
  198.             "123 Bird tweet", "124 Telephone ring", "125 Helicopter", "126 Applause", "127 Gunshot"}
  199.  
  200.        For I = 0 To 127
  201.            lblInstruments(I).Text = strInstruments(I)
  202.        Next
  203.        For I As Integer = 0 To lblInstruments.Count - 1
  204.            AddHandler lblInstruments(I).MouseDown, AddressOf lblInstruments_MouseDown
  205.        Next
  206.  
  207.    End Sub
  208.    Private Sub lblInstruments_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
  209.        Dim Index As Integer = Array.IndexOf(lblInstruments, sender)
  210.        For I = 0 To lblInstruments.Count - 1
  211.            lblInstruments(I).BackColor = Color.Transparent
  212.            lblInstruments(I).ForeColor = System.Drawing.Color.FromArgb(120, 120, 120)
  213.  
  214.        Next
  215.        lblInstruments(Index).BackColor = System.Drawing.Color.FromArgb(150, 150, 150)
  216.        lblInstruments(Index).ForeColor = System.Drawing.Color.FromArgb(0, 0, 0)
  217.        ChangeInstrument(Index)
  218.    End Sub
  219. #End Region
  220.  
  221. #Region "Musical Keyboard"
  222.    ''' <summary>
  223.    ''' Create the keys of the musical keyboard
  224.    ''' </summary>
  225.    ''' <remarks></remarks>
  226.    Sub CreateMusicalKeyBoard()
  227.        Dim wKeyWhite As New Point(22, 80)
  228.        Dim wKeyBlack As New Point(12, 50)
  229.        Dim PosKeyWhite As New Point(30, 300)
  230.        Dim PosKeyBlack As New Point(25, 300)
  231.  
  232.        For Index As Integer = 1 To lblMuscKey.Count - 1
  233.            lblMuscKey(Index) = New Label
  234.            With lblMuscKey(Index)
  235.                .BorderStyle = BorderStyle.FixedSingle
  236.                Dim incWhiteKeyPosX As Integer
  237.                'White keys
  238.                If numKeysWhite.Contains(Index) Then
  239.                    .Size = New Size(wKeyWhite)
  240.                    .BackColor = Color.White
  241.                    .Location = _
  242.                        New Point(PosKeyWhite.X + incWhiteKeyPosX, PosKeyWhite.Y)
  243.                    incWhiteKeyPosX = incWhiteKeyPosX + 21
  244.                    .SendToBack() 'send to back
  245.                End If
  246.                'Black keys
  247.                If numKeysBlack.Contains(Index) Then
  248.                    .BackColor = Color.Black
  249.                    .Size = New Size(wKeyBlack)
  250.                    .Location = _
  251.                        New Point(PosKeyBlack.X + incWhiteKeyPosX, PosKeyBlack.Y)
  252.                End If
  253.                Me.Controls.Add(lblMuscKey(Index))
  254.                If numKeysBlack.Contains(Index) Then
  255.                    lblMuscKey(Index).BringToFront()
  256.                End If
  257.  
  258.                AddHandler .MouseDown, AddressOf lblMuscKey_MouseDown
  259.                AddHandler .MouseUp, AddressOf lblMuscKey_MouseUp
  260.                AddHandler .MouseMove, AddressOf lblMuscKey_MouseMove
  261.                AddHandler .MouseLeave, AddressOf lblMuscKey_MouseLeave
  262.            End With
  263.  
  264.        Next
  265.  
  266.  
  267.    End Sub
  268.    Private Sub lblMuscKey_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
  269.        Dim Index As Integer = Array.IndexOf(lblMuscKey, sender)
  270.        lblMuscKey(Index).BackColor = Color.Gray 'Change color of the key
  271.        PlayMusicalNote(CByte(Index), VolumeKey, Octave)
  272.    End Sub
  273.    Private Sub lblMuscKey_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
  274.        Dim Index As Integer = Array.IndexOf(lblMuscKey, sender)
  275.        If numKeysWhite.Contains(Index) Then
  276.            lblMuscKey(Index).BackColor = Color.White 'Change color of the key
  277.        Else
  278.            lblMuscKey(Index).BackColor = Color.Black 'Change color of the key
  279.        End If
  280.  
  281.        OffMusicalNote(Index, Octave)
  282.    End Sub
  283.    Private Sub lblMuscKey_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
  284.        Dim Index As Integer = Array.IndexOf(lblMuscKey, sender)
  285.        Dim mPoint As New Point(Me.PointToClient(Cursor.Position).X, Me.PointToClient(Cursor.Position).Y)
  286.        Dim X As Integer = mPoint.X
  287.        Cursor = Cursors.Hand
  288.        If X < CInt(lblMuscKey(Index).Left) Or
  289.            X > (CInt(lblMuscKey(Index).Left) + _
  290.                 CInt(lblMuscKey(Index).Width)) Then
  291.            EventoUp()
  292.            EventoDown()
  293.        End If
  294.  
  295.    End Sub
  296.    Private Sub lblMuscKey_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs)
  297.        Cursor = Cursors.Default
  298.    End Sub
  299. #End Region
  300.  
  301.  
  302. #Region "Play Sounds Functions"
  303.    ''' <summary>
  304.    ''' Play a musical note
  305.    ''' </summary>
  306.    ''' <param name="Note">Value of musical note</param>  
  307.    ''' <param name="Volume">Volume musical note</param>
  308.    ''' <param name="bOct">Octave</param>
  309.    ''' <returns></returns>
  310.    Public Function PlayMusicalNote(ByVal Note As Integer, ByVal Volume As Byte, ByVal bOct As Byte) As Boolean
  311.        Note += 23 + (12 * bOct)
  312.        intMsg = CInt(Volume * Convert.ToInt32(CStr(10000), 16) _
  313. + Note * Convert.ToInt32(CStr(100), 16) + NativeMethods.KeyOn)
  314.  
  315.        Return CBool(NativeMethods.midiOutShortMsg(hMidiOut, intMsg))
  316.    End Function
  317.    ''' <summary>
  318.    ''' Off a musical note
  319.    ''' </summary>
  320.    ''' <param name="Note">Value of musical note</param>
  321.    ''' <param name="bOct">Octave</param>
  322.    ''' <returns></returns>
  323.    ''' <remarks></remarks>
  324.    Public Function OffMusicalNote(ByVal Note As Integer, ByVal bOct As Integer) As Boolean
  325.        Note += 23 + (12 * bOct)
  326.        intMsg = Note * Convert.ToInt32(CStr(100), 16) + NativeMethods.KeyOff
  327.        Return CBool(NativeMethods.midiOutShortMsg(hMidiOut, intMsg))
  328.    End Function
  329.    ''' <summary>
  330.    ''' Change the instrument
  331.    ''' </summary>
  332.    ''' <param name="instCode"></param>
  333.    ''' <returns></returns>
  334.    ''' <remarks></remarks>
  335.    Public Function ChangeInstrument(ByVal instCode As Integer) As Boolean
  336.        intMsg = instCode * Convert.ToInt32(CStr(100), 16) + NativeMethods.Instruments
  337.        Return CBool(NativeMethods.midiOutShortMsg(hMidiOut, intMsg))
  338.        Return Nothing
  339.    End Function
  340. #End Region
  341. #Region "Computer keyboard keys"
  342.    ''' <summary>
  343.    ''' Assigning Computer keyboard keys
  344.    ''' </summary>
  345.    ''' <param name="keycode"></param>
  346.    ''' <returns></returns>
  347.    ''' <remarks></remarks>
  348.    Public Function Key(ByVal keycode As Integer) As Integer
  349.        Dim BlackHalfKey() As Keys = {Keys.W, Keys.E, Keys.T, Keys.Y, Keys.U}
  350.        Dim WhiteHalfKey() As Keys = {Keys.A, Keys.S, Keys.D, Keys.F, Keys.G, Keys.H, Keys.J, Keys.K}
  351.        Dim BassKey() As Keys = {Keys.Z, Keys.X, Keys.C, Keys.V, Keys.B, Keys.N, Keys.M, Keys.Oemcomma}
  352.        Dim AltoKey() As Keys = {Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5, Keys.D6, Keys.D7, Keys.D8}
  353.  
  354.        If BlackHalfKey.Contains(CType(keycode, Keys)) Or _
  355.            WhiteHalfKey.Contains(CType(keycode, Keys)) Or _
  356.            BassKey.Contains(CType(keycode, Keys)) Or _
  357.             AltoKey.Contains(CType(keycode, Keys)) Then
  358.            For I As Integer = 10 To 14
  359.                If keycode = BlackHalfKey(I - 10) Then Msg.Note = CByte(numKeysBlack(I))
  360.            Next
  361.  
  362.            For I As Integer = 14 To 21
  363.                If keycode = WhiteHalfKey(I - 14) Then Msg.Note = CByte(numKeysWhite(I))
  364.            Next
  365.  
  366.            For I As Integer = 0 To 7
  367.                If keycode = BassKey(I) Then Msg.Note = CByte(numKeysWhite(I))
  368.            Next
  369.            For I As Integer = 28 To 35
  370.                If keycode = AltoKey(I - 28) Then Msg.Note = CByte(numKeysWhite(I))
  371.            Next
  372.  
  373.            lblMuscKey(Msg.Note).BackColor = Color.Gray
  374.  
  375.            Return Msg.Note
  376.        Else
  377.            Return 0
  378.        End If
  379.  
  380.    End Function
  381. #End Region
  382. End Class
  383.  
  384. Module MouseEvents
  385.    ''' <summary>
  386.    ''' Simulate MouseDown the left mouse button
  387.    ''' </summary>
  388.    ''' <remarks></remarks>
  389.    Public Sub EventoDown()
  390.        NativeMethods.mouse_event(NativeMethods.MouseEventFlags.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
  391.    End Sub
  392.    ''' <summary>
  393.    ''' Simulate MouseUp the left mouse button
  394.    ''' </summary>
  395.    ''' <remarks></remarks>
  396.    Public Sub EventoUp()
  397.        NativeMethods.mouse_event(NativeMethods.MouseEventFlags.MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0)
  398.    End Sub
  399.  
  400. End Module
  401.  
  402. <SuppressUnmanagedCodeSecurity()>
  403. Friend NotInheritable Class NativeMethods
  404.    Inherits Attribute
  405.    Private Sub New()
  406.    End Sub
  407.  
  408. #Region "API MIDI message"
  409.    <DllImport("winmm.dll")>
  410.    Public Shared Function midiOutOpen(ByRef lphMidiOut As IntPtr,
  411.                                       ByVal uDeviceID As Integer,
  412.                                       ByVal dwCallback As IntPtr,
  413.                                       ByVal dwInstance As IntPtr,
  414.                                       ByVal dwFlags As UInteger) As UInteger
  415.    End Function
  416.    <DllImport("winmm.dll")>
  417.    Public Shared Function midiOutShortMsg(ByVal hMidiOut As IntPtr,
  418.                                           ByVal dwMsg As Integer) As UInteger
  419.    End Function
  420.  
  421.    <DllImport("winmm.dll")>
  422.    Public Shared Function midiOutClose(ByVal hMidiOut As IntPtr) As Integer
  423.    End Function
  424.  
  425.    <StructLayout(LayoutKind.Auto)> _
  426.    Public Structure MidiMsg
  427.        Dim status As Byte
  428.        Dim Note As Byte
  429.        Dim Volume As Byte
  430.        Dim Data3 As Byte
  431.    End Structure
  432.    Public Const MIDI_MAPPER As Int32 = -1
  433.    Public Const CALLBACK_NULL = &H0
  434.    Public Const KeyOn As Integer = &H90
  435.    Public Const KeyOff As Integer = &H80
  436.    Public Const Instruments As Integer = &HC0
  437. #End Region
  438.  
  439. #Region "API Mouse Events"
  440.  
  441.  
  442.    <DllImport("user32.dll", CharSet:=CharSet.Auto)> _
  443.    Friend Shared Sub mouse_event(ByVal dwFlags As UInteger, _
  444.                                   ByVal dx As UInteger, _
  445.                                   ByVal dy As UInteger, _
  446.                                   ByVal dwData As UInteger, _
  447.                                   ByVal dwExtraInfo As Integer)
  448.    End Sub
  449.  
  450.    <Flags()> _
  451.    Public Enum MouseEventFlags As UInteger
  452.        MOUSEEVENTF_ABSOLUTE = &H8000
  453.        MOUSEEVENTF_LEFTDOWN = &H2
  454.        MOUSEEVENTF_LEFTUP = &H4
  455.        MOUSEEVENTF_MIDDLEDOWN = &H20
  456.        MOUSEEVENTF_MIDDLEUP = &H40
  457.        MOUSEEVENTF_MOVE = &H1
  458.        MOUSEEVENTF_RIGHTDOWN = &H8
  459.        MOUSEEVENTF_RIGHTUP = &H10
  460.        MOUSEEVENTF_XDOWN = &H80
  461.        MOUSEEVENTF_XUP = &H100
  462.        MOUSEEVENTF_WHEEL = &H800
  463.        MOUSEEVENTF_HWHEEL = &H1000
  464.    End Enum
  465.  
  466. #End Region
  467.  
  468.  
  469. End Class
  470.  


CÓDIGO BÁSICO PARA REPRODUCIR SONIDOS MIDI

Crea un Button, y pegas esto. Al pulsar el botón se escucha un sonido C2 (Do 2ª escala), que su valor es 47.


Código
  1.  
  2. Option Strict On
  3. Imports System.Runtime.InteropServices
  4. Imports System.Security
  5.  
  6. Public Class Form1
  7.    Dim hMidiOut As IntPtr
  8.    Dim intMsg As Integer
  9.    Dim msg As New NativeMethods.MidiMsg
  10.  
  11.    Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
  12.        'Cierra los mensajes midi
  13.        NativeMethods.midiOutClose(hMidiOut)
  14.    End Sub
  15.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  16.        'Abre los mensajes midi
  17.        NativeMethods.midiOutOpen(hMidiOut, NativeMethods.MIDI_MAPPER,
  18.                         CType(0, IntPtr), CType(0, IntPtr),
  19.                         NativeMethods.CALLBACK_NULL)
  20.  
  21.        'Cambiar instrumento
  22.        Dim MyInstr As Integer = 1 'min:0 (piano) ; max:127 (Gunshot)
  23.        intMsg = MyInstr * Convert.ToInt32(CStr(100), 16) + NativeMethods.Instruments
  24.        NativeMethods.midiOutShortMsg(hMidiOut, intMsg)
  25.    End Sub
  26.  
  27.    Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
  28.        'Reproduce un sonido los mensajes midi
  29.        msg.status = NativeMethods.KeyOn
  30.        msg.Volume = 127
  31.        msg.Note = 47 '<---Sonido
  32.        intMsg = msg.Volume * Convert.ToInt32(CStr(10000), 16) + _
  33.            msg.Note * Convert.ToInt32(CStr(100), 16) + _
  34.            msg.status
  35.        NativeMethods.midiOutShortMsg(hMidiOut, intMsg)
  36.    End Sub
  37.  
  38.    Private Sub Button1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseUp
  39.        'Apaga el sonido al soltar el botón
  40.        '**El sonido debe ser el mismo que el que se quiere apagar
  41.        msg.status = NativeMethods.KeyOff
  42.        msg.Volume = 0
  43.        msg.Data3 = 0
  44.        msg.Note = 47 '<---Sonido
  45.        intMsg = msg.Volume * Convert.ToInt32(CStr(10000), 16) _
  46.            + msg.Note * Convert.ToInt32(CStr(100), 16) + _
  47.            msg.status
  48.        NativeMethods.midiOutShortMsg(hMidiOut, intMsg)
  49.    End Sub
  50. End Class
  51.  
  52.  
  53.  
  54. <SuppressUnmanagedCodeSecurity()>
  55. Friend NotInheritable Class NativeMethods
  56.    Inherits Attribute
  57.    Private Sub New()
  58.    End Sub
  59.  
  60. #Region "API MIDI message"
  61.    <DllImport("winmm.dll")>
  62.    Public Shared Function midiOutOpen(ByRef lphMidiOut As IntPtr,
  63.                                       ByVal uDeviceID As Integer,
  64.                                       ByVal dwCallback As IntPtr,
  65.                                       ByVal dwInstance As IntPtr,
  66.                                       ByVal dwFlags As UInteger) As UInteger
  67.    End Function
  68.    <DllImport("winmm.dll")>
  69.    Public Shared Function midiOutShortMsg(ByVal hMidiOut As IntPtr,
  70.                                           ByVal dwMsg As Integer) As UInteger
  71.    End Function
  72.  
  73.    <DllImport("winmm.dll")>
  74.    Public Shared Function midiOutClose(ByVal hMidiOut As IntPtr) As Integer
  75.    End Function
  76.  
  77.    <StructLayout(LayoutKind.Auto)> _
  78.    Public Structure MidiMsg
  79.        Dim status As Byte
  80.        Dim Note As Byte
  81.        Dim Volume As Byte
  82.        Dim Data3 As Byte
  83.    End Structure
  84.    Public Const MIDI_MAPPER As Int32 = -1
  85.    Public Const CALLBACK_NULL = &H0
  86.    Public Const KeyOn As Integer = &H90
  87.    Public Const KeyOff As Integer = &H80
  88.    Public Const Instruments As Integer = &HC0
  89. #End Region
  90.  
  91. End Class
  92.  
  93.  

Espero que disfrutéis del programa.

No soy un programador  experto así que supongo que los más avispados veréis cosas corregibles.

Me he visto obligado a usar APIs. He estado buscando la forma de no tener que usarlo y usar puro código .NET, pero no lo he conseguido. A no ser que use mi propia biblioteca MIDI de sonidos.

[DESLIZANDO EL CURSOR]
He preguntado en varios sitios incluido aquí como crear el efecto de arrastrar el dedo por las teclas de un piano usando el puntero del ratón y con puro código NET. Pero no he tenido éxito, por ahora.

Como alternativa, de nuevo me he visto obligado a usar llamada API. La razón es que cuando pulsas una tecla del piano y mantienes pulsado el botón izquierdo al pasar a otra tecla se mantiene el evento de la tecla inicial ignorando por completo el hecho de que el puntero se haya en una nueva tecla. Con la imposibilidad de usar MouseEnter, ya que el que trabaja es el evento MouseEnter de la primera tecla. Usando Mouse_Event emulo la acción de soltar el botón, aunque en realidad aun lo tenga pulsado justo al entrar en la otra tecla. De nuevo emulo el evento de pulsar y la nueva tecla captura el evento. Es fácil conseguirlo con elementos que no forma parte de una matriz, pero se complica al usar un array de controles. Por esta razón he tenido que usar Mouse_Event.

S2s




13  Programación / .NET (C#, VB.NET, ASP) / Terminar evento MouseDown con el botón del ratón pulsado en: 12 Junio 2016, 17:24 pm

He cambiado el título de la pregunta porque no estaba bien hecha, ya que hacía referencia al foco de objeto cuando en realidad me refiero al evento. Cuando se presiona sobre el objeto éste recibe el foco, por eso usé esa palabra.

Realmente lo que necesito es terminar o salir del evento MouseDown y volver a entrar sin soltar el botón del ratón  al salir y entrar en otro objeto de un mismo array



Hola

Estoy intentado que al pulsar un objeto sea un Label, picture o botón, al salir de él éste salga del evento de pulsado (Mousedown) del objeto y al entras seguidamente en otro objeto éste reciba el enfoque y el evento MouseDown

Para que se me entienda.

Imagina el teclado del ordenador y pasas y pulsas A el botón baja, luego deslizas el dedo manteniendo pulsado y pasa a S. el botón S bajará y el A subirá.  En un editor de texto se escribiría AS sin haber levantado el dedo.

Necesito eso mismo pero con controles. pero no se como hacerlo. He probado con Hover y Enter, pero no me sale.


Parece una tontaría y muy simple pero llevo rato inentandolo y nada

Gracias




Aquí dejo lo que he hecho.

Al pulsar sobre el Label(2) éste cambia de color al azul y sin soltar, al salir de él y entrar en Label(1), pierde su color azul, pero el Label(1) no cambia de color porque todavía está en el evento MousDown Label(2).

Necesito que al entrar en Label(1) entre en el evento Mousdown de este control y salga del MouseDown del Label(2).


Código
  1. 'Programmed by Lekim'
  2. Option Strict On
  3. Imports System.Runtime.InteropServices
  4.  
  5.  
  6. Public Class Form1
  7.  
  8.    <DllImport("user32.dll")> _
  9.    Private Shared Sub mouse_event(ByVal dwFlags As UInteger, _
  10.                                   ByVal dx As UInteger, _
  11.                                   ByVal dy As UInteger, _
  12.                                   ByVal dwData As UInteger, _
  13.                                   ByVal dwExtraInfo As Integer)
  14.    End Sub
  15.  
  16.  
  17.    Dim lblkey(5) As Label
  18.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  19.  
  20.        Dim locLBL As New Point(10, 10)
  21.        Dim inc As Integer
  22.        For I As Integer = 0 To 5
  23.            lblkey(I) = New Label
  24.            lblkey(I).Size = CType(New Point(20, 100), Drawing.Size)
  25.            lblkey(I).BorderStyle = BorderStyle.FixedSingle
  26.            lblkey(I).Location = New Point(locLBL.X + inc, locLBL.Y)
  27.            Me.Controls.Add(lblkey(I))
  28.            inc += 19
  29.        Next
  30.        For I As Integer = 0 To 5
  31.            AddHandler lblkey(I).MouseDown, AddressOf lblkey_MouseDown
  32.            AddHandler lblkey(I).MouseUp, AddressOf lblkey_MouseUp
  33.            AddHandler lblkey(I).MouseMove, AddressOf lblkey_MouseMove
  34.  
  35.        Next
  36.  
  37.    End Sub
  38.    Private Sub lblkey_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
  39.        Dim Index As Integer = Array.IndexOf(lblkey, sender)
  40.        Dim mPoint As New Point(Me.PointToClient(Cursor.Position).X, Me.PointToClient(Cursor.Position).Y)
  41.        Dim X As Integer = mPoint.X
  42.  
  43.        If X < CInt(lblkey(Index).Left) Or
  44.            X > (CInt(lblkey(Index).Left) + _
  45.                 CInt(lblkey(Index).Width)) Then
  46.            EventoUp()
  47.            EventoDown()
  48.        End If
  49.  
  50.    End Sub
  51.    Private Sub lblkey_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
  52.        Dim Index As Integer = Array.IndexOf(lblkey, sender)
  53.        If Button.MouseButtons = MouseButtons.Left Then
  54.            lblkey(Index).BackColor = Color.Azure
  55.        End If
  56.    End Sub
  57.    Private Sub lblkey_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
  58.        Dim Index As Integer = Array.IndexOf(lblkey, sender)
  59.        lblkey(Index).BackColor = Color.Transparent
  60.    End Sub
  61.  
  62. End Class
  63. Module modEventMouse
  64.    <DllImport("user32.dll")> _
  65.    Public Sub mouse_event(ByVal dwFlags As UInteger, _
  66.                                   ByVal dx As UInteger, _
  67.                                   ByVal dy As UInteger, _
  68.                                   ByVal dwData As UInteger, _
  69.                                   ByVal dwExtraInfo As Integer)
  70.    End Sub
  71.    <Flags()> _
  72.    Public Enum MouseEventFlags As UInteger
  73.        MOUSEEVENTF_ABSOLUTE = &H8000
  74.        MOUSEEVENTF_LEFTDOWN = &H2
  75.        MOUSEEVENTF_LEFTUP = &H4
  76.        MOUSEEVENTF_MIDDLEDOWN = &H20
  77.        MOUSEEVENTF_MIDDLEUP = &H40
  78.        MOUSEEVENTF_MOVE = &H1
  79.        MOUSEEVENTF_RIGHTDOWN = &H8
  80.        MOUSEEVENTF_RIGHTUP = &H10
  81.        MOUSEEVENTF_XDOWN = &H80
  82.        MOUSEEVENTF_XUP = &H100
  83.        MOUSEEVENTF_WHEEL = &H800
  84.        MOUSEEVENTF_HWHEEL = &H1000
  85.    End Enum
  86.    ''' <summary>
  87.    ''' Simulate MouseDown the left mouse button
  88.    ''' </summary>
  89.    ''' <remarks></remarks>
  90.    Public Sub EventoDown()
  91.        Call modEventMouse.mouse_event(MouseEventFlags.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
  92.    End Sub
  93.    ''' <summary>
  94.    ''' Simulate MouseUp the left mouse button
  95.    ''' </summary>
  96.    ''' <remarks></remarks>
  97.    Public Sub EventoUp()
  98.        Call modEventMouse.mouse_event(MouseEventFlags.MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0)
  99.    End Sub
  100.  
  101.  
  102. End Module
  103.  
  104.  
  105.  

14  Sistemas Operativos / Windows / Duda USB de arranque desde pendrive (de ISO a USB) en: 8 Junio 2016, 13:11 pm
Hola

Estoy partiendome los sesos intentando crear un disco de arranque desde un PENDRIVE a partir de una imagen ISO que NO es de un SO (Sistema Operativo), si no de un programa que se ejecuta al arrancar el sistema desde un CD.

He buscado y todo lo que encuentro es referido a arrancar sistemas operativos. He probado con Ultraiso y mediante consola diskpart. Pero nada. He conseguido varios programas para este fin pero, del mismo modo solo funciona para discos de arranque de sistemas operativos

Otra duda es que si oblitatoriamente tengo que hacerlo con USB de 4GB o puedo hacerlo con uno de 2GB ya que el programa que quiero usar ocupa apenas unos megabytes.

Una ayuda por favor  

Gracias




He rectificado  la pregunta porque no estaba muy clara. Aclaro que quiero arrancar desde un PENDRIVE usando la imagen de un CD-ROM arrancable. Y no es de un sistema operativo

S2s
15  Foros Generales / Dudas Generales / Problemas de sonido: guitarra eléctrica y ordenador ♫♪♪♫♫♫ en: 2 Junio 2016, 20:12 pm
Hola
Estoy usando de momento un programa llamado EnergyXT y plugins VST, como el Guitar Rig. He probado también otros como Amplitube.



El problema está en que cuando pongo distorsión, para tocar solos, con notas limpias y sustain, con mucha ganancia  y salida, se produce un ruido de fondo muy molesto.



Hay que tener en cuenta que estos programas, jungo con el ASIO, simulan un amplificador pero no es lo mismo. Con un amplificador también ocurre igual, y se producen acoples pero cuando tapas las cuerdas con la mano el sonido molesto desaparece. Sin embargo no ocurre igual usando el ordenador, ya que al tapar las cuerdas el sonido molesto persiste.

Para que te hagas una idea es como ese zumbido que se oye cuando Martin McFly en Regreso al futuro (Back To the Future) conecta la guitarra al principio de la película.

Cuando se toca con distorsión hay que tapar ligeramente las cuerdas con la mano para evitar que se escuche este ruido de fondo.

Me gustaría saber qué puedo hacer para evitar que se produzca ese ruido. Si hay alguna tarjeta de sonido que sirva para esto y si la hay ¿Cuál?

Gracias



He he encontrado algunos tutoriales para eliminar el ruido que ahora probaré
pero....

lo que realmente me gustaría es que el ordenador se comporte verdaderamente como un amplificador usando como he preguntado alguna tarjeta gráfica que dispusiera de funciones par aintegrar instrumentos...

Se que hay algunos aparetejos que en realidad son amplificadores (sin altavoz) que se conentan a un Pc y éstos recogen la señal y puedes aplicar efectos. Además vienen con programas incorporados, el problema es que valen una pasta
 :(



Bueno, me he buscado  la vida.... y he encontrado algo que me puede servir. Se llama Guitar Link de Berhinger, ya que hay imitaciones y parece ser que las imitaciones dan problemas, como que anulan la tarjeta de sonido del ordenador y solo puedes escuchar la guitarra, algo muy malo si quieres reproducir piestas de audio y acompañamiento de algún tipo mientras tocas.

Como anécdota puedo decir que he visto gente que trata de vender imitaciones por 20 €, como si fuera el original rebajado a la mitad (que vale de 35 a 40 € según vendedor) cuando las imitaciones valen de  3 a 4€. Así que ojo con esto que hay mucho mangante por ahí.




S2s




16  Programación / Scripting / Qué es profile name (en Netsh) en: 29 Mayo 2016, 13:18 pm
Hola

Estoy intentando conectarme a una red usando esta información:

Código:
SSID 4 : MOVISTAR_XXXXX
    Tipo de red             : Infraestructura
    Autenticaci¢n           : WPA2-Personal
    Cifrado                 : CCMP
    BSSID 1             : xx:xx:xx:xx:xx:xx
         Se¤al              : 46% 
         Tipo de radio      : 802.11n
         Canal              : 112
  Velocidades b sicas (Mbps): 6 12
    Otras velocidades (Mbps): 9 18 24 36 48 54


usando los siguiente parámentros


Código:
netsh wlan connect name==[profile name] ssid=xx:xx:xx:xx:xx:xx

Por no se lo que es [profile name]

la consola simpre me da error y me devuelve que no existe tal perfil

Gracias


cuando hago esto:

Código:
netsh wlan show profile

devuelve:
Código:
Perfiles de directiva de grupo (sólo lectura)
---------------------------------------------
    <Ninguno>

Perfiles de usuario
-------------------
    <Ninguno>

Mod: No borrar texto del post... deja inservible el tema entero.
17  Seguridad Informática / Seguridad / Nunca he tenido problemas con Virus o malware en: 28 Mayo 2016, 13:15 pm
Hola

Llevo unos 18 años teniendo ordenador. He tenido varios y ahora mismo tengo 4, dos PCs y un portátil, todos con windows, excepto 1 que tiene Linux y aparte de dos casos que ahora comentaré, jamás he tenido probemas con virus.


Tan solo  como he dicho dos casos, uno allá por el 1999 o 2000 que descubrí un virus en el PC que falseaba el tamaño real ocupado del disco.

Otro hace unos cuatro años al bajarme un programa desde softonic, que me cambiaba la dirección de la página principal de todos los navegadores, cuando encontré la fuente del problema que era un archivo que no podía borrar porque aparte que estaba oculto y no tenía extensión, no se podía borrar del modo tradicional, tuve que hacerlo desde fuera de windows, además de restaurar a un punto anterior.

Pero aparte de esto nada grave. No si es que quizás tenga malware en cualquiera de mis ordenadores pero no lo sepa o no me de cuenta, porque actúan en modo que yo, ni el antivirus los pueda detectar, como un bot por ejemplo.

Tengo una serie de costumbres como, no bajar programas directamente desde una página web si no están comprimidos. A no ser que sean páginas de confianza, como de Microsoft por ejemplo.

No ejecuto keygens y no uso cracks por lo menos en los sistemas de uso normal, siempre en sistemas aislados  (para estos fines) y sin conexión a internet, ni conectar pendrives.

Siempre analizo cualquier programa que bajo de Internet.

Y otra cosas que no digo, para evitar que cualquier creador de malware pueda usar dicha información para infectar.

Además, nunca entro en webs de pornografía, que son fuente de intrusiones y virus, en un instante. ¿Cómo lo se? Porque desde un sistema seguro (de pruebas le digo yo) que luego recupero o reinstalo en un instante he entrado y en ellas a base de dar a enlaces en poco tiempo han realizado intrusiones y me han descargado malware.

Sin emgargo en los sitemas de uso personal, y que uso normalemente. siempre tengo la duda de si hay algo que no he detectado... como spyware :¬¬

S2s







 
18  Seguridad Informática / Hacking Ético / Problema con un plugin que requiere estar conectado en cada uso en: 25 Mayo 2016, 03:03 am
Hola

Jamás he visto nada igual. Se trata de un plugin el cual sólo puedes usar cuando te registras en tal página y luego debes introducir el correo y la contraseña con la que te has registrado y un Serial.

Una vez hecho esto puedes usar el plugin completamente  o como suelen decir por aquí 'full'.

El inconvetiente es que cada vez que lo quiero usar debo estar conectado a Internet. Luego puedo desconectar y puedo seguir usando el plugin pero si cierro el programa que lo usa y luego lo vuelvo a abrir, de nuevo tengo que estar conectado a Internet para poder usar el plugin.

Supongo que se envía alguna información a alguna parte y luego recibe una confirmación.

¿Alguna idea de como evitar esto?  



Gracias



Raro es que no me hayan movido la pregunta, ya que he equivocado el término hacking, que nunca me acuerdo que no es cracking o ingeniería inversa.  

De todos modos ya lo he resuelto. Resulta quell plugin dispone de una forma de crear una licencia manualmente, una vez te registras y está activado puedes crear un archivo desde la web que te registras y como usuario registrado. Entonces abres el archivo y el programa queda activado.

En realidad lo que hace es bajar desde la web un archivo, cuando lo lees, el plugin crea otro archivo idéntico pero con distinto nombre y extensión en AllUsers/Datos de programa/...  que en realidad es un archivo de texto plano XML, pero con otra extensión.

Ahora si quiero usarlo en otra compu solo tengo que meter dicho archivo. O eso creo pues puede que esté vinculado al hostname, de mi compu.

s2s



19  Informática / Hardware / Portátiles Lenovo en: 24 Mayo 2016, 11:32 am
Hola

Estoy mirándome portátiles y algunos son carísimos. No soy muy exigente, pues por limitado que sea ya será mejor que el mío que tiene Vista como sistema predeterminado y ya tiene 8 añitos. Además, no soy muy fanático de los videojuegos, ni trabajo con diseño gráfico, así que no necesito componentes especiales en ese sentido.

He visto una marca bastante asequible, en comparación con otras que teniendo componentes similares cuesta mucho más barato. Se trata de Lenovo.

Nunca había visto ni escuchado hablar de esta marca.  ¿Me lo recomendáis?


Gracias
20  Programación / Desarrollo Web / webs que no paran de enviar y descargar datos en: 17 Mayo 2016, 00:49 am
Hola

Me hice un programa para controlar el tráfico de red, bytes de subida y bajada, siempre visible en el escritorio y sin molestar demasiado, permitiendo transparencia. Además me avisa cuando marco un límite.

He comprobado (por esto hice el programa), que algunas webs al entrar y estando totalmente cargadas no paran de enviar y descargar datos y a una velocidad de 1mb por segundo. De modo que en un par de minutos la suma de bytes enviados y bajados es de más de 100 mb.

Así que si en un momento dado usas alguna conexión de pago con límite de bytes, esto puede darte un disgusto.

A veces también sucede desde esas ventanas publicitarias que se abren si entras en páginas para descarga de Torrents y cosas así.

Aquí dejo un ejemplo, de una página aparentemente muy simple e inofensiva, pero que algo raro hace:

http://www.tdt1.com/canales-barcelona
(desde Chrome tiene un comportamiento normal, pero desde IE no para de descargar no se que)
Inicia el taskmanager (taskmgr.exe) y comprueba las funciones de red. Verás como al entrar no para de enviar y descargar datos.

¿Qué envían y qué descargan?

Gracias
Páginas: 1 [2] 3 4 5 6 7
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines