Iz C# neces moci skoro pa nista, moraces da radis invoke API funkcija. Secam se da se to moglo uraditi na dva nacina, jedan je ka vidljivim prozorima (koji nisu zaklonjeni) a drugi je prema bilo kojem prozoru. U oba slucaja na kraju pozivas PostMessage/SendMessage nad dobijenim hendlom prozora.
U prvom pristupu koristis f-ju WindowFromPoint, koja ce ti vratiti hendl na prozor kome pripadaju koordinate. Ponekad je to dovoljno, npr. simulacija klika na WinAmp-ov play, pod uslovom da je bash na tim koordinatama play dugme i da nije ispod nekog drugog prozora, ali za neke druge slucajave nije, zaklonjen ili minimizovan prozor. U tom slucaju koristis drugi pristup, a to je da nadjes prozor po nekom kriterijumu - imenu, imenu klase, hendlu instance, ID-u child kontrole ... ili kombinacijom. Pretragu pocinjes od desktop-a, sa GetDesktop() funkcijom dobijas desktopov HWND, a zatim pretrazujes sve prozore koji mu pripadaju preko EnumChildWindows. Uzmi u obzir da svaki od dobijenih prozora ima svoje child prozore.
Sve ovo mi izgleda da je veoma tesko uraditi u C#. Sta hoces da napravis ?
Citat:
I još jedno pitanje - kako da dobijem memorijsku veličinu neke klase?
Ne mozes dobiti velicinu klase, ali mozes dobiti velicinu instance klase preko interop-a kao sto je Maskvel rekao ili da tu klasu napravis da je serijabilna i serijalizujes objekat u memory stream i onda vidis koliki je.
Citat:
To bi bio pravi rshum, ako to moze vidim svrhu samo za pravljenje nekakvog virusa
Ako se 'virus' vec pokrenuo pod korisnikovim security kontekstom, nema potrebe da zonglira sa prozorima kada moze direktno da pokrene neki proces. Simulacija klika misem je meni bila jedino korisna kada sam pravio daljinski upravljac preko serijskog porta za upravljanje WinAmp-om i MediaPlayer-om. Samo, ja sam hardkodovao imena i klase WinAmp-a i MediaPlayer-a, kao i njenih prozora dugmadi za play/pause/stop i nije moglo da se radi sa vise instanci jedne aplikacije.
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.