opisy w gg

0

jak zmienic opis gg?? Chodzi mi oto ze mam wlaczonego gg i chce zmienic programowo status. nie chce robic komunikatora.

0

http://dev.null.pl/ekg/docs/protocol.html poczytaj sobie

Bełdzio Karolaq chce zmienić status w programie Gadu-Gadu, a nie pisać nowy komunikator. [glowa]

Spróbuj poudawać naciśniecią klawiszy przez użytkownika itp.

0

Próbowałbym jakimiś uchwytami... Tj. łapiesz uchwyt ikonki w tray'u, udajesz naciśnięcie prawego przycisku myszy, on Ci wyświetla popupa, wtedy wywołujesz w nim zdarzenie odpowiadające za kliknięcie w 8 pozycję (status opisowy) i potem zmieniasz ComboBox.Text na wybrany opis... No i oczywiście "Klikasz" w OK. Kodem nie zarzucę, bo się na tym specjalnie nie znam (nigdy nie bawiłem się w "zaglądanie" do innych programów), ale tak mniejwięcej zarys rozwiązania chyba jest...

0

Próbowałbym jakimiś uchwytami... Tj. łapiesz uchwyt ikonki w tray'u,

to ikonka ma uchwyt??
chyba nie z tego co pamietam.

wiec trza zlapac okno glowne potem wcisnac przycisk na dole i kliknac w menu.

0

hehe, pobawiłem się troszke tym i dowiedziałem się, że to okienko z opisem to dialogbox i jest on generowany dynamicznie, więc zmiana opisu przez setwindowtext i udawanie wciśnięcia OK raczej się nie powiodą bo najpierw trzeba będzie utworzyć ten dialog :/

0

Wydaje mi się, że można to zrobić jakoś poprzez jeden z plików konfiguracyjnych. Przeglądałem je kiedyś i tam jest coś takiego jak aktualny status, czy coś. Tylko niestety należałoby znać strukturę plików.

0

Wydaje mi się, że można to zrobić jakoś poprzez jeden z plików konfiguracyjnych. Przeglądałem je kiedyś i tam jest coś takiego jak aktualny status, czy coś. Tylko niestety należałoby znać strukturę plików.

Oprócz tego, że odczytasz status z pliku, czy też go tam zapiszesz, to musisz jeszcze wysłać go do serwera GG.

0

Zaciekawiło mnie to ... :]

type
  TStatus = (ggOpis = 2, ggNiedostepny = 3, ggNiewidoczny = 4, ggZarazWracam = 5, ggDostepny = 6); // ustalenie statusu

procedure MakeStatus(Status: TStatus); // procedura ładująca status
var
  ggHdn: THandle;
  i: Integer;
begin
  // trzeba to upgradowac na uniwersalke:)
  ggHdn := FindWindow(nil, 'Ja (2849811)'); 
  SetActiveWindow(ggHdn);
  BringWindowToTop(ggHdn);

  keybd_event(Vk_MENU, 1, 0, 0);
  keybd_event(VkKeyScan('M'), 1, 0, 0);
  keybd_event(Vk_MENU, 1, KEYEVENTF_KEYUP , 0);

  for i := 0 to Ord(Status) do
    keybd_event(VK_UP, 0, 0, 0);

   keybd_event(VK_RETURN, 1, 0, 0);

end;

Wywołanie:

procedure TForm1.Button1Click(Sender: TObject);
begin
   MakeStatus(ggZarazWracam);
end;

Jednak nie działa jak należy.. - strzałki nie chcą się naciskać dalej niż jedna.. nie wiem dlaczego :-/ .. - no i działa tylko jeśli GG jest pokazane - też trzeba dopracować.. nie zadziała jeśli GG jest niewidoczne [ siedzi w trayu ].

0

Jak chodzi o to naciskanie strzałek, to może próbujesz je "nacisnąć" zbyt szybko? Może GG wtedy wykonuje daną operację i czyści bufor, a tamte "naciśnięcia" były już w buforze? Spróbowałbym odczekiwać jakąś 1/10 sekundy między poszczególnymi naciśnięciami...
Natomiast jak chodzi o siedzenie w tray'u, to pytanie do kogoś znającego się na WinApi, jak wywołać OnNotifyEvent (czy jakoś tak) dotyczące danej ikonki w tray'u z odpowiednimi parametrami (odpowiadającymi kliknięciu lewym przyciskiem myszki)? Ja niestety niewiele o WinApi wiem, więc chyba za dużo w tej materii nie zdziałam...

0

u mnie na gg 6.0 build 142 klasa okna gg ( tego z userami etc ) to Afxb00000005:000052DF
starczy tylko dac showwindow i juz sie pokazuje

0

taka poprawka powinna pomoc:
type
TStatus = (ggOpis = 4, ggNiedostepny = 3, ggNiewidoczny = 2, ggZarazWracam = 1, ggDostepny = 0);

i jeszcze to:
for i := 0 to Ord(Status) do
begin
keybd_event(VK_DOWN, 0, 0, 0);
keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
end;

0

A ja musze was zmartwić... widzieliście nowy build gg? 154?Tam są troche inaczej poustawiane te itemy z menu..

Ale znowu poprawka w

type

zadziała:

type
  TStatus = (ggOpis = 6, ggNiedostepny = 5, ggNiewidoczny = 4, ggZarazWracam = 3, ggDostepny = 2);

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