Esempio n. 1
0
        public void LeerVentanas(List <VentanasActivas.sVentana> lista)
        {
            ListaVentanas = lista;
            //Delegado con el proceso auxiliar de búsqueda
            EnumWindowsProc getHandlerVentana = new EnumWindowsProc(_GetProcessWindowHandlerLista);
            //Informacion auxiliar
            AuxInfo informacion = new AuxInfo();

            /*Enumerar las ventanas buscando la que coincida con
             * el id de proceso contenido en informacion */
            EnumWindows(getHandlerVentana, informacion);
            return;
        }
Esempio n. 2
0
        public void ListWindows(ListBox lst)
        {
            lstAPP = lst;
            //Delegado con el proceso auxiliar de búsqueda
            EnumWindowsProc getHandlerVentana = new EnumWindowsProc(_GetProcessWindowHandler1);
            //Informacion auxiliar
            AuxInfo informacion = new AuxInfo();

            /*Enumerar las ventanas buscando la que coincida con
             * el id de proceso contenido en informacion */
            EnumWindows(getHandlerVentana, informacion);
            return;
        }
Esempio n. 3
0
        /// <summary>
        /// Obtiene el handler de la ventana asociada a un proceso
        /// Este procedimiento es solo de utileria para usarse con EnumWindows
        /// y no deberia ser invocado directamente
        /// </summary>
        /// <param name="hwnd" />handler de la ventana actual
        /// <param name="info" />informacion auxiliar para el proceso
        /// <returns>false si encuentra la ventana, true sino</returns>
        private static bool _GetProcessWindowHandler(IntPtr hwnd, AuxInfo info)
        {
            int processID;

            GetWindowThreadProcessId(hwnd, out processID);

            if (processID == info.processID)
            {
                info.handler = hwnd;
                return(false);
            }
            else
            {
                info.handler = IntPtr.Zero;
                return(true);
            }
        }
Esempio n. 4
0
 private static bool _GetProcessWindowHandler1(IntPtr hwnd, AuxInfo info)
 {
     if (hwnd != IntPtr.Zero)
     {
         StringBuilder s = new StringBuilder(201);
         GetWindowText(hwnd, s, 200);
         if (s.ToString() != "")
         {
             if (IsWindowVisible(hwnd))
             {
                 lstAPP.Items.Add(s.ToString());
                 lstAPP.Refresh();
             }
         }
     }
     return(true);
 }
Esempio n. 5
0
 private static bool _GetProcessWindowHandlerLista(IntPtr hwnd, AuxInfo info)
 {
     if (hwnd != IntPtr.Zero)
     {
         StringBuilder s = new StringBuilder(201);
         if (IsWindowVisible(hwnd))
         {
             GetWindowText(hwnd, s, 200);
             if (s.ToString() != "")
             {
                 VentanasActivas.sVentana Ventana = new VentanasActivas.sVentana();
                 Ventana.Titulo = s.ToString();
                 Ventana.hWnd   = hwnd;
                 ListaVentanas.Add(Ventana);
             }
         }
     }
     return(true);
 }
Esempio n. 6
0
        /// <summary>
        /// Devuelve el handler de la ventana asociada al proceso
        /// </summary>
        /// <param name="pid" />Id del proceso
        /// <returns>handler de la ventana</returns>
        public static IntPtr GetProcessWindowHandler(IntPtr hWndParent, int pid)
        {
            //Delegado con el proceso auxiliar de búsqueda
            ChildWindows getHandlerVentana = new ChildWindows(_GetProcessWindowHandler);
            //Informacion auxiliar
            AuxInfo informacion = new AuxInfo();

            informacion.processID = pid;

            /*Repetir bucle hasta que este presente la ventana del proceso
             *(puede que la enumeracion se realice y windows  aún no haya creado
             * la primera ventana del proceso o bien no la haya hecho visible,
             * por lo cual se debe repetir el bucle hasta encontrala)*/
            do
            {
                /*Enumerar las ventanas buscando la que coincida con
                 * el id de proceso contenido en informacion */
                EnumChildWindows(hWndParent, getHandlerVentana, informacion);
            } while (informacion.handler == IntPtr.Zero || !IsWindowVisible(informacion.handler));

            return(informacion.handler);
        }
Esempio n. 7
0
 private static extern bool EnumChildWindows(IntPtr hWndParent, ChildWindows lpEnumFunc, AuxInfo lParam);
Esempio n. 8
0
        // **********************************************************************

        public void Write(DateTime dateTime, AuxInfo auxInfo)
        {
            dw.WriteRecHeader(sid, dateTime);

            // --------------------------------------------------

            long         milliseconds = DateTimeHelper.ToMs(auxInfo.DateTime);
            AuxInfoFlags flags        = AuxInfoFlags.None;

            // --------------------------------------------------

            if (lastMilliseconds != milliseconds)
            {
                flags |= AuxInfoFlags.DateTime;
            }

            if (lastAskTotal != auxInfo.AskTotal)
            {
                flags |= AuxInfoFlags.AskTotal;
            }

            if (lastBidTotal != auxInfo.BidTotal)
            {
                flags |= AuxInfoFlags.BidTotal;
            }

            if (lastOI != auxInfo.OI)
            {
                flags |= AuxInfoFlags.OI;
            }

            if (lastPrice != auxInfo.Price)
            {
                flags |= AuxInfoFlags.Price;
            }

            if (lastHiLimit != auxInfo.HiLimit ||
                lastLoLimit != auxInfo.LoLimit ||
                lastDeposit != auxInfo.Deposit)
            {
                flags |= AuxInfoFlags.SessionInfo;
            }

            if (lastRate != auxInfo.Rate)
            {
                flags |= AuxInfoFlags.Rate;
            }

            if (auxInfo.Message != null)
            {
                flags |= AuxInfoFlags.Message;
            }

            // --------------------------------------------------

            dw.Write((byte)flags);

            // --------------------------------------------------

            if ((flags & AuxInfoFlags.DateTime) != 0)
            {
                dw.WriteGrowing(milliseconds, ref lastMilliseconds);
            }

            if ((flags & AuxInfoFlags.AskTotal) != 0)
            {
                dw.WriteLeb128(auxInfo.AskTotal - lastAskTotal);
                lastAskTotal = auxInfo.AskTotal;
            }

            if ((flags & AuxInfoFlags.BidTotal) != 0)
            {
                dw.WriteLeb128(auxInfo.BidTotal - lastBidTotal);
                lastBidTotal = auxInfo.BidTotal;
            }

            if ((flags & AuxInfoFlags.OI) != 0)
            {
                dw.WriteLeb128(auxInfo.OI - lastOI);
                lastOI = auxInfo.OI;
            }

            if ((flags & AuxInfoFlags.Price) != 0)
            {
                dw.WriteLeb128(auxInfo.Price - lastPrice);
                lastPrice = auxInfo.Price;
            }

            if ((flags & AuxInfoFlags.SessionInfo) != 0)
            {
                dw.WriteLeb128(auxInfo.HiLimit);
                dw.WriteLeb128(auxInfo.LoLimit);
                dw.Write(auxInfo.Deposit);

                lastHiLimit = auxInfo.HiLimit;
                lastLoLimit = auxInfo.LoLimit;
                lastDeposit = auxInfo.Deposit;
            }

            if ((flags & AuxInfoFlags.Rate) != 0)
            {
                dw.Write(auxInfo.Rate);
                lastRate = auxInfo.Rate;
            }

            if ((flags & AuxInfoFlags.Message) != 0)
            {
                dw.Write(auxInfo.Message);
            }

            // --------------------------------------------------
        }
Esempio n. 9
0
 private static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, AuxInfo lParam);
    // **********************************************************************

    public void Write(DateTime dateTime, AuxInfo auxInfo)
    {
      dw.WriteRecHeader(sid, dateTime);

      // --------------------------------------------------

      long milliseconds = DateTimeHelper.ToMs(auxInfo.DateTime);
      AuxInfoFlags flags = AuxInfoFlags.None;

      // --------------------------------------------------

      if(lastMilliseconds != milliseconds)
        flags |= AuxInfoFlags.DateTime;

      if(lastAskTotal != auxInfo.AskTotal)
        flags |= AuxInfoFlags.AskTotal;

      if(lastBidTotal != auxInfo.BidTotal)
        flags |= AuxInfoFlags.BidTotal;

      if(lastOI != auxInfo.OI)
        flags |= AuxInfoFlags.OI;

      if(lastPrice != auxInfo.Price)
        flags |= AuxInfoFlags.Price;

      if(lastHiLimit != auxInfo.HiLimit
        || lastLoLimit != auxInfo.LoLimit
        || lastDeposit != auxInfo.Deposit)
      {
        flags |= AuxInfoFlags.SessionInfo;
      }

      if(lastRate != auxInfo.Rate)
        flags |= AuxInfoFlags.Rate;

      if(auxInfo.Message != null)
        flags |= AuxInfoFlags.Message;

      // --------------------------------------------------

      dw.Write((byte)flags);

      // --------------------------------------------------

      if((flags & AuxInfoFlags.DateTime) != 0)
        dw.WriteGrowing(milliseconds, ref lastMilliseconds);

      if((flags & AuxInfoFlags.AskTotal) != 0)
      {
        dw.WriteLeb128(auxInfo.AskTotal - lastAskTotal);
        lastAskTotal = auxInfo.AskTotal;
      }

      if((flags & AuxInfoFlags.BidTotal) != 0)
      {
        dw.WriteLeb128(auxInfo.BidTotal - lastBidTotal);
        lastBidTotal = auxInfo.BidTotal;
      }

      if((flags & AuxInfoFlags.OI) != 0)
      {
        dw.WriteLeb128(auxInfo.OI - lastOI);
        lastOI = auxInfo.OI;
      }

      if((flags & AuxInfoFlags.Price) != 0)
      {
        dw.WriteLeb128(auxInfo.Price - lastPrice);
        lastPrice = auxInfo.Price;
      }

      if((flags & AuxInfoFlags.SessionInfo) != 0)
      {
        dw.WriteLeb128(auxInfo.HiLimit);
        dw.WriteLeb128(auxInfo.LoLimit);
        dw.Write(auxInfo.Deposit);

        lastHiLimit = auxInfo.HiLimit;
        lastLoLimit = auxInfo.LoLimit;
        lastDeposit = auxInfo.Deposit;
      }

      if((flags & AuxInfoFlags.Rate) != 0)
      {
        dw.Write(auxInfo.Rate);
        lastRate = auxInfo.Rate;
      }

      if((flags & AuxInfoFlags.Message) != 0)
        dw.Write(auxInfo.Message);

      // --------------------------------------------------
    }