• Martes 7 de Mayo de 2024, 17:56

Mostrar Mensajes

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


Mensajes - Altrox

Páginas: [1]
1
C# / Re: Guardar en CSV
« en: Martes 10 de Mayo de 2011, 15:52 »
Buenas, prueba a cambiar las "comas"(,) por "punto y coma"(;) para separar los datos en celdas.

Saludos!

2
C# / Re: restar celda de datagridview
« en: Viernes 15 de Abril de 2011, 00:07 »
Hola buenas, prueba con esto

Código: C#
  1.  
  2. textBox19.Text = (Convert.ToInt32(textBox19.Text) - Convert.ToInt32(dataGridView2.SelectedRows[0].Cells[3].Value)).ToString();
  3.  
  4.  

Con "dataGridView2.SelectedRows[0].Cells[3].Value" obtienes el valor de la celda 3 de la fila seleccionada.

Si tienes configurada la tabla que se pueda seleccionar una celda, deberias obtener el índice de esa fila y luego obtener el valor de la celda.
Código: C#
  1.  
  2. textBox19.Text = (Convert.ToInt32(textBox19.Text) - Convert.ToInt32(dataGridView2.Rows[dataGridView2.SelectedCells[0].RowIndex].Cells[3].Value)).ToString();
  3.  
  4.  

Luego si quieres obtener el valor de la celda desde los dos casos, prueba con esto
Código: C#
  1.  
  2.  if (dataGridView2.SelectedRows.Count == 0)
  3.             {
  4.                 textBox19.Text = (Convert.ToInt32(textBox19.Text) - Convert.ToInt32(dataGridView2.Rows[dataGridView2.SelectedCells[0].RowIndex].Cells[3].Value)).ToString();
  5.             }
  6.             else
  7.             {
  8.                 textBox19.Text = (Convert.ToInt32(textBox19.Text) - Convert.ToInt32(dataGridView2.SelectedRows[0].Cells[3].Value)).ToString();
  9.             }
  10.  
  11.  

Bueno, ya contaras si funcionó. Saludos

3
C# / Re: Como simular leer de teclado para hacer un bot
« en: Sábado 9 de Abril de 2011, 00:47 »
Buenas, como bien dijo ProfesorX, llamar directamente a funciones del sistema operativo.

Puedes utilizar el método GetForegroundWindow() que obtiene el puntero handle de la ventana activa.
Código: C#
  1.  
  2. [System.Runtime.InteropServices.DllImport("user32.dll")]
  3. private static extern IntPtr GetForegroundWindow();
  4.  
  5.  

También está GetWindowText() que obtiene el título de la ventana del handle que le indiques...
Código: C#
  1.  
  2. [System.Runtime.InteropServices.DllImport("user32.dll")]
  3. public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
  4.  
  5.  

para utilizar GetWindowText() puedes hacer lo siguiente:
Código: C#
  1.  
  2. IntPtr hWnd = GetForegroundWindow();
  3. StringBuilder txt  = new StringBuilder(64); //64 por ejemplo, como si es 128. Longitud. Para almacenar el texto
  4. GetWindowText(hWnd, txt, txt.Capacity);
  5. string titulo = txt.ToString();
  6.  
  7.  

Con esto puedes comprobar si el título contiene por ejemplo "Bloc de notas" y si es así hacer "algo".
También tienes SendKeys.Send() para enviar texto.

Saludos.

4
C# / Re: Cargar imágenes en C#
« en: Domingo 30 de Enero de 2011, 15:44 »
Buenas,
tiene ya un tiempecillo pero lo más seguro que te sirva

codeproject.com/KB/edit/csexrichtextbox.aspx

Saludos!

5
C# / Re: Form adyacente a otro
« en: Martes 11 de Enero de 2011, 14:33 »
Hola buenas,
lo que puedes hacer es crear un metodo en el formulario hijo que quieres mover con un parametro Point.

Luego, en el formulario principal añades el evento LocationChanged y en este llamas al metodo del form hijo pasandole como parametro la posicion del form padre mas x e y.
Por ejemplo, aquí el formulario hijo estará en todo momento en el lado derecho del padre.
Form Padre
Código: C#
  1.  
  2. private void Padre_LocationChanged(object sender, EventArgs e)
  3. {
  4. hijo.setLocation(new Point(this.Location.X + this.Width, this.Location.Y));
  5. }
  6.  
  7.  

Form Hijo
Código: C#
  1.  
  2. public void setLocation(Point pos)
  3. {
  4. this.location = pos;
  5. }
  6.  
  7.  

Ah, si ves que no "te hace caso" de esta manera, intenta poner en el form hijo WindowsDefaultLocation = Manual. Luego antes de mostrar el form hay que llamar a setLocation.

Bueno, a ver si te sirve.
Saludos!

6
C# / Re: Listar archivos en directorio por bloques
« en: Viernes 7 de Enero de 2011, 00:37 »
mmmm la verdad tampoco encontré nada, pero creo que se podría hacer con Ienumerable o algo por el estilo, pero sinceramente son cosas que todavia me superan. Mi nivel es bajo.
No lo probado con muchos archivos, mira a ver si consume mucho. Aun que el problema que le veo, y es gordo, es listar los siguientes archivos.

Código: C#
  1.  
  2. DirectoryInfo a = new DirectoryInfo(@"ruta");
  3.             int n = 0;
  4.                 foreach (FileInfo b in a.GetFiles())
  5.                 {
  6.                     if (n < 3) // el tres es para obtener 3 resultados. 0, 1 y 2 de la matriz a.GetFiles()
  7.                     {
  8.                         MessageBox.Show(b.Name);
  9.                         n++;
  10.                     }
  11.                     else
  12.                         break;
  13.                 }
  14.  
  15.  

suerte!
Bueno, si te sirve, supongo que seria bueno ponerlo en un backgrounworker y por ejemplo si son 50 archivos que mostrar, en cada pasada dentro del if sumarle a la barra de progreso un 2%, no sé son ideas. Si usas esto y tienes problemas para manejarlo, aquí estamos.

Saludos.

7
C# / Re: Programación en c#
« en: Sábado 18 de Diciembre de 2010, 09:41 »
Buenas, eso que comentas es muy sencillo.

Hay que separar el contenido y luego recorrer un array para que vaya sumando.

Primero creas un array que contenga el separador: string[] sep = new string[] { "+" };
Luego utilizas split para obtener un array de cada numero string[] numeros = textBox1.Text.Split(sep, StringSplitOptions.None);
Después crea una variable temporal para ir sumando; ya sea int, double o lo que sea: int suma = 0;
Por último recorres el array de los numeros y como el array numeros es del tipo string hay que pasarlo a int o double o lo que sea: foreach(string num in numeros) { suma += Int32.Parse(num); }

Y luego si quieres mostrar el resultado en un label(por ejemplo): label1.Text = Suma.ToString();

Te recomiendo que pases por aquí... ya que, por lo que veo estas algo verde... msdn.microsoft.com/es-es/library/kx37x362%28v=VS.90%29.aspx

8
C# / Re: Usos del textbox
« en: Jueves 16 de Diciembre de 2010, 09:59 »
Hola buenas,

es esto lo que intentas hacer?
Código: C#
  1.  
  2. public Form1()
  3.         {
  4.             InitializeComponent();
  5.             textBox1.Text = "Traducción1; Traducción2; Traducción3";
  6.         }
  7.  
  8.         string[] separador = new string[] { ";" }; //Separador de palabras
  9.         private void textBox1_Click(object sender, EventArgs e) //Evento click de textbox1
  10.         {
  11.             int posicionClickada = textBox1.SelectionStart; //Obtenemos la posicion de la letra donde clickamos
  12.             string[] palabras = textBox1.Text.Split(separador, StringSplitOptions.None); //obtenemos un array con las palabras
  13.             int temp = 0; //variable temporal para ir sumando la longitud de cada palabra
  14.            
  15.             for (int i = 0; i < palabras.Length; i++) //recorremos el array de palabras
  16.             {
  17.                 temp += palabras[i].Length; //sumamos a temp la longitud de cada palabra
  18.                 if (posicionClickada <= temp) //Comprobamos si la posición obtenida es inferior o igual a lavariable temporal. Si es true mostramos un mensaje con la palabra y salimos del recorrido for con break
  19.                 {
  20.                     MessageBox.Show(palabras[i]);
  21.                     break;
  22.                 }
  23.             }
  24.         }
  25.  
  26.  

Saludos!

9
C# / Re: Boton Especial?
« en: Domingo 12 de Diciembre de 2010, 03:04 »
Para ello debes usar FolderBrowserDialog -> msdn.microsoft.com/es-es/library/system.windows.forms.folderbrowserdialog_members.aspx
y DirectoryInfo ->msdn.microsoft.com/es-es/library/system.io.directoryinfo%28v=vs.80%29.aspx

y luego obtienes esto en 6 minutos...
Código: C#
  1.  
  2. private void button1_Click(object sender, EventArgs e)
  3.         {
  4.             string nombreDirecotrio = @"Ejemplo";
  5.            
  6.             FolderBrowserDialog CuadroDialogo = new FolderBrowserDialog();
  7.             CuadroDialogo.Description = "Seleccionar directorio";
  8.             CuadroDialogo.RootFolder = Environment.SpecialFolder.MyDocuments;
  9.             if (CuadroDialogo.ShowDialog() == DialogResult.OK)
  10.             {
  11.                 DirectoryInfo directorio = new DirectoryInfo(CuadroDialogo.SelectedPath + nombreDirecotrio);
  12.  
  13.                 if (!directorio.Exists)
  14.                     directorio.Create();
  15.                 else
  16.                     MessageBox.Show("El directorio ya existe!");
  17.             }
  18.         }
  19.  
  20.  

10
C# / Re: Conectar a una BD interna c# - no hay forma...
« en: Domingo 12 de Diciembre de 2010, 02:39 »
Al iniciar la depuracion los datos no se quedan grabados, pero si accedes al directorio debug o relase y ejecutas el exe, insertas, cierras y vuelves a ejecutar exe los datos que se insertaron anteriormente aparecen.
En el explorador de soluciones, en las propiedades del archivo sdf en la propiedad Copiar en el directorio de resultados dale de valor Copiar si es posterior. Igual tienes puesto Copiar siempre.
A mi los datos que inserto si que se quedan grabados en el sdf

11
C# / Re: Conectar a una BD interna c# - no hay forma...
« en: Sábado 11 de Diciembre de 2010, 19:36 »
Bueno pues, como he dicho antes aquí dejo un pequeño ejemplo muy básico de SqlServer Express 3.5 y OleDbCommand.
Lo puse un mi página como proyecto para quien quira que se lo pueda descargar(codigo fuente).
grupoalpha.info/web/?pagina=proyectos/Ejemplo_Ole_SQL

En las sentencias SQL se distinguen minúsculas y mayúsculas...

Saludos!

12
C# / Re: Conectar a una BD interna c# - no hay forma...
« en: Sábado 11 de Diciembre de 2010, 16:48 »
Que raro, bueno luego te dejo un pequeño ejemplo que tengo, que ahora no tengo tiempo, ok?
Saludos!

13
C# / Re: Clonar un Control de Usuario
« en: Sábado 11 de Diciembre de 2010, 05:21 »
Hola buenas, la respuesta llega bastante tarde pero bueno.
Lo que viene a continuación lo uso para controlar un formulario desde otro, pero creo que te puede servir.
Creas un Form llamado Form1 y otro llamado form2(por ejemplo) desde el explorador de soluciones
dentro de From1 pones
Código: C#
  1.  
  2. ControlUsuario Clase = new ControlUsuario();
  3. this.Controls.Add(Clase);
  4. form2 fr = new form2(Clase);
  5.  
  6.  
y en el form2 en el constructor pones
Código: C#
  1.  
  2. private ControlUsuario Clase2;
  3. public form2(ControlUsuario ClaseRecivida)
  4.         {
  5.             InitializeComponent();
  6.             this.Clase2 = ClaseRecivida;
  7.             this.Controls.Add(Clase2);
  8.         }
  9.  
  10.  
y de esta manera tienes en el form2 una clase ControlUsuario igual a la del Form1.
Espero que te solucione algo.
Saludos!

14
C# / Re: Conectar a una BD interna c# - no hay forma...
« en: Sábado 11 de Diciembre de 2010, 05:04 »
Buenas,
para conectar con sqlserver personalmente utilizo oledbconection, te dejo un ejemplo de cómo lo hago.

Código: C#
  1.  
  2. string conex = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=db/base.sdf;";
  3. string[] conf = new string[2];
  4. OleDbConnection conn = new OleDbConnection(conex);
  5. conn.Open();
  6. string sql = "SELECT * FROM Configuracion";
  7. OleDbCommand ejecucion = new OleDbCommand(sql, conn);
  8. //Para Obtener Datos
  9. OleDbDataReader leer = ejecucion.ExecuteReader();
  10.  
  11.             while (leer.Read())
  12.             {
  13.                 conf[0] = leer["Campo1"].ToString();
  14.                 conf[1] = leer["Campo3"].ToString();
  15.             }
  16. // FIN Para Obtener Datos
  17.  
  18. // Para añadir, actualizar borrar datos
  19.  sql = "INSERT INTO Configuracion (campo1,campo2) VALUES ('valorCampo1','ValorCampo2')";
  20.  ejecucion.ExecuteNonQuery();          
  21. // FIN Para añadir, actualizar borrar datos
  22.             conn.Close();
  23.  
  24.  
Por último decir que, para insertar un valor de una variable(ya que estuve media hora dándome cabezazos como un tonto).
Código: C#
  1.  
  2. string v = "hola";
  3. string sql = "INSERT INTO Configuracion (campo1) VALUES ('" + v + "')";
  4.  
  5.  

Bueno espero que te sirva de algo.
Saludos!

15
C# / Re: como envio un XML a una funcion php mediante c#
« en: Sábado 11 de Diciembre de 2010, 04:35 »
Hola buenas,
Puedes consultar esta pagina dngloz.com/tutorials/programming/upload-a-file-using-c-as-client-to-a-php-server.php
archivo a PHP y poder tratarlo con $_FILES

Espero que te haya servido de algo.
Saludos!

16
C# / Re: Copiar direccion de la imagen desde webbrowser
« en: Jueves 25 de Noviembre de 2010, 03:17 »
Hola buenas,
creo que podrías utilizar la propiedad WebBrowser.DocumentText para almacenar el codigo en un string y luego buscar dentro la url de la imagen.

Por ejemplo si la imagen se muestra con <img src="urlDeLaImagen"> buscar en la variable string "que hay dentro" de src.
Creo, que puedes obtener la url de la imagen, obteniendo la posición dentro del string de src=". Luego a ésta posición ir sumando +1 y comprobar si el caracter en cuestión es una "(comilla).
Después de todo esto creas una sub cadena con la primera posición y la última.

Supongo que el valor que te devuelva como posición de src=" le tendrás que sumar 4 ya que el valor obtenido es del primer caracter.(creo)

No se si me he explicado bién, si no lo entiendes dímelo.

17
C# / Re: Click automático
« en: Viernes 19 de Noviembre de 2010, 22:24 »
Hola buenas, puedes mirar esto.

Para "hacer" un click de ratón hay que llamar a una libreria nativa de windows.
Llamar a la funcion de evento de ratón de la libreria.

Puedes hacer esto:

//EDITADO//

Se me olvidaba, para que te reconozca DllImport hay que añadir
using System.Runtime.InteropServices;

//FIN EDITADO//
Código: C#
  1.  
  2. [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
  3.         public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
  4.  
  5. private const int MOUSEEVENTF_IZQDOWN = 0x02; // Botón ratón izquierdo presionado
  6. private const int MOUSEEVENTF_IZQTUP = 0x04; // Botón ratón izquierdo soltado
  7. private const int MOUSEEVENTF_DERDOWN = 0x08; // Botón ratón derecho presionado
  8. private const int MOUSEEVENTF_DERUP = 0x10; // Botón ratón derecho soltado
  9.  
  10. private void ejemploClick(int x, int y) // x e y coorenadas dónde se desea el ckick
  11. {
  12.        int l = 0;
  13.        bool salir = false;
  14.        while(!salir)
  15.        {
  16.                if(l == 0)
  17.                {
  18.                         mouse_event(MOUSEEVENTF_IZQDOWN, x, y, 0, 0);
  19.                         l = 1;
  20.                }
  21.                else
  22.                {
  23.                         mouse_event(MOUSEEVENTF_IZQUP, x, y, 0, 0);
  24.                         salir = true;
  25.                }
  26.         }
  27. }
  28.  
  29.  
Bueno creo que así puedes simular un click de ratón no lo he probado, pero la función mose_event si la he usado.

Todavía estoy verde en esto de C# así que, si hay alguien que ve algo mal u otro modo más eficiente de hacerlo que lo publique.

Salud!

Páginas: [1]