Windows Service problem

Latest post 06-12-2009 10:25 by Cosmic Sailor. 1 replies.
  • 06-11-2009 10:38

    Windows Service problem

    Dakle, u pitanju je win service koji nakon odredjenog vremenskog intervala salje odredjenu sekvencu sa tastature (SHIFT+S, Enter, SHIFT+P) u odredjeni proces.

    Posto taj proces ne postoji na masini na kojoj razvijam servis, za test koristim notepad. Takodje, za test umjesto pomenute sekvence koristim slanje nekog obicnog laraktera.

     

        private void UradiNesto()
            {


                if (IsProcessStarted("notepad") == true)
                {
                   
                    try
                    {
                        Process[] procs = Process.GetProcessesByName("notepad");

                        foreach (Process proc in procs)
                        {

                            if (proc.MainWindowTitle == "Untitled - Notepad")
                            {
                                IntPtr hWnd = FindWindowEx(proc.MainWindowHandle, IntPtr.Zero, "edit", null);
                                string s = "Hello";
                                for (int i = 0; i < s.Length; i++)
                                {
                                    PostMessage(hWnd, WM_KEYDOWN, VkKeyScan(s), 0);
                                }
                                break;

                              
                            }

                        }

                     MojEventLog.WriteEntry("Sekvenca poslana");


                    }
                    catch
                    {
                        MojEventLog.WriteEntry("Greska! Poruka nije upisana.");
                    }

                    

                }
                else
                {
                    MojEventLog.WriteEntry("Notepad nije startovan.");
              
                }

            }

     

    Ovo je kod koji se izvrsava nakon odredjenog vremena. Testiram ga tako sto otvorim prazan notepad fajl (Untitled-Notepad) i minimizujem ga. Problem je sto se u logu upisuje da je sekvenca poslana ali se u notepadu ne vidi poslano 'Hello'. Posto servis radi pod LocalService accountom sumnjam da je zbog toga. Probao sam servis instalirati i pod userskim accountom

    [RunInstaller(true)]
        public partial class ProjectInstaller : Installer
        {
            public ProjectInstaller()
            {
                InitializeComponent();

                mojServiceProcessInstaller.Account = ServiceAccount.User;
                mojServiceProcessInstaller.Username = "domenski.korisnik";
                mojServiceProcessInstaller.Password = "password";

            }
        }

    ali instalacija puca uz poruku 'The instaler has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2869.'

     

    Jos jedan kuriozitet je da kad gore pomenutu proceduru slanja sekvence odradim u Windows formi sekvenca se bez problema upisuje u minimizovani notepad fajl. Zbog toga i sumnjam na service account.

     

    Pomoc? :)

     

     

    • Post Points: 7
  • 06-12-2009 10:25 In reply to

    Re: Windows Service problem

    samo da javim da sam rijesio problem. u propertieju instaliranog servisa je trebalo čekirati Allow service to interact with desktop u Log On tabu  :)

    mada, ako neko ima ideju kako da se slanje sekvence sa tastature odradi sa SendKeys dobro bi mo doslo.

     

    Poz iz mora :)

    • Post Points: 7
Page 1 of 1 (2 items) | RSS
Powered by Community Server (Commercial Edition), by Telligent Systems