Umieszczanie obcego programu, oraz przechwytywanie komunikat

dział ogólny

Umieszczanie obcego programu, oraz przechwytywanie komunikat

Nowy postprzez mate006 » poniedziałek, 23 maja 2011, 09:22

Witam

Muszę napisać program który podczas uruchamiania systemu uruchomi konkretny program, a następnie umieści go w moim programie, dokładnie tak jak to jest w poradzie ► patrz serwis: Cyfrowy Baron -> API -> Umieszczanie okna obcego programu w programie własnym.

Zrobiłem tak jak jest to w poradzie, jednak jest problem takiego typu że nie zawsze umieści go, próbowałem z użyć timer'a do opóźnienia umieszczania jednak nadal jest błąd.

co może być powodem tego błędu?

To pierwsza sprawa druga sprawa jest takiego typu, że ten program co jakiś czas uruchamia okno z reklamami, i chodzi mi o taką rzecz, żeby przechwycić ten moment wyskoczenia okna, pobrać do niego uchwyt i go zamknąć. Wiem że to jest do zrobienia za pomocą ► patrz serwis: Cyfrowy Baron -> API -> Keyloger, czyli przechwytywanie wciśnięcia klawiszy we wszystkich programach. Tylko nie wiem czego użyć zamiast WM_KEYDOWN.

Jeśli ktoś ma jakiś pomysł co do mojego problemu, bardzo byłbym wdzięczny za pomoc

P.S.
Dodam że nie posiadam pliku pomocy w Kompilatorze. I nie wiem gdzie mógłbym go znaleźć
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Firefox

Re: Umieszczanie obcego programu, oraz przechwytywanie komunikat

Nowy postprzez Cyfrowy Baron » poniedziałek, 23 maja 2011, 15:06

mate006 napisał(a):Zrobiłem tak jak jest to w poradzie, jednak jest problem takiego typu że nie zawsze umieści go,


Czyli kod działa. W tym przypadku należy ustalić w jakich sytuacjach to nie działa, bo przecież nie dzieje się to z powodu widzi mi się komputera.



mate006 napisał(a):To pierwsza sprawa druga sprawa jest takiego typu, że ten program co jakiś czas uruchamia okno z reklamami, i chodzi mi o taką rzecz, żeby przechwycić ten moment wyskoczenia okna, pobrać do niego uchwyt i go zamknąć.


Przede wszystkim trzeba pobrać uchwyt do tego okna programu i wysłać komunikat WM_CLOSE. Momentu wyskoczenia okna nie możesz przechwycić żadnym komunikatem, gdyż program nie wysyła do systemu żadnego komunikatu. Program uruchamia okno z reklama i zwyczajnie nie informuje nikogo o tym, więc nie ma czego przechwytywać. Musisz po prostu użyć zegara TTimer i sprawdzać czy okno komunikatu już się pojawiło, coś w tym stylu:

KOD cpp:     UKRYJ  
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 HWND hWnd = FindWindow(NULL, L"Nazwa okna");

 if(hWnd != NULL)
 {
  SendMessage(hWnd, WM_CLOSE, 0, 0);
 }
}
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Umieszczanie obcego programu, oraz przechwytywanie komunikat

Nowy postprzez mate006 » wtorek, 24 maja 2011, 13:56

Myślałem o tym żeby użyć Timera do sprawdzania czy wyskoczyło okno, jednak to nie jest zbytnio możliwe gdyż tytuł jest różny i jest zależny od tego co jest przedmiotem reklamy, jedynie co jest stałe to nazwa klasy, i z pomocą przychodzi mi porada ► patrz serwis: Cyfrowy Baron -> API -> Pobieranie tytułu i uchwytu do okna lub obiektu w oknie wskazywanego przez kursor.
Jednak to strasznie obciąża procesor.

A co do umieszczania programu we własnym programie, to na razie będę obserwował w jakich okolicznościach nie chce się umieszczać, bo to tylko czasami.
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 23 gości

cron