• Domingo 28 de Abril de 2024, 18:39

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 - cob1979

Páginas: [1]
1
C# / Re: APIS con C#
« en: Sábado 29 de Mayo de 2010, 16:59 »
Cita de: "cob1979"
estuve leyendo en la ayuda de Visual Studio, algo como que los servicios trabaja con un escritorio y estación de trabajo diferentes a la del usuario.

Estaba aquí el asunto amigo... Y la solución era tan fácil como ir a la herramienta "Administración de Equipo", en Servicio, buscar las propiedades del servicio (clic derecho sobre el servicio ->propiedades), en la pestaña Iniciar seccion, Selecionar "Cuenta del sistema local" y "Permitir a los servicios interactuar con el escritorio" y ya está.

Que facil ahora... :beer:  :beer:

2
C# / Re: APIS con C#
« en: Sábado 29 de Mayo de 2010, 16:56 »
Cita de: "cob1979"
estuve leyendo en la ayuda de Visual Studio, algo como que los servicios trabaja con un escritorio y estación de trabajo diferentes a la del usuario.

Estaba aquí el asunto amigo... Y la solución era tan fácil como ir a la herramienta "Administración de Equipo", en Servicio, buscar las propiedades del servicio (clic derecho sobre el servicio ->propiedades), en la pestaña Iniciar seccion, Selecionar "Cuenta del sistema local" y "Permitir a los servicios interactuar con el escritorio" y ya está.

Que facil ahora... :beer:  :beer:

3
C# / Re: APIS con C#
« en: Jueves 27 de Mayo de 2010, 23:29 »
Cita de: "Jeysscarr"
lo unico que hice fue con la funcion que escribi hace un rato determinar el nombre de la ventana WindowName y pasarselo a la funcion que tu ya usas, FindWindow pero asi:

IntPtr hWnd = FindWindow(null, windowName);

de ahi me dio resultado y me queda lista para trabajar con SendMessage

Sí a mí me trabaja bien desde otra aplicación que no sea un servicio de windows. Me trabaja de maravilla como expuse cuando abrí el tema. Pero la cosa es cuando trato de hacerlo desde un servicio windows. No devuelve el hWnd. Cuando depuro me da cero.
Debe ser que los servicios necesitan algo más, estuve leyendo en la ayuda de Visual Studio, algo como que los servicios trabaja con un escritorio y estación de trabajo diferentes a la del usuario. Pero no estoy muy seguro si ahí está la cosa ahora sigo  profundizando en el tema. Gracias de todas formas. Si quieres pudes echar una ojeada a la ayuda windows en el tema: Introducción a las aplicaciones de servicios de Windows

4
C# / Re: APIS con C#
« en: Jueves 27 de Mayo de 2010, 00:31 »
Cita de: "Jeysscarr"
por otro lado si es estrictamente necesario usar el API trata con algo como esto:
Un ejemplo para obtener la ventana del block de notas

Código: C#
  1. using System.Diagnostics;
  2. Process[] processes = Process.GetProcessesByName("notepad");
  3.  
  4. foreach (Process p in processes)
  5. {
  6.     IntPtr pFoundWindow = p.MainWindowHandle;
  7. }
  8.  

para cerrarla...:p.CloseMainWindow();


Ok, gracias  :)  :)  y veré que hago. Si me dan otras sugerencias les agradecería....

5
C# / Re: APIS con C#
« en: Jueves 27 de Mayo de 2010, 00:10 »
Cita de: "Jeysscarr"
:blink: !!!!!!!!! No te queda mas sencillo si en vez de apis usas la clase NotifyIcon?????????????????????????

Para serte sincero miré la clase NotifyIcon por arriba y me pareció que lo más que me permitía era agregar un ícono de la aplicación a la bandeja, y ya te digo no la profundicé mucho.

Pero lo que quisiera es que el servicio manipulara todos los íconos alojados en dicha bandeja del sistema (de todos los programas). Muchas gracias y veré si la clase NotifyIcon me brinda hasta donde quiero llegar.

6
C# / APIS con C#
« en: Miércoles 26 de Mayo de 2010, 23:52 »
Amigos, hace días me estoy rompiendo la cabeza, pues he querido hacer un servicio que interactue con la bandeja del sistema (o Area de notificaciones). EL mismo trabajará con las API de windows para lograr lo antes mencionado.

Hice una clase como dicen los libros con métodos estáticos.

internal static class NativeMethods
        {
            // Lot of API's definitions
 
            [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
            internal static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

           ........................................
       }
Este es el primer método, por supuesto hay más pero ya aquí no trabaja, pues debe devolverme el manipulador de la ventana

Después invoco los métodos::

 IntPtr hwndParent = NativeMethods.FindWindow("Shell_TrayWnd", null);

y cuando depuro, me dice que hwndParent = 0;
Lo cual no debe ser así...

Este mismo código lo comprobé con un proyecto formulario de Windows y hasta un proyecto simple, y todo me trabaja de maravillas, pero no sé por qué con un servicio no. Quizás los servicios necesiten otro código adicional, o no se pueda trabajar con la bandeja del sistema.

Por favor si tienen alguna sugerencia se los agradeceré.  :argh:  :argh:

7
C# / Re: Busco consejos en C#
« en: Lunes 9 de Marzo de 2009, 23:38 »
Sí la aplicación está pensada para trabajarla a través de la red, muchas gracias amigo, por lo que según tú es preferible irse por mi segunda solución... Gracias

8
C# / Busco consejos en C#
« en: Domingo 8 de Marzo de 2009, 04:52 »
Estoy haciendo una aplicacion en C# y quisiera un consejo porque nunca he hecho una aplicación de embergadura.
Creo un origen de datos y pongo en mi formulario principal un combobox enlazado a datos, también agregué un texbox enlazado a datos, el combobox y el textbox se enlazan a tableadapter distintos. Entonces deseo que cuando cambie un item en mi combobox, se actualice el textbox en dependencia de lo seleccionado. Para esto hayé dos soluciones:
1-. cada vez que cambie un valor en el combox, rellenar el datatable conectado al textbox mediante un consulta parametrizada, donde le paso como parámetro el valor seleccionado en el combobox.
2-. Trabajar con todos los datos cargados en el datatable relacionado con el textbox. Por supuesto aquí cargará todos los datos, por lo que tendría que llenar el texbox con puro código, manipulando dicho datatable...

No soy experto en programación, apenas estoy incursionando, pero creo que con la primera opción estaría accediendo a la base de datos cada vez que cambie un valor en el combobox, y con la segunda haría una sobrecarga de datos innecesarios lo cual consumiría recursos en el ordenador...

Por lo que quisiera sus opiniones, y que me ayuden a escoger la vía más acertada según sus experiencia... Muchas gracias

Páginas: [1]