Ovládání jiných oken WIN   zodpovězená otázka

VB.NET, WinAPI

Jsem postaven před problém z frameworku 3.5 projít seznam oken windows, aktivovat jedno z nich (pravděpodobně dle titulku okna) a poslat SendKeys. Kdysi jsem toto řešil přes API, nicméně se tomuto řešení bráním (a navíc je to dosti dlouho a asi bych laboroval opět od začátku). Lze tohoto požadavku vůbec na frameworku dosáhnout a případně kudy vede cestička.

Díky

Problém : po volání služby třetí strany z aplikace se objeví uživateli okno s informacemi, které uživatele opravdu nezajímají, ba ho obtěžují. Potřebuji tedy toto okno vyhledat a za uživatele stisknout ENTER.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tohle bez WinAPI nejde, v .NETu pokud vím žádné takové třídy nejsou.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V 2.0 jsem takto ovládal konzolovou app (GnuPG). Myslím, že je to to, co hledáte.

//Encrypt target file
        public void ExecuteEncrypt()
        {
            ProcessStartInfo pInfo = new ProcessStartInfo(_homedirectory + "gpg.exe", " -er " + _passphraseOrPublicKey + " " + _originator);

            // Preferences
            pInfo.WorkingDirectory = _homedirectory;
            pInfo.CreateNoWindow = true;
            pInfo.UseShellExecute = true;

            // Start
            Process processObject = Process.Start(pInfo);

            //Say yes to overwrite and to trust target key
            if (!processObject.HasExited)
            {
                SendKeys.SendWait("y");
                SendKeys.SendWait("{ENTER}");
            }
            if (!processObject.HasExited)
            {
                SendKeys.SendWait("y");
                SendKeys.SendWait("{ENTER}");
            }

            // Kill if it takes too long...
            if (!processObject.WaitForExit(10000))
            {
                processObject.Kill();
            }
        } 
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tady jde o ovládání aplikací, které jsme sami nespustili, ale které běží nezávisle na našem programu.

Jde to vcelku snadno přes WinAPI, ale prostředky čistého .NETu bohužel ne.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback