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


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 ... 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 [558] 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 ... 1254
5571  Programación / .NET (C#, VB.NET, ASP) / Re: Dónde debo de colocar el .Clear(); en: 30 Abril 2015, 04:50 am
Buenas

1. Los índices empiezan por 0, si quieres determinar que haya un item seleccionado en un combobox de la manera en que lo estás haciendo entonces debes evaluar el valor -1, donde -1 es ninguno, 0 el el primer item, 1 el segundo item, etc...
Código
  1. if (ComboBox.SelectedIndex != 1) {
  2.    // ...
  3. }

2. Eliminar el texto del combobox no altera el índice de selección, el valor de la propiedad SelectedIndex seguirá siendo el mismo que estaba seleccionado antes de eliminar el texto, a menos que tengas un item vacío (una linea en blanco) y tu intención sea seleccionar ese item vacío, cosa que no has especificado.

Si lo que quieres es deseleccionar el item entonces puedes hacer:
Código
  1. ComboBox1.SelectedItem = Nothing;
o también:
Código
  1. ComboBox1.SelectedIndex = -1;

3. ¿Porque limpias el DataSet en cada comparación de cada ComboBox?, se que tienes dudas sobre eso, pero no llego a entender con que intención lo haces tantas veces seguidas, obviamente es innecesario. No me manejo con tareas que requieran el uso de SQL, pero si necesitases limpiar las filas de las tablas del dataset entonces hazlo una vez y justo antes de rellenar usando el método Fill del SQLAdapter, en el método cargarActas2:

Código
  1. ...
  2. ds.Clear();
  3. dataAdap.Fill(ds);
  4. ...

Y digo "si necesitases", por que realmente no se si es necesario ya que no he comprobado que el método Fill del SQLAdapter las limpie antes de rellenar, cabría esperar que si lo hiciese, pero repito de nuevo que no manejo SQL, si no estás seguro compruébalo por ti mismo para salir de dudas.

4. No estás respetando el buen uso de la cantidad de espacios en blanco en la query de SQL ni los valores de String que debes encerrar entre comillas, aunque repito que no manejo SQL, pero algo conozco sin haberlo llegado a usar, de todas formas toda esa maraña de ifs lo puedes simplificar para construir esa parte de la query de manera más dinámica, por ejemplo así:
 
Código
  1.    Private filterList As New List(Of String)
  2.  
  3.    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
  4.    Handles MyBase.Load
  5.  
  6.        ' Set property names as tags
  7.        Me.ComboBox1.Tag = "iddpto"
  8.        Me.ComboBox2.Tag = "idprofe"
  9.        Me.ComboBox3.Tag = "idmate"
  10.        Me.ComboBox4.Tag = "idperi"
  11.        Me.ComboBox5.Tag = "idtiposem"
  12.  
  13.    End Sub
  14.  
  15.    Private Sub ComboBox_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) _
  16.    Handles ComboBox1.SelectedIndexChanged,
  17.            ComboBox2.SelectedIndexChanged,
  18.            ComboBox3.SelectedIndexChanged,
  19.            ComboBox4.SelectedIndexChanged,
  20.            ComboBox5.SelectedIndexChanged
  21.  
  22.        Dim cb As ComboBox = DirectCast(sender, ComboBox)
  23.  
  24.        Me.filterList.Remove(Me.filterList.Find(Function(item As String) item Like String.Format("AND A.{0}*", cb.Tag.ToString)))
  25.  
  26.        If cb.SelectedIndex <> -1 Then
  27.            Me.filterList.Add(String.Format("AND A.{0}='{1}'", cb.Tag.ToString, cb.SelectedItem.ToString))
  28.        End If
  29.  
  30. #If DEBUG Then
  31.        Debug.WriteLine(String.Join(" ", Me.filterList))
  32. #End If
  33.  
  34.    End Sub

Traducción a C#:
Código
  1. private List<string> filterList = new List<string>();
  2.  
  3. private void Form1_Load(object sender, EventArgs e) {
  4.  
  5. // Set property names as tags
  6. this.ComboBox1.Tag = "iddpto";
  7. this.ComboBox2.Tag = "idprofe";
  8. this.ComboBox3.Tag = "idmate";
  9. this.ComboBox4.Tag = "idperi";
  10. this.ComboBox5.Tag = "idtiposem";
  11. }
  12.  
  13. // nota: Este event-handler lo usas para suscribirte al evento 'SelectedIndexChanged' de TODOS los ComboBoxes.
  14. private void ComboBox_SelectedIndexChanged(object sender, EventArgs e) {
  15.  
  16. ComboBox cb = (ComboBox)sender;
  17.        this.filterList.Remove(this.filterList.Find((string item) => item.StartsWith(string.Format("AND A.{0}", cb.Tag.ToString))))
  18.  
  19. if (cb.SelectedIndex != -1) {
  20. this.filterList.Add(string.Format("AND A.{0}='{1}'", cb.Tag.ToString, cb.SelectedItem.ToString));
  21. }
  22.  
  23. // #if DEBUG
  24.     Debug.WriteLine(string.Join(" ", this.filterList));
  25. // #endif
  26. }

Haznos saber si alguna de estas correcciones o sugerencias ha corregido el problema que tienes.

Saludos
5572  Foros Generales / Foro Libre / Re: Los mitos de las computadoras en: 30 Abril 2015, 03:17 am
La música del final de estilo Chiptune me ha gustado mucho, ¿podrías indicar como se llama el tema? :xD

El mito de los pedófilos no es un mito, es la realidad, no está todo lleno de pedófilos criminales, pero hoy en día es algo parecido, pues solo hay que entrar en cualquier chat para comprobar que el 99% de usuarios son gente masculina y con el pito tan salido que se tirarían hasta a su hermana de 14 años si se la encontrasen chateando en la sala sin saber quien es.

Saludos
5573  Foros Generales / Dudas Generales / Re: Glosario en: 30 Abril 2015, 02:29 am
No se podría hacer un glosario para los mas novatos para entender su lenguaje avanzado?

Yo no lo consideraría lenguaje avanzado, más bien es sinónimo de vagancia y todos hemos pecado de vagos en ese sentido, pero a mi me gusta más escribir y decir "Sistema Operativo" que "S.O",
de hecho en el foro casi siempre intento traducir o incluso evitar la terminología yankee cuando se que otra persona con menos experiencia no va a entender el significado de lo que expresa ese término y entonces le suelto la traducción, un término similar más sencillo de entener ...quizás más de un sinónimo, o una breve explicación del significado sin nombrar el término en cuestión para intentar que lo entienda mejor, aunque también es que a mi me gusta escribir más de la cuenta y dar la lata como te la estoy dando a ti ahora xD.

Si ya existe disculpen mi ignorancia y díganme donde lo encuentro.

Abreviaciones:
List of computing and IT abbreviations - Wikipedia

Términos:
Glossary of Computer and Internet Terms - PC.net
The Tech Terms Computer Dictionary
Glossary of computer hardware terms - Wikipedia
Glossary of Internet-related terms - Wikipedia

Saludos
5574  Programación / Programación General / Re: [Estimación]Controlar tiempo de desarrollo. en: 30 Abril 2015, 02:13 am
¿Cómo estimar el tiempo de desarrollo?, bueno, para empezar, la primera estimación para un proyecto que dure más de unas pocas semanas podría tener que ser re-estimado con regularidad, lo mejor para no comerse marrones es comunicarle al cliente tu intención de volver a contactar con él tras pasar un tiempo indefinido y/o mantenerle informado eventuálmente de los avances del proyecto.

Poder realizar una buena estimación depende de cada programador, de la persona y de la magnitud de la tarea en cuestión, hay que desarrollar un modelo mental para evaluar/estimar distintos factores por separado, cómo los requisitos del proyecto, el riesgo (margen de error), la validación, y factores referentes a tus habilidades de programación cómo la velocidad, y el tiempo que duermes o que puedes programar, aparte, a ser posible se debe recurrir a referencias de proyectos anteriores que sean parecidos a la tarea que el cliente te está pidiendo para así poder elaborar una estimación más aproximada.

Yo también tuve problemas en ese sentido cuando empecé de forma freelance (sigo siendo freelance, no profesional), estimaba un plazo de entrega bastante corto superando mis espectativas para satisfacer al cliente (sin mala intención), a veces yo podía cumplir ese plazo de entrega pero otras veces tenía que alargarlo unos días o semanas más (o lo que fuese),
con la experiencia uno se da cuenta de que el cliente siempre se agarra a lo primero que le dices, lo primero que salga de tu boca es lo único que va a contar durante el periodo de ese trabajo, cualquier reectificación va a generar problemas, es decir, si al cliente le dices que en 3 semanas puedes desarrollar la aplicación y a la semana no se lo puedes entregar, hay muchas probabilidades de que ese cliente te lo acabe hechando en cara que le dijiste "3 semanas" y éste te empiece a agobiar cada día por que estás tardando "más de lo esperado", por ese motivo, siempre es mejor exagerar un poquito el plazo de entrega, por que aparte de que siempre pueden surgir imprevistos, si se lo puedes entregar antes de ese plazo de tiempo "exagerado" será algo positivo por que tecnicamente lo acabaste antes de tiempo.

EDITO:
Este libro te serviría de ayuda:
Software Estimation: Demystifying the Black Art (Developer Best Practices)

Saludos
5575  Programación / Scripting / Re: Como comprobar registro en: 29 Abril 2015, 23:31 pm
un .bat que compruebe  si una clave con su valor se agregó correctamente en el registro de Windows.

Si estás agregando tú la clave utilizando el comando REG, entonces solo debes evaluar el código de salida del proceso, siendo 0 satisfactorio, y no-0 error:
Código:
Reg.exe Add "HKCU\Test" /V "Valor" /D "Datos" /F 1>NUL 2>&1
If %ErrorLevel% EQU 0 (
Echo Success
) Else (
Echo Failed
)

Lo mismo pero utilizando los operadores:
Código:
(Reg.exe Add "HKCU\Test" /V "Valor" /D "Datos" /F)1>NUL 2>&1 && (
Echo Success
) || (
Echo Failed
)

En cambio, si la clave ya está añadida en el registro, entonces puedes utilizar el parámetro Query del comando Reg para hallar la clave (y buscar los datos del valor con el comando Find/Findstr):
Código:
( (Reg Query "HKCU\Test" /V "Valor" /T "Reg_SZ") | (Findstr "\<Datos\>") )1>Nul 2>&1 ^
&& (Echo Success) ^
|| (Echo Failed)

Saludos
5576  Sistemas Operativos / Windows / Re: Win 8.1 en: 29 Abril 2015, 23:08 pm
Lo que puedes hacer (sería algo parecido a una clonación del S.O.) es transferir la instalación completa de Windows con todos los archivos, de tu laptop a tu PC de sobremesa, utilizando la característica Windows Easy Transfer:
Using Windows Easy Transfer (Windows 8)

También puedes utilizar otras técnicas:
How to Transfer your Complete Windows 7 Installation to New Computer

PD: Debes utilizar títulos descriptivos al publicar temas... "Win 8.1" no describe el problema que tienes.
PD2: Ya se que no se te da bien el inglés, pero la documentación más eficiente está en ese idioma, puedes utilizar GoogleTranslate.

Saludos
5577  Programación / .NET (C#, VB.NET, ASP) / Re: como hacer q se agreguen las filas en radGridView en: 29 Abril 2015, 22:54 pm
con el primer código q postee (no me había dado cuenta) al final m trae los datos de la consulta pero crea nuevamente las 5 columnas al lado de las 5 q yo diseñe y m coloca ahí los datos

Claro, eso si que sucede, es normal, te vuelvo a sugerir que leas a fondo la documentación que hay en el último enlace que te he mostrado para que entiendas lo que está pasando.

Hay varias formas de solucionarlo, pero esta creo que es la más sencilla (ya que no requiere el diseño de classes adicionales ni nada)

Supongamos que tienes una columna agregada con el nombre "GridColumn1":
Código
  1. RadGridView1.Columns.Add(name:="GridColumn1", headerText:="Mi Columna");

En primer lugar debes desactivar la auto generación de columnas al bindear:
Código
  1. RadGridView1.AutoGenerateColumns = False;

Y teniendo una instancia de la DataTable cómo esta, donde la columna se llama "Data Column":
Código
  1. DataTable dt = new DataTable();
  2. dt.Columns.Add("Data Column");
  3. dt.Rows.Add("Value");

Asignas el nombre de ese campo a la columna del Grid:
Código
  1. RadGridView1.Columns(columnName:="GridColumn1").FieldName = "Data Column";

Asignas el DataSource, y listo:
Código
  1. RadGridView1.DataSource = dt.DefaultView;



Otra solución también muy sencilla sería eliminar las columnas que agregaste manuálmente, y renombrar las columnas que se auto-generaron al asignar el data source.

Código
  1. DataTable dt = new DataTable();
  2. dt.Columns.Add("Data Column 1");
  3. dt.Columns.Add("Data Column 2");
  4. dt.Rows.Add({"Value 1", "Value 2"});
  5.  
  6. RadGridView1.BeginUpdate();
  7. RadGridView1.Columns.Clear();
  8. RadGridView1.DataSource = dt.DefaultView;
  9. RadGridView1.Columns(0).HeaderText = "Columna 1";
  10. RadGridView1.Columns(1).HeaderText = "Columna 2";
  11. RadGridView1.EndUpdate();

Saludos.
5578  Programación / .NET (C#, VB.NET, ASP) / Re: como hacer q se agreguen las filas en radGridView en: 29 Abril 2015, 17:39 pm
Las classes que puedes usar cómo DataSource en los controles de Telerik deben cumplir unas condiciones específicas (tener implementadas ciertas interfaces), aunque en un principio la class DataTable si que funciona correctamente, lo aconsejable por Telerik es crear tu propia Class respetando esas reglas de uso.

En tu caso dices que no te funciona, para ser sinceros no se me ocurre el por qué, pero si cómo puedes intnetar solucionarlo...

Prueba a declarar esa DataTable fuera del sub, prueba a asignar la propiedad DataTable.DefaultView al radGridView.DataSource, y si las filas siguen sin aparecer entonces prueba a asignar una consulta paralela para evitar "cambios" indeseados en el DataSource (quizás el GarbageCollector esté reciclando la Datatable antes de tiempo y por eso desaparecen los datos de tus filas):

VB.Net:
Código
  1.        Dim dt As New DataTable()
  2.        With dt
  3.  
  4.            .BeginLoadData()
  5.            .Columns.Add("Column1")
  6.            .Columns.Add("Column2")
  7.            .Rows.Add({"Value1", "Value2"})
  8.            .EndLoadData()
  9.            .AcceptChanges()
  10.  
  11.        End With
  12.  
  13.        RadGridView1.DataSource = dt.DefaultView.AsParallel
  14.        dt.Clear()

C#:
Código
  1. DataTable dt = new DataTable();
  2.  
  3. dt.BeginLoadData();
  4. dt.Columns.Add("Column1");
  5. dt.Columns.Add("Column2");
  6. dt.Rows.Add({"Value1", "Value2"});
  7. dt.EndLoadData();
  8. dt.AcceptChanges();
  9.  
  10. RadGridView1.DataSource = dt.DefaultView.AsParallel;
  11. dt.Clear();

Te sugiero que leas la documentación online de Telerik, ayuda bastante a saber cómo empezar a manejarse en ciertos aspectos de cada control:
RadGridView OverView
Databinding RadGridView

Además, si has registrado la versión Trial de Telerik UI entonces puedes acudir al foro de soporte y ellos sabrán mejor cómo solucionarte el problema, esto te podría ayudar, aunque es para WPF:
Bind Datatable with RadGridView

Saludos
5579  Sistemas Operativos / Windows / Re: ¿Puede un virus joderte los drivers mouse? en: 29 Abril 2015, 04:45 am
creo que es el crypter el que hace eso.

Tengo mis dudas de que un producto comercial de poco nivel se esté vendiendo con segundas intenciones ...maliciosas.

De todas formas, si quieres salir de dudas tienes varios métodos para hacerlo, puedes intentar descompilar el programa y analizar las instrucciones para comprobar si le hacen algo al mouse, o también puedes monitorizar las acciones del proceso (con Process Monitor de SysInternals por ejemplo), y, para intentar verificar que no se trate de un "virus camuflado" puedes dejar que el servicio de Anubis analice/monitorice el exe por ti.



El cursor no se mueve, ni siquiera esta, no digo que lo joda de verdad, sino que me joda los drivers del sistema.

Bueno entonces el problema es que la imagen del cursor desaparece, es invisible, pero tu puedes seguir moviendo el mouse y hacer click, ¿verdad?, en ese caso no necesariamente tiene por que ser consecuencia de un virus, hay otros posibles motivos, por ejemplo, podrías tener alguna tecla "agarrotada" en el teclado sin darte cuenta de ello y con la opción de "Ocultar puntero mientras se está escribiendo" activada, o simplemente por causas desconocidas se han podido alterar o eliminar las imágenes actuales del cursor, las cuales puedes reasignar en cualquier momento para corregir el problema,
puedes revísar si están bien ambas cosas en las opciones del mouse, en el panel de control.

Saludos!
5580  Sistemas Operativos / Windows / Re: ¿Puede un virus joderte el mouse? en: 29 Abril 2015, 03:29 am
¿Puede un virus joderte el mouse?

El software no puede dañar directamente el hardware, pero en ciertas circunstancias puede acondicionar el equipo alterando ciertos valores (cómo por ejemplo en este caso la frecuencia del mouse) para provocar un daño físico a corto o largo plazo.

De todas formas entiendo que por "joder el mouse" te refieres al comportamiento que percibes en la interfáz del sistema operativo, es decir, el cursor o coordenadas que representan el movimiento del dispositivo y/o la respuesta de los botones del dispositivo, si, por supuesto que un virus/software puede dañar un mouse en ese sentido.

Nota: Recuerda que tecnicamente un crypter no es un virus, que lleve un regalito en su interior ya sería otra cosa.



¿Como cojones puede hacer un crypter eso?

Cualquier software capacitado, de manera intencionada o accidental puede interferir con los mensajes del mouse, alterarlos (hookearlos procesarlos), y también bloquear la entrada (el input) del dispositivo para dejarlo inutilizable indefinidamente.

Mouse Input Notifications



¿Que comando usa para bloquear el mouse?

Aparte de poder alterar el comportamiento del dispositivo de la manera que he mencionado arriba, y aparte de otras funciones que no nombraré a continuación (cómo SendMessage, PostMessage, y Mouse_Event), se puede recurrir a las siguientes funciones de la API de Windows para:

Alterar valores del dispositivo:
SystemParametersInfo - MSDN

Simular eventos del dispositivo:
SendInput function - MSDN

Bloquear la entrada del dispositivo:
BlockInput function - MSDN


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