Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: aktywować okno programu
anonim




Typ: Nie zarejestrowany
aktywować okno programu

Jak można za pomocą VB uaktywnić program działający w trayu i ustawić na niego focus? Konkretnie chodzi mi o GG

17-05-2005 21:20
  
jamajka




Typ: neutral
Postów: 18
Zarejestrowany: Apr 2005

Nie za bardzo rozumiem, przecież w Tray-u jest po to by go właśnie można było łatwo aktywować - jest ikona. Czemu chcesz otwierać własne drzwi przechodząc koniecznie uprzednio przez mieszkanie sąsiada? Wybacz to taka dygresja.


_____________________________________________
Chcę wiedzieć, ale czy potrafię zrobić?

19-05-2005 12:37
Pokaż profil jamajka  Wyślij email do jamajka   
anonim




Typ: Nie zarejestrowany

czyli jak to zrobic zeby np kliknieciem w button aktywowac program ktory jest schowany w trayu?

19-05-2005 16:42
  
jamajka




Typ: neutral
Postów: 18
Zarejestrowany: Apr 2005

hmm, a nie prościej kliknąć w ikonę w Tray-u, przecież jest zawsze widoczna? Konkretnie to GG taką właśnie tam lokalizuje, więc ja i wszyscy moi kolesie np. korzystamy z Traya i jest gitara. Kurde mol, czemu się tak uparłeś?

[Post edytowany dnia 19-05-2005 17:46 przez jamajka]


_____________________________________________
Chcę wiedzieć, ale czy potrafię zrobić?

19-05-2005 17:37
Pokaż profil jamajka  Wyślij email do jamajka   
anonim




Typ: Nie zarejestrowany

heh :-) Poprostu chce to zrobić z poziomu VB. Chcialbym to wykorzystać w pewnym programie, ktory np. o pewnej godzinie aktywowalby mi to okno GG i zrobil zrzut ekranu i zapisal obraz do pliku JPG.

20-05-2005 18:40
  
anonim




Typ: Nie zarejestrowany
wiec?

nie da rady tego zrobic?

25-05-2005 06:31
  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Private Const SW_SHOW = 5

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Sub main()
    Dim hWnd_GG As Long
   
    hWnd_GG = FindWindow("Afx : 00400000 : b : 0000149E : 00000005 : 00003067", vbNullString)
    ShowWindow hWnd_GG, SW_SHOW
End Sub


Ta wersja działa dla GG 6.1 (build 157). Ponieważ nazwy klas okien pomiędzy kolejnymi wersjami się zmieniają - dla innych może nie działać.

UWAGA:
W "Afx : 00400000 : b : 0000149E : 00000005 : 00003067" usuń wszystkie spacje - tutaj dodałem je ze względu na błędne działanie forum, które spowodowałoby "uszkodzenie" danych


[Post edytowany dnia 25-05-2005 09:21 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

25-05-2005 09:18
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Marcin podał dobrą klasę okna, tylko że ona jest chyba dla windows 98 dla XP jest to:

Afx : 00400000 : b : 00010011 : 00000005 : 00130471

fragment 00010011 jest to jakoś oznaczona wersja windowsa.


_____________________________________________
www.mob.abc.pl - moja strona o VB

25-05-2005 13:42
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Przyglądając się GG przy kolejnych uruchomienaich stwierdziłęm, że ostatni segment nazwy klasy - nawet pod jednym systemem operacyjnym - jest wybierany losowo. Pewnie jest to zabezpieczenie przed dostępem do okna (pamiętam, że wcześniejsze wersje GG miały prostsze nazwy i bez problemu można było się do nich dostać).
Ale i na ten pomysł GGT znajdzie się lekarstwo - już nad nim pracuję .

Wcześniejszy kod jest nieaktualny już - zostawiam w celu zachowania zgodności z wypowiedziami na forum .

[Post edytowany dnia 26-05-2005 07:34 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

26-05-2005 07:33
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Niestety - nie mam pomysłu

Jedyne, co mi przychodzi do głowy, to:
1) ręcznie za każdym razem wpisywać nazwę klasy
2) przeszukać wszystkie okna pod pulpitem i znaleźć to, którego nazwa klasy zaczyna się od:
"Afx : 00400000 : b:" (bez spacji!).

Niezbyt efektowne, ale nie mam lepszego pomysłu w tej chwili.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

26-05-2005 19:08
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 9 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1