|
7031
|
Programación / .NET (C#, VB.NET, ASP) / Re: Ayuda Headers HttpWebRequest
|
en: 1 Julio 2014, 20:39 pm
|
@TMarmol Antes de nada gracias por compartir el "truquito", parece muy interesante una vez solucionado, ¿pero de verdad es tan facil engañar al servidor así?, me gustaría conocer el grado de efectividad de eso . Sobre el plugin de las etiquetas GeShi, este no es el lugar indicado para iniciar un debate sobre el tema, pero sí, está mega-bugged!, tanto la previsualización como el código final, hay ciertos caracteres conflictivos que ya reporté hace años pero nadie me hizo ni caso para intentar trastocarlo y corregirlos: => Tema: Las etiquetas "Code" no funcionan bien!PD: Puedes aportar tus experiencias en ese hilo o crear uno nuevo al respecto... Saludos!
|
|
|
7033
|
Programación / Scripting / Re: (Batch) Error "No se esperaba GOTO en este momento"
|
en: 1 Julio 2014, 04:39 am
|
Hola 1. Anda que buscar documentación de Batch en la wikipedia..., puedes acceder a la ayuda de cualquier comando, escribiendo el parámetro de ayuda: 2. El símbolo de la arroba (@) está relacionado al "echo" del comando (es innecesario), nada tiene que ver, y lo de los dos puntos ( : ) simplemente es otra forma aceptable de sintaxis. El error te indica que no se encuentra el comando (el archivo c:\windows\system32\choice.exe), es decir, que no existe en tu equipo, ahora, ¿porque motivo?, por estar usando un windows modificado con componentes capados, por tener "rota" la configuración de la variable de entorno PATH, o vete a saber, comprueba manualmente si tienes dicho archivo en "...\system32\" y si no lo tienes pues nada, a usar "Set /P" . Nota: La sintaxis de uso del comando CHOICE difiere un poco de WinXP a Windows 7/8. Saludos
|
|
|
7034
|
Programación / .NET (C#, VB.NET, ASP) / Re: Ayuda Headers HttpWebRequest
|
en: 1 Julio 2014, 00:50 am
|
No soy un experto en Redes, pero a mi entender " Simular el uso de un proxy" como explican en la página del addon, no creo que "simular" signifique solamente setear un par de Headers... o quizás si, no lo se, pero seguramente que ese servicio haga algo más como te han comentado... Aquí tienes algunas posibles razones por las que los valores que obtienes están en blanco, quizás pueda servir para descartar, según esto, se supone que si no usas un proxy los valores estarán vacios: In above sample code, HTTP_VIA is used to judge whether the client is using proxy server. If client uses proxy server, then the web method will try to obtain IP address behind the proxy server. In many situations, the IP addresses we get are probably the addresses of proxy server. Below is the information on HTTP proxy:
1. Not Use Any Proxy Server:
REMOTE_ADDR = IP address of client HTTP_VIA = No value or No display HTTP_X_FORWARDED_FOR = No value or No display
2. Use Transparent Proxies:
REMOTE_ADDR = IP address of proxy server HTTP_VIA = IP address of proxy server HTTP_X_FORWARDED_FOR = Real IP address of client
3. Use Normal Anonymous Proxies:
REMOTE_ADDR = IP address of proxy server HTTP_VIA = IP address of proxy server HTTP_X_FORWARDED_FOR = IP address of proxy server
4. Use Distorting Proxies:
REMOTE_ADDR = IP address of proxy server HTTP_VIA = IP address of proxy server HTTP_X_FORWARDED_FOR = Random IP address
5. Use High Anonymity Proxies (Elite proxies):
REMOTE_ADDR = IP address of proxy server HTTP_VIA = No value or No display HTTP_X_FORWARDED_FOR = No value or No display Saludos
|
|
|
7035
|
Programación / Scripting / Re: (Batch) Error "No se esperaba GOTO en este momento"
|
en: 30 Junio 2014, 22:20 pm
|
Por un lado la variable está mal como tu dices, estás dejando espacios entre el símbolo "=" cosa que en Batch..., y por otro lado también está mal la isntrucción del goto end:, que el simbolo se debe poner al principio.
De todas formas te sugiero que lo hagas así: Choice /C "12" /M "What will you do today?" :1 :2 :End
Saludos
|
|
|
7036
|
Programación / .NET (C#, VB.NET, ASP) / Re: ARREGLOS VISUAL.NET
|
en: 30 Junio 2014, 18:45 pm
|
es muy facil de adaptar, incluso puedes crear una función de uso genérico para devolver todos los datos necesarios (dias, semanas gps) en un objeto, ejemplo: Public Class GPSTest : Inherits Form ' TKey = Day of year ' TValue = GPS Week Friend ReadOnly GPSDictionary As Dictionary(Of Integer, Integer) = Me. GetGPSDictionary Private Function GetGPSDictionary () As Dictionary(Of Integer, Integer) Dim ThisYear As Integer = Now.Year Dim DaysInThisYear As Integer = (From month As Integer In Enumerable.Range(1, 12) Select DateTime.DaysInMonth(ThisYear, month)).Sum Dim GPSWeeks As IEnumerable(Of Integer) = Enumerable.Range(1773 - 1, 1825) For Day As Integer = 1 To DaysInThisYear Result.Add(Day, GPSWeeks(DatePart(DateInterval.WeekOfYear, New DateTime(ThisYear, 1, 1).AddDays(Day - 1)))) Next Day Return Result End Function Private Sub Test() Handles MyBase.Load MessageBox.Show(Me.GPSDictionary(CInt(InputBox("Intoduce un dia del año", "Dia del año", 1))), "Semana GPS:", MessageBoxButtons.OK, MessageBoxIcon.Information) Application.Exit() End Sub End Class
Saludos
|
|
|
7037
|
Programación / .NET (C#, VB.NET, ASP) / Re: Crear una base de datos local...
|
en: 30 Junio 2014, 17:32 pm
|
Si realmente lo que precisas es una base de datos, es decir, si debes manejar distintos usuarios con sus distintos datos personales en una misma aplicación, entonces mírate este código, lo escribí hace MUUUCHO tiempo (vamos, que no es muy bonito y se puede mejorar mucho) pero hace todo lo que precisas, y el archivo de la "db" queda serializado. => http://pastebin.com/5sT2EjLd
Aunque la verdad, yo prefiero usar una db local en formato XML, es decir, un archivo de texto plano que se pueda interpretar y que me permite visualizar el contenido y hacer cambios manuales si resulta necesario, si quieres un ejemplo completo de esto: => http://pastebin.com/zuwSve8Z ' Write a song element. XMLHelper.Write_Elements(XmlWriter, { _ {"Name", "My Song file.mp3"}, {"Year", "2013"}, {"Genre", "Rock"} _ }, Xml.Formatting.None)
Para usar una configuración de usuario más "normal" y mantenerla persistente en tu aplicación: => My.Settings1. Primero creas las settings necesarias (Name, BirthDate, etc) en las propiedades de tu proyecto. Ejemplo que hice al vuelo: Public Class MySettingsExample : Inherits form Dim WithEvents tb_Name As New TextBox Private Shadows Sub OnLoad() Handles MyBase.Load Me.Controls.Add(Me.tb_Name) Me.LoadUserSettings() End Sub Private Sub LoadUserSettings() If Not String.IsNullOrEmpty(My.Settings.Name) Then Me.tb_Name.Text = My.Settings.Name End If End Sub Private Sub tb_Name_TextChanged(ByVal sender As Object, ByVal e As EventArgs) _ Handles tb_Name.TextChanged Dim _name As String = CStr(sender.Text) If Not String.IsNullOrEmpty(_name) Then With My.Settings .Name = _name .Save() ' .Reload() End With End If End Sub End Class
Saludos
|
|
|
7038
|
Programación / .NET (C#, VB.NET, ASP) / Re: Aviso estilo Messenger
|
en: 30 Junio 2014, 17:04 pm
|
En mi opinión, lo suyo sería usar la alternativa FlashWindowEx(tended) para tener un mayor control sobre como actua el flash y su personalización xD. Ejemplo de uso, para flashear el icono de la barra de tareas hasta que la ventana se vuelva activa: Me.FlashWindow(Me.Handle, FlashFlags.TaskBar Or FlashFlags.Until_Foreground)
Te dejo el código completo que escribí, por si te sirve: ''' <summary> ''' Flashes the specified window. ''' It does not change the active state of the window. ''' For more info see here: ''' http://msdn.microsoft.com/en-us/library/windows/desktop/ms679347%28v=vs.85%29.aspx ''' </summary> ''' <param name="pwfi">A pointer to a FLASHWINFO structure.</param> ''' <returns> ''' The return value specifies the window's state before the call to the FlashWindowEx function. ''' If the window caption was drawn as active before the call, the return value is nonzero. ''' Otherwise, the return value is zero. ''' </returns> <System.Runtime.InteropServices.DllImport("user32.dll")> Private Shared Function FlashWindowEx( ByRef pwfi As FLASHWINFO ) As <System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.Bool)> Boolean End Function ''' <summary> ''' Contains the flash status for a window and the number of times the system should flash the window. ''' For more info see here: ''' http://msdn.microsoft.com/en-us/library/windows/desktop/ms679348%28v=vs.85%29.aspx ''' </summary> <System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)> Public Structure FLASHWINFO ''' <summary> ''' The size of the structure, in bytes. ''' </summary> Public cbSize As UInteger ''' <summary> ''' A handle to the window to be flashed. ''' The window can be either opened or minimized. ''' </summary> Public hwnd As IntPtr ''' <summary> ''' The flash status. ''' </summary> Public dwFlags As FlashFlags ''' <summary> ''' The number of times to flash the window. ''' </summary> Public uCount As UInteger ''' <summary> ''' The rate at which the window is to be flashed, in milliseconds. ''' If dwTimeout is zero, the function uses the default cursor blink rate. ''' </summary> Public dwTimeout As UInteger End Structure ''' <summary> ''' Contains the flash status for a window. ''' </summary> <System.ComponentModel.Description("Enum used as 'FlashFlags' parameter in 'FlashWindow' function.")> <Flags> Public Enum FlashFlags As Integer ''' <summary> ''' Stop flashing. ''' The system restores the window to its original state. ''' </summary> [Stop] = 0I ''' <summary> ''' Flash the window caption. ''' </summary> Caption = 1I ''' <summary> ''' Flash the taskbar button. ''' </summary> TaskBar = 2I ''' <summary> ''' Flash both the window caption and taskbar button. ''' This is equivalent to setting the 'Caption Or TaskBar' flags. ''' </summary> All = 3I ''' <summary> ''' Flash continuously, until the 'Stop' flag is set. ''' </summary> Until_Stop = 4I ''' <summary> ''' Flash continuously until the window comes to the foreground. ''' </summary> Until_Foreground = 12I End Enum ''' <summary> ''' Flashes the specified window. ''' It does not change the active state of the window. ''' </summary> ''' <param name="Handle"> ''' Indicates the handle to the window to flash. ''' </param> ''' <param name="FlashFlags"> ''' Indicates the flash flags. ''' </param> ''' <param name="FlashCount"> ''' Indicates the number of times to flash the window. ''' </param> ''' <param name="FlashDelay"> ''' Indicates the rate at which the window is to be flashed, in milliseconds. ''' If dwTimeout is zero, the function uses the default cursor blink rate. ''' </param> ''' <returns> ''' The return value specifies the window's state before the call to the FlashWindowEx function. ''' If the window caption was drawn as active before the call, the return value is nonzero. ''' Otherwise, the return value is zero. ''' </returns> Public Function FlashWindow(ByVal [Handle] As IntPtr, ByVal FlashFlags As FlashFlags, Optional ByVal FlashCount As UInteger = UInteger.MaxValue, Optional ByVal FlashDelay As UInteger = 0UI) As Boolean Dim fInfo As New FLASHWINFO() With fInfo .cbSize = Convert.ToUInt32(System.Runtime.InteropServices.Marshal.SizeOf(fInfo)) .hwnd = [Handle] .dwFlags = FlashFlags .uCount = FlashCount .dwTimeout = FlashDelay End With Return FlashWindowEx(fInfo) End Function
Saludos
|
|
|
7039
|
Programación / .NET (C#, VB.NET, ASP) / Re: Combinaciones numericas por posicion con numeros guias
|
en: 29 Junio 2014, 19:47 pm
|
La cosa es, si el número 'límite' de combinaciones es X, ¿como se han se elegir las combinaciones exactamente? es decir, que criterio debe seguir la función que genera números para saltar por ejemplo de 1-8-10-11-23-43 a 1-28-30-33-34-35. Buena pregunta, siempre me ha traido de cabeza este problema del compañero @ Luis xD. A ver si hoy es el dia en que resuelvo lo que precisas : Output: 01 | 02 | 09 | 27 | 33 | 49 --------------------------- 01 | 03 | 09 | 20 | 33 | 45 --------------------------- 01 | 07 | 08 | 13 | 36 | 42 --------------------------- 01 | 07 | 08 | 18 | 19 | 35 --------------------------- 01 | 07 | 14 | 16 | 36 | 48 --------------------------- 01 | 07 | 24 | 28 | 33 | 47 --------------------------- 01 | 09 | 11 | 13 | 28 | 46 --------------------------- 01 | 11 | 15 | 19 | 21 | 34 --------------------------- 02 | 03 | 13 | 40 | 49 | 50 --------------------------- 02 | 06 | 10 | 30 | 36 | 45 --------------------------- 02 | 12 | 23 | 30 | 40 | 44 --------------------------- 02 | 21 | 25 | 30 | 38 | 45 --------------------------- 03 | 04 | 05 | 06 | 38 | 46 --------------------------- 03 | 04 | 08 | 24 | 28 | 44 --------------------------- 03 | 06 | 12 | 18 | 30 | 49 --------------------------- 03 | 07 | 25 | 27 | 32 | 45 --------------------------- 03 | 10 | 22 | 40 | 44 | 50 --------------------------- 03 | 11 | 25 | 26 | 29 | 33 --------------------------- 03 | 12 | 25 | 34 | 35 | 36 --------------------------- 03 | 13 | 23 | 31 | 36 | 50 --------------------------- 03 | 17 | 19 | 43 | 44 | 46 --------------------------- 03 | 21 | 24 | 29 | 31 | 48 --------------------------- 04 | 05 | 13 | 25 | 37 | 46 --------------------------- 04 | 07 | 19 | 24 | 33 | 40 --------------------------- 04 | 09 | 13 | 29 | 32 | 40 --------------------------- 04 | 17 | 23 | 37 | 39 | 45 --------------------------- 04 | 25 | 28 | 35 | 36 | 41 --------------------------- 05 | 07 | 14 | 18 | 20 | 38 --------------------------- 05 | 09 | 20 | 25 | 29 | 35 --------------------------- 05 | 13 | 21 | 29 | 38 | 50 --------------------------- 05 | 15 | 16 | 21 | 37 | 43 --------------------------- 05 | 15 | 20 | 22 | 26 | 29 --------------------------- 05 | 19 | 21 | 39 | 41 | 46 --------------------------- 06 | 07 | 13 | 15 | 20 | 44 --------------------------- 06 | 08 | 27 | 28 | 31 | 39 --------------------------- 06 | 09 | 22 | 23 | 37 | 42 --------------------------- 06 | 09 | 23 | 36 | 40 | 47 --------------------------- 06 | 12 | 23 | 29 | 35 | 47 --------------------------- 07 | 08 | 26 | 31 | 40 | 41 --------------------------- 07 | 11 | 14 | 37 | 38 | 45 --------------------------- 07 | 11 | 15 | 19 | 23 | 36 --------------------------- 07 | 11 | 18 | 27 | 44 | 46 --------------------------- 07 | 13 | 18 | 30 | 31 | 38 --------------------------- 08 | 12 | 17 | 26 | 48 | 49 --------------------------- 08 | 23 | 24 | 25 | 32 | 47 --------------------------- 08 | 26 | 28 | 37 | 39 | 44 --------------------------- 09 | 10 | 14 | 22 | 33 | 49 --------------------------- 09 | 11 | 18 | 19 | 38 | 40 --------------------------- 09 | 11 | 18 | 21 | 38 | 48 --------------------------- 09 | 13 | 20 | 29 | 37 | 45 --------------------------- 09 | 13 | 22 | 30 | 37 | 43 --------------------------- 09 | 14 | 15 | 27 | 44 | 45 --------------------------- 10 | 20 | 37 | 39 | 41 | 49 --------------------------- 11 | 13 | 20 | 22 | 24 | 49 --------------------------- 11 | 14 | 16 | 23 | 45 | 48 --------------------------- 11 | 17 | 19 | 21 | 25 | 45 --------------------------- 12 | 13 | 23 | 24 | 32 | 48 --------------------------- 12 | 19 | 24 | 37 | 38 | 42 --------------------------- 12 | 25 | 29 | 30 | 44 | 46 --------------------------- 13 | 14 | 19 | 24 | 34 | 40 --------------------------- 13 | 16 | 21 | 29 | 33 | 40 --------------------------- 13 | 22 | 23 | 29 | 35 | 49 --------------------------- 14 | 15 | 27 | 30 | 33 | 41 --------------------------- 14 | 18 | 23 | 42 | 45 | 47 --------------------------- 14 | 21 | 27 | 39 | 43 | 47 --------------------------- 15 | 19 | 28 | 31 | 38 | 40 --------------------------- 15 | 20 | 27 | 35 | 42 | 45 --------------------------- 16 | 18 | 21 | 30 | 49 | 50 --------------------------- 16 | 23 | 24 | 38 | 45 | 48 --------------------------- 19 | 30 | 42 | 43 | 44 | 49 --------------------------- 20 | 22 | 26 | 33 | 40 | 41 --------------------------- 21 | 29 | 31 | 38 | 47 | 48 --------------------------- 22 | 29 | 31 | 34 | 45 | 47 --------------------------- 23 | 26 | 29 | 31 | 35 | 38 --------------------------- 23 | 28 | 30 | 33 | 39 | 50 --------------------------- 23 | 36 | 43 | 44 | 46 | 49 --------------------------- 24 | 28 | 35 | 37 | 45 | 48 --------------------------- 25 | 31 | 35 | 37 | 39 | 46 --------------------------- 28 | 30 | 36 | 43 | 48 | 50 ---------------------------
Código: (Copiar, pegar, y compilar) Public Class ComboTest : Inherits Form #Region " Objects, Vars " ' La Class "Random", es necesaria para desordenar una colección ' y esta declaración tiene que ir siempre fuera de cualquier Sub. Private ComboRandomizer As New Random ' El control que creo en tiempo de ejecución, donde mostraré las combinaciones. Private rtb As New RichTextBox With { .Dock = DockStyle.Fill, .Font = New Font("Lucida Console", 10.0F) } ' Una "palanca" para habilitar/deshabilitar el bloque de depuración. Private EnableDebug As Boolean = False ' Instancio una lista donde iremos guardando cada combinación obtenida. Private Combos As New List(Of Integer()) ' Otra lista donde le daré el formato deseado a los números. Dim ComboStrings As List(Of String) = Nothing ' El máximo de combinaciones. Private Property MaxCombos As Integer = 80I ' El máximo de longitud para cada combinación. Private Property MaxComboLength As Integer = 6I ' Los números "guías" que usaremos para rellenar cada combinación. Private ReadOnly Numbers As Integer() = (From n As Integer In ("01-02-03-04-05-06-07-08-09-10-11-12-13-14-15-16-17-18-19-20-" & "21-22-23-24-25-26-27-28-29-30-31-32-33-34-35-36-37-38-39-40-" & "41-42-43-44-45-46-47-48-49-50" ).Split({"-"}, StringSplitOptions.RemoveEmptyEntries)).ToArray #End Region #Region " Constructors " ' De este Sub no hagas caso, es el constructor del Form. Public Sub New() ' This call is required by the designer. ' Add any initialization after the InitializeComponent() call. InitializeComponent() ' Añado el control al Form. Me.Controls.Add(rtb) End Sub #End Region #Region " Event-Handlers " Private Sub ComboTest() Handles MyBase.Load Me.DoCombos() Me.PrintCombos() End Sub #End Region #Region " Methods " ' La función que se encarga de desordenar y devolverte una combinación. ' By Elektro. Friend Function GetRandomCombination (Of T )([Collection] As IEnumerable (Of T ), [Length] As Integer) As IEnumerable(Of T) Return (From Item As T In [Collection] Order By ComboRandomizer. Next Take [Length ]). ToArray End Function Private Sub DoCombos() ' Añadir combinaciones a la lista, hasta que la lista tenga 'MaxComboLength' (80) elementos. Do Until Combos.Count = (MaxCombos - 1) ' Obtengo una combinación. Dim tmpCombo As Integer() = Me.GetRandomCombination(Of Integer)(Numbers, MaxComboLength) ' Ordeno los elementos de la combinación, de menos a mayor. Array.Sort(tmpCombo) ' Añado la combinación a la lista. Combos.Add(tmpCombo) Loop ' Ordeno los elementos de la lista, basandome en el orden de los elementos de cada Array. ' NOTA: Puede tener fallos al ordenar, no aseguro que el orden sea perfecto. Combos = (From Combo As Integer() In Combos Order By Convert.ToDecimal(String.Join("", Combo)) Ascending).ToList Combos = (From Combo As Integer() In Combos Order By Combo.First Ascending).ToList ' Además, creo utra lista Strings, para darle formato a cada combo numérico, ' y añadirle así un "0" a los números del "1" al "9" y que quede más bonito en la previsualización xD. Me.ComboStrings = (From Combo In Combos Select (String.Join(" | ", From Value As String In Combo Select If(Value.Length = 1, "0" & Value, Value)))).ToList ' El bloque de depuración. ' Este bloque entero es para testear el formato que le quieras dar. If Me.EnableDebug Then Dim sb As New System.Text.StringBuilder With sb For Index As Integer = 0 To (MaxCombos - 1) sb.AppendLine(String.Format("Combo sin formato:")) sb.AppendLine(String.Join(", ", Combos(Index))) sb.AppendLine() sb.AppendLine(String.Format("Combo con formato:")) sb.AppendLine(String.Join(", ", ComboStrings(Index))) MessageBox.Show(sb.ToString, "", MessageBoxButtons.OK, MessageBoxIcon.Information) sb.Clear() Next Index End With End If #End If End Sub Private Sub PrintCombos() ' Muestro los Combos en el control. With Me.rtb .SuspendLayout() For Each Combo As String In Me.ComboStrings .AppendText(Combo) .AppendText(Environment.NewLine & New String("-", Combo.Length) & Environment.NewLine) Next Combo .ResumeLayout() .Select(0, 0) End With End Sub #End Region End Class
PD: ¿Era eso lo que querías o tampoco? xD. Saludos
|
|
|
7040
|
Programación / Programación General / Re: Ayuda para modificar un programa para windows
|
en: 29 Junio 2014, 19:19 pm
|
Además de ser algo "imposible", no se trata de un programa opensource, los terminos de uso de la aplicación seguramente prohibiran la ingeniría inversa es decir cualquier tipo de manipulación intencionada, y no se si llegará a ser incluso ilegal. Aparte, se que lo pides sin maldad pero nadie va a desarrollarte un programa de tal magnitud (el hardware necesario para testear, el desarrollo de los algoriitmos y el chequeo de los controles de errores, las semanas o meses de tiempo invertido en hacer algo que no sea una chapuza, casi nada!), solamente por sentirse un buen samaritano para hacerte un favor, a menos que pagues lo que vale ese trabajo. De todas formas parece que alguien se ha molestado en compartir un proyecto sencillo de usar y que parece eficiente, eso si, trabaja con imagenes estáticas, pero puedes empezar a trastear por aquí: http://www.codeproject.com/Tips/561129/Face-Detection-with-Lines-of-Code-VB-NETSaludos
|
|
|
|
|
|
|