inne okno zawsze aktywne

0

Witam!

Nie jestem pewien czy to było - ja nie znalazłem -w jaki sposób w delphim zrobić tak, by inne okno było jakby zawsze na wierzchu,(kiedy włączony jest inny program), czyli żeby można było doprowadzić do sytuacji, kiedy są dwa aktywne okna.

Z góry dzięki na odpowiedzi.

0

:-8 Dwa aktywne??
Było, MDI.
:-D :-D :-D :-D

Piszcie rozdsądne tematy :|

0

Nie do końca chodzi mi akurat o dwa aktywne. Chodzi mi żeby jedno było aktywne cały czas, a inne mogłyby w tym być czasie na wierzchu, ale nie aktywne.

0

Zawsze na wierzchu? Ot naprzykład: TForm.FormStyle := fsStayOnTop zdaje się, że inny sposób jest w FAQ.

PS. Jeżeli jedno okno jest na wierzchu, nie oznacza, że jest aktywne!

0

Tylko, że fsStayOnTop działa tylko dla okien Twojej aplikacji.
Jeśli chcesz aby okno Twojego programu było również nad oknami innych aplikacji, dodaj do FormActivate poniższą linię:
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE);

(2 okna aktywne w tym samym momencie? Nie jestem do końca pewien, ale chyba to jest niemożliwe)

0

Mam wrażenie, że my się nie rozumiemy.
Program, który mam zamiar zrobić ma powodować, że jedno okno jest aktywne na stałe(mogę normalnie działać w innych oknach, ale tylko tamto jest aktywne) a później na przykład schować się w tray'u. Ten Program nie ma być widoczny (powiedzmy, że nie ma formy). Nie on ma być ciągle na wierzchu a inne okno powiedzmy Internet Explorera.

P.s.

Teraz to już tak namieszałem, że nikt nie zrozumie, o co mi chodzi.

0

Teraz to już tak namieszałem, że nikt nie zrozumie, o co mi chodzi.

Rozumiem (chyba...)
Chodzi Ci o to, by ustawić ZawszeNaWierzchu okno dowolnej aplikacji ?

Jeśli tak, to:

Najpierw musisz pobrać uchwyt okna, które ma być zawsze na wierzchu (np. za pomocą FindWindow).
Następnie uchwyt ten musisz przekazać do funkcji SetWindowPos:

SetWindowPos(h, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
//h - uchwyt zwrócony przez FindWindow
0

ej no, Seth mieszasz. Jak okno ma być cały czas aktywne a w innych chcesz sobie cosik tam innego robić????

Nie czaję :|

0

Mnie sie coś wydaje że gość chce zrobić program dzięki któremu będzie mógł oszukiwać na KURNIKU (taka strona z grami sieciowymi) bo tam jest tak ze jak ktos nie ma aktywnego okna z grą to jego nick robi sie siwy (takie zabezpieczenie na oszustów właśnie). i gosc bedzie se np gral w szachy jakimś np Chessmasterem 9000, i nikt o tym nie bedzie wiedział.

jeśli sie myle to sory [stuk]

0

ej no, Seth mieszasz. Jak okno ma być cały czas aktywne a w innych chcesz sobie cosik tam innego robić????

Właśnie o to mi chodzi :-) .

0

ej no, Seth mieszasz. Jak okno ma być cały czas aktywne a w innych chcesz sobie cosik tam innego robić????

Właśnie o to mi chodzi :-) .

No to się nie da. Wg Windows - "aktywne okno" to takie, które ma tak zwany "focus". Przyjmuje ono wszelkie komunikaty pochodzące z urządzeń wejściowych, szczególnie klawiatury. Takie okno w systemie operacyjnym Windows może być tylko jedno - finito!!

0

No to się nie da. Wg Windows - "aktywne okno" to takie, które ma tak zwany "focus". Przyjmuje ono wszelkie komunikaty pochodzące z urządzeń wejściowych, szczególnie klawiatury. Takie okno w systemie operacyjnym Windows może być tylko jedno - finito!!

Nie można to jest bardzo kategoryczne. Można poszukać innego sposobu. Na przykład(pomysły:)):

  1. rozdzielić focusa tak, aby aktywne było jedno okno a drugie przyjmowało komunikaty??

  2. zasymulować tak, żeby jedno okno jest aktywne na prawbe, a drugie na niby:)??

0

Czy przeczytałeś co napisałem?
Microsoft tak napisał ten system operacyjny, że nie jest to możliwe. Wszelkie sztuczki to tylko oszukiwanie samego siebie. Aktywne okno i tak zawsze będzie jedno.

Ale komunikaty mogą iść do wielu okien - każde z nich może założyć hooka i komunikat przekazywać na liście dalej.

0

Ale komunikaty mogą iść do wielu okien - każde z nich może założyć hooka i komunikat przekazywać na liście dalej.

I to jest w pewnym sensie rozwiązanie mojego problemu. Bo jeżeli komunikaty mogą iść do nie aktywnego to po co je aktywowac:). Tylko jak to zrobić?
I jeszcze jedno jak zablokować okno tak by bylo caly czas aktywne?

1 użytkowników online, w tym zalogowanych: 0, gości: 1