Autor
|
Tema: Librería de Snippets para VB.NET !! (Compartan aquí sus snippets) (Leído 529,062 veces)
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
no eres quien para llamar noobs a los que no saben PHP... Tengo que citarlo, porque me parece muy fuerte... Cuando te pase la lista de los lenguajes que había tocado y no había aprendido, estaba VB.NET y PHP, es decir que yo mismo me califico como noob... Lo que más bueno me parece, es que m estás acusando, de a ver llamado noob a alguien que no sepa PHP... Hombre, en ciertas ocasiones puede, pero, porque me vienen preguntando (no en el foro, si no por Skype), cosas y digo, es que no sabes Googlear... Y cosas tales, pero yo en mi vida, he tomado a nadie por Noob en el tema de la programación en el foro, y si lo ha parecido ha sido p**a coincidencia... Sobre la String, eran las 12 de la noche y llevaba prisa por irme... Me dí cuenta, pero ni me pare a corregirlo... Puede que haya hecho Copy/paste, pero porque llevaba prisa... Si no, me hubiese parado a comprobar bien lo que hacía eso.. Y es más hasta lo sospechaba, pero como ya digo llevaba prisa tio, que se le va a hacer. Edit: En SO no te digo que no..., pero aquí en el foro, todavía no he tomado a nadie como noob.
|
|
« Última modificación: 31 Julio 2013, 15:35 pm por Ikillnukes »
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
Nuevo Snippet, calcular distancia recorrida con el ratón: Public Class Form1 #Region "Variables" Private Enum eUnidades 'Las unidades de nuestro "odometro" serán metro o kilometros Metros = 0 Kilometros End Enum Private UnidadActual As eUnidades Private NOMBRE_FICHERO_ODOMETER As String = "MouseOdometerNET.tmp" 'Fichero donde se guardará la distancia recorrida (siempre en milimetros) Private NOMBRE_FICHERO_ODOMETER_Config As String = "MouseOdometerNET.cfg" 'Fichero donde se guardará si la distancia está en metros o kilometros Private DistanciaRecorridaMM As Single 'Distancia total recorrida (siempre en milimetros) Private Structure sPointMM 'Coordenadas del raton en milímetros Dim X As Single Dim Y As Single End Structure Private gDPIX As Integer = 96 'DPIs de la pantalla Private gDPIY As Integer = 96 Private WithEvents TMR_guardarDistancia As New Timer 'Timer que periodicamente guarda la distancia en el fichero Private WithEvents TMR_capturaPosicionMouse As New Timer 'Timer de captura de la posición del raton Private puntoAnterior As New Point(0, 0) 'Punto capturado anteriormente #End Region #Region "Ficheros. Lectura / Escritura" Private Sub EscribirFichero(ByVal Fichero As String, ByVal Data As String) Dim objFileWrite = New System.IO.StreamWriter(Fichero, False, System.Text.Encoding.Default) objFileWrite.Write(Data) objFileWrite.Flush() objFileWrite.Close() End Sub Private Function LeerFichero(ByVal Fichero As String) As String Dim objFileRead As New System.IO.StreamReader(Fichero) Dim sData As String = objFileRead.ReadToEnd objFileRead.Close() Return sData End Function #End Region #Region "Eventos a nivel de formulario" Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing TMR_capturaPosicionMouse.Enabled = False TMR_guardarDistancia.Enabled = False TMR_capturaPosicionMouse.Dispose() TMR_guardarDistancia.Dispose() 'Cuando cerramos el programa, se graba la distancia recorrida EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER, DistanciaRecorridaMM.ToString) GC.Collect() End Sub 'Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged ' If Me.WindowState = FormWindowState.Minimized Then ' Me.Visible = False ' End If 'End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim g As Graphics = Me.CreateGraphics() gDPIX = g.DpiX '¿Cual son los DPI de la pantalla? gDPIY = g.DpiY Me.WindowState = FormWindowState.Minimized NotifyIcon1.ShowBalloonTip(20, "Información", "MouseOdemeterNET Ejecutándose", ToolTipIcon.Info) IniciarParametros() 'Carga los "parámetros" SetCheckUnidadMenu() 'Activa o desactiva la unidad de medida acutal en el ContextMenu 'Si no existe el fichero con la distancia recorrida, se crea un nuevo If IO. File. Exists(CarpetaTempWindows () & NOMBRE_FICHERO_ODOMETER ) = False Then EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER, "0") DistanciaRecorridaMM = 0 Else 'En caso contrario, se carga la distancia recorrida Dim s As String = LeerFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER) DistanciaRecorridaMM = CType(s, Single) End If 'Inicializamos el timer de la captura de la posicion del raton TMR_capturaPosicionMouse.Interval = 250 TMR_capturaPosicionMouse.Enabled = True 'Cada "60 segundos" se irá guardando la distancia recorrida TMR_guardarDistancia.Interval = 60000 TMR_guardarDistancia.Enabled = True 'Obtenemos el punto acual donde se encuentra el raton puntoAnterior = Cursor.Position Me.Width = 0 Me.Height = 0 End Sub #End Region #Region "Calculo de la distancia" 'Convierte una posicion de pixel en pantalla a su valor en milimetros Public Function PIXELtoMM(ByVal ValorPixel As Integer, ByVal ValorDPI As Integer) As Single Return (ValorPixel / ValorDPI * 25.4) 'Return (Format(((25.4 * ValorPixel) / ValorDPI), "0.0000")) End Function ' Calcula la distancia entre dos puntos (expresados en pixels) Private Function DistanciaEntreDosPuntos(ByVal Origen As Point, ByVal Destino As Point) As Single If (Origen.X = Destino.X) And (Origen.Y = Destino.Y) Then Return 0 Else 'Paso 1: los puntos pasados como "pixels" se convierten en coordenadas cartesianas en "milimetros" Dim tmpPointOrigenMM As sPointMM Dim tmpPointDestinoMM As sPointMM tmpPointOrigenMM.X = PIXELtoMM(Origen.X, gDPIX) tmpPointOrigenMM.Y = PIXELtoMM(Origen.Y, gDPIY) tmpPointDestinoMM.X = PIXELtoMM(Destino.X, gDPIX) tmpPointDestinoMM.Y = PIXELtoMM(Destino.Y, gDPIY) 'Paso 2: Aplicar la formula de la distancia entre dos puntos para saber la distancia en milimetros 'd=SQR[ (destino.x-origen.x)^2 + (destino.y-origen.y)^2 ] Dim Xdist As Single = Math.Pow((tmpPointDestinoMM.X - tmpPointOrigenMM.X), 2) Dim Ydist As Single = Math.Pow((tmpPointDestinoMM.Y - tmpPointOrigenMM.Y), 2) Return Math.Sqrt(Xdist + Ydist) End If End Function #End Region #Region "Timers" 'Timer que va guardando la distancia en un fichero Private Sub TMR_guardarDistancia_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TMR_guardarDistancia.Tick EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER, DistanciaRecorridaMM.ToString) End Sub 'Timer que va capturando la posición del raton Private Sub TMR_capturaPosicionMouse_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TMR_capturaPosicionMouse.Tick 'Oculta el "formulario". Esto se hace solo la primera vez que se entra en este timer Static bHecho As Boolean If bHecho = False Then bHecho = True Me.Visible = False End If Dim MousePosition As Point MousePosition = Cursor.Position 'Actualiza la variable con la distancia recorrida DistanciaRecorridaMM += DistanciaEntreDosPuntos(puntoAnterior, MousePosition) puntoAnterior.X = MousePosition.X puntoAnterior.Y = MousePosition.Y 'Muesta la distancia en el ContextMenu Select Case UnidadActual Case eUnidades.Metros DistanciaToolStripMenuItem.Text = DistanciaRecorridaMM / 1000 & " m" Case eUnidades.Kilometros DistanciaToolStripMenuItem.Text = DistanciaRecorridaMM / 1000000 & " km" End Select 'y en el "caption" del NotifyIcon NotifyIcon1.Text = "MouseOdometerNET (" & DistanciaToolStripMenuItem.Text & ")" End Sub #End Region #Region "ContextMenu" '¿Cerrar la aplicación? Private Sub CerrarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CerrarToolStripMenuItem.Click If MessageBox.Show("Oh Dios mío. ¿Estás seguro que deseas volver a la soledad del escritorio de Windows?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then Me.Close() End If End Sub '¿Resetear la distancia recorrida? Private Sub ResetearToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ResetearToolStripMenuItem.Click If MessageBox.Show("¿Estás seguro que deseas resetear la distancia recorrida?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER, "0") DistanciaRecorridaMM = 0 End If End Sub 'Seleccionar la distancia como "Metros" Private Sub MetrosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MetrosToolStripMenuItem.Click UnidadActual = eUnidades.Metros EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER_Config, UnidadActual) SetCheckUnidadMenu() End Sub 'Seleccionar la distancia como "Kilometros" Private Sub KilometrosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KilometrosToolStripMenuItem.Click UnidadActual = eUnidades.Kilometros EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER_Config, UnidadActual) SetCheckUnidadMenu() End Sub #End Region #Region "Miscelanea" 'Devuelve cual es la carpeta "Temporal" de Windows Private Function CarpetaTempWindows() As String Dim s As String s = IO.Path.GetTempPath If s.EndsWith("\") = False Then s &= "\" Return s End Function 'Activa o desactiva la unidad de distancia en el ContextMenu Private Sub SetCheckUnidadMenu() Select Case UnidadActual Case eUnidades.Kilometros KilometrosToolStripMenuItem.CheckState = CheckState.Checked MetrosToolStripMenuItem.CheckState = CheckState.Unchecked Case eUnidades.Metros KilometrosToolStripMenuItem.CheckState = CheckState.Unchecked MetrosToolStripMenuItem.CheckState = CheckState.Checked End Select End Sub 'Inicia los "parámetros", de tal forma que si cerramos el programa y luego lo volvemos a ejecutar, 'Se inicializara la "unidad" de medida anterior Private Sub IniciarParametros() If IO. File. Exists(CarpetaTempWindows () & NOMBRE_FICHERO_ODOMETER_Config ) = False Then UnidadActual = eUnidades.Metros EscribirFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER_Config, UnidadActual) Else Dim s As String = LeerFichero(CarpetaTempWindows() & NOMBRE_FICHERO_ODOMETER_Config) UnidadActual = CType(s, eUnidades) End If End Sub #End Region End Class
Fuente: http://www.gamefilia.com/ollydbg/11-07-2009/24484/cuantos-kilometros-recorre-tu-raton-adivinalo-ahoraSource: http://blog.transitopesado.com/blog/file.axd?file=2011%2f2%2fMouseOdometerNET_source.zipUn saludo. PD: Con esto voy a poder hacer mi app, ahora solo me falta saber cuantas letras clico al día... Según Drvy vio por ahí cada 1000 teclas son 20 calorías, pues ale, a hacer reglas de 3... Y así puedo sacar cuantas calorías se queman xD Que te parece?
|
|
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.874
|
yo en mi vida, he tomado a nadie por Noob en el tema de la programación Ahá... xD Que bueno es saber CSS y HTML y un poco de PHP. Es la ostia los noobs que son algunos.
[Offtopic] No subestimar a los demás, alguien podría estar pensando lo mismo sobre ti en .NET PD: La otra cita es para que recuerdes el buen consejo de Novlucker. Si quieres aceptar mi consejo hazlo, sino pues no lo hagas, pero ya te he dicho lo que pienso y tu también lo acabas de hacer, ya no es necesario que sigamos haciendo más offtopics. Saludos
|
|
|
En línea
|
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
Eh, eh, eh! xDD Me estás citando temas de MP xD Eso es privado, además, eso es en StackOverFlow, aquí no he visto nadie noob, solo que lo piden todo muy hecho, vamos como soy yo... xD Ale, hasta aquí mi último offtopic, no quiero quedar yo como el malo, ostias! Maemia, vas y me sacas un MP que no tiene nada que ver con EHN, pero a que juegas? LOL xDD PD: No te tomes a mal la expresión "a que juegas"
Un saludo.
[Offtopic] No subestimar a los demás, alguien podría estar pensando lo mismo sobre ti en .NET Por ejemplo, medio foro... xD Edit: Pero que digo? xD Si eso es un topic, es verdad, me reitero a lo dicho, pero por igual, me refería a StackOverflow, "la comunidad del código hecho", si tu lo sabes bien, que algunos preguntan unas cacho burradas que pa que...
|
|
« Última modificación: 31 Julio 2013, 15:33 pm por Ikillnukes »
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
Edit: Pero que digo? xD Si eso es un topic, es verdad, me reitero a lo dicho, pero por igual, me refería a StackOverflow, "la comunidad del código hecho", si tu lo sabes bien, que algunos preguntan unas cacho burradas que pa que... Mientras tu te molestabas en buscar el topic yo me estaba reiterando en lo que he dicho, pido perdón... Es más, si se me permite voy a citar un topic de StackOverFlow en el que creo que me vais a dar la razón... La super ultra mega pregunta de PHP: http://stackoverflow.com/questions/17475292/no-database-selected-on-php/17475317#17475317Solo a ese topic me refería (porque no encuentro preguntas muy noobs, bueno puede que algunas, pero son fallos tontos que cualquiera podría tener, hasta yo mismo), no me digáis, que no tengo razón, por lo menos quien sepa de PHP, pensará que ese tío que ha hecho la pregunta es un burro... No me digáis que no, porque eso es ya trolear... Puede que llevéis razón, en que otra persona puede estar pensando lo mismo de mi en .NET, pero eso no me quita a mi, de defender lo que si se en PHP
Y ya dejemos desviar el tema... Que os parece el Snippete que me he encontrado por ahí?
|
|
« Última modificación: 31 Julio 2013, 15:40 pm por Ikillnukes »
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
|
z3nth10n
Desconectado
Mensajes: 1.583
"Jack of all trades, master of none." - Zenthion
|
Pincha donde dice " Cita de: Ikillnukes" y verás lo que ocurre... Saludos. Ya no me dí cuenta de hacerlo, me di cuenta más tarde xD Anda, que chulo... PD: Sigues sin opinar el Source que he encontrado..
|
|
« Última modificación: 31 Julio 2013, 16:12 pm por Ikillnukes »
|
En línea
|
⏩ Interesados hablad por Discord.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.874
|
PD: Sigues sin opinar el Source que he encontrado.. ¿Porque me toca siempre a mi opinar todos los snippets q posteas? xD Si fuese un snippet tuyo opinaria, o en caso de que tuviese errores o se pudiese mejorar pues comentaria todos esos aspectos... ...¿pero que leches quieres q diga de ese snippet? xD, pues me parece un snippet muy ...peculiar, vaya ...que no le encuentro utilidad alguna , pero bueno seguro que alguna utilidad se le podrá dar, aunque sea por pura curiosidad de saber cuantos "kilometros" recorremos a diario... Saludos.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.874
|
Guardar y recuperar datos en una aplicación, por ejemplo si la aplicación se mata después de un bug o si reiniciamos el Pc (de forma brusca sin esperar a que las aplicaciones se cierren), etc... El code es genérico y está optimizado para salvaguardar los datos (items) de un Listview, pero se puede modificar fácilmente para usarlo con todo tipo de datos... PD: Esto es una traslación con pocas mejoras de un code de C# que me proporcionó Novlucker, así que los créditos para él. #Region " Backup and Recovery Listview Items " ' [ Backup and Recovery Listview Items ] ReadOnly BackupFile As String = "Recovery.tmp" ' File conaining the data to recover. Private BackupData As New List(Of ListViewItem) ' Storage for the data to backup. Private BinaryFormat As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter() Private Sub Backup(ByVal ListView As ListView) BackupData.Clear() Select Case ListView.Items.Count Case 0 Try : IO. File. Delete(BackupFile ) : Catch : End Try ' We don't need the BackupFile if it will not contains anything to recover... Case Else BackupData.AddRange(ListView.Items.Cast(Of ListViewItem)) Using Writter As New IO.FileStream(BackupFile, IO.FileMode.Create) BinaryFormat.Serialize(Writter, BackupData) End Using End Select End Sub Private Sub Recovery(ByVal ListView As ListView) If IO. File. Exists(BackupFile ) Then Using Reader As New IO.FileStream(BackupFile, IO.FileMode.Open) BackupData = DirectCast(BinaryFormat.Deserialize(Reader), List(Of ListViewItem)) End Using ListView.Items.AddRange(BackupData.ToArray()) End If End Sub #End Region
Ejemplo de uso: Para guardar todos los items de un listview en un archivo temporal ...por ejemplo cada 60 segundos: WithEvents BackupTimer As New Timer With {.Interval = 60 * 1000, .Enabled = True} Private Sub BackupTimer_Tick(sender As Object, e As EventArgs) Handles BackupTimer.Tick Backup(ListView1) End ' Matamos la aplicación si se quiere testear... End Sub
Y para restaurar los datos perdidos en la próxima ejecución de la aplicación podemos hacer lo siguiente: Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load If IO. File. Exists(BackupFile ) Then If MessageBox.Show( _ "An error ocurred during the last session." & vbNewLine & vbNewLine & _ "Do you want to recover the lost data?", "Recovery", _ MessageBoxButtons.YesNo, MessageBoxIcon.Question) _ = DialogResult.Yes Then Recovery(ListView1) MessageBox.Show("Data recovered!", "Recovery", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If End Sub
Saludos.
|
|
« Última modificación: 6 Agosto 2013, 22:24 pm por EleKtro H@cker »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Librería de Snippets en C/C++
« 1 2 3 4 »
Programación C/C++
|
z3nth10n
|
31
|
25,872
|
2 Agosto 2013, 17:13 pm
por 0xDani
|
|
|
[APORTE] [VBS] Snippets para manipular reglas de bloqueo del firewall de Windows
Scripting
|
Eleкtro
|
1
|
4,081
|
3 Febrero 2014, 20:19 pm
por Eleкtro
|
|
|
Librería de Snippets para Delphi
« 1 2 »
Programación General
|
crack81
|
15
|
21,151
|
25 Marzo 2016, 18:39 pm
por crack81
|
|
|
Una organización en Github para subir, proyectos, snippets y otros?
Sugerencias y dudas sobre el Foro
|
z3nth10n
|
0
|
3,071
|
21 Febrero 2017, 10:47 am
por z3nth10n
|
|
|
índice de la Librería de Snippets para VB.NET !!
.NET (C#, VB.NET, ASP)
|
Eleкtro
|
7
|
6,540
|
4 Julio 2018, 21:35 pm
por Eleкtro
|
|