Skocz do zawartości

Eternity

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Eternity's Achievements

Newbie

Newbie (1/14)

0

Reputacja

  1. Cos nie moge znalezc... Przeszukalem tamto forum i nic :( Moze jakies dokladniejsze info ?
  2. No jak na razie kombinuje z pzreszukiwaniem otwartych okien, jak juz wyczaje jaka nazwe klasy ma to wyswietlajace wiadomosc, FindWindow-em wezme jego hwnd a potem postaram sie wyciagnac wyswietlany tekst (o ile sie uda :) ). Zobaczymy co z tego wyjdzie... :) UPDATE : qpa... Bede musial jednak zalozyc hooka... :(
  3. Jakis czas temu zalozylem topic o przechwytywaniu wiadomosci msn przesylanych lan-em. Wlasnie one przychodza portem 139. I owszem, jest on juz otwarty - wlasnie messanger na nim nasluchuje. teoretycznie da sie otworzyc kilka socketow na tym samym adresie (ip+port) - tylko musza miec opcje SO_REUSEADDR. W kazdym badz razie za chiny nie potrafie przechwycic jakiejkolwiek. Wiec jak nikt nie jest w stanie pomoc - to przechodzimy do planu BETA - czyli sprawdzanie, czy wyskoczylo okienko Messengera z wiadomoscia - jesli tak, sprawdza w nim tekst, jak odpowiada pewnemu wzorcowi - zamyk okno Messengera i pokazuje wlasne :D Wiec pytanko - tym razem juz czyste WinAPI :P Czy jest jakies zdarzenie (ktore mozna zarzadac od systemu aby bylo przekazywane do naszego okna), ktore informuje o utworzeniu i wyswietlneiu przez system jakiegokolwiek nowego okna, nie wazne jakiej aplikacji ? Moge zrobic przy pomocy timera sprawdzanie co jakis czas czy jest wyswietlone okno messengera, ale bardziej eleganckim sposobem bedzie wykorzystanie wlasnie takiego systemowego zdarzenia :)
  4. Oops - zapomnialem... Cos lezy na rzeczy z portem 139 - bo na przykladowo 1039 program rusza... Dlazcego nie da sie otworzyc 139 ? Wiem, ze jest 'systemowym', ale co z tego ? UPDATE : zapomnialbym - blad wyskakuje 10022 - najprawdopodobniej chodzi o blad gdzies w strukturze danych socketa badz socket juz nasluchuje.. co nie jest mozliwe :) Juz sil mi zaczyna brakowac do tego cholernego winapi... UPDATE2: ok, burak byl w bindzie - doszedlem, ze 139 musi (chyba... ;) byc otwart z opcja SO_REUSEADDR - ale teraz przy bind wyskakuje error 10013 - WSAEACCES... No do jasnego.. jak nasluchiwac na 139 porcie ?! Szlak mnie trafi za chwile...
  5. Chce otworzyc socketa asynchronicznie aby nasluchiwal na porcie 139, ale ciagle wyskakuje mi na funkcji 'listen' - za chiny ludowe nie chce mi ona ruszyc. Ciagle zwraca mi -1... :( Kod wyglada tak : #include <windows.h> #include <winsock2.h> #include <stdio.h> #include "resource.h" #define NET_ERROR -1 #define WM_TRAY WM_USER + 100 #define SOCKET_MSG WM_USER + 200 #define SOCKET_MSG_READ WM_USER + 300 NOTIFYICONDATA nid; WORD sockVer; WSADATA wsaData; SOCKET listeningSocket; SOCKADDR_IN serverInfo; LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); char szClassName[] = "WindowsApp"; int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { HWND hwnd; MSG messages; WNDCLASSEX wincl; char *text; BOOL bOptVal = TRUE; int bOptLen = sizeof(BOOL); wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; wincl.style = CS_DBLCLKS; wincl.cbSize = sizeof (WNDCLASSEX); wincl.hIcon = LoadIcon (NULL, MAKEINTRESOURCE(IDI_ICON1)); wincl.hIconSm = LoadIcon (NULL, MAKEINTRESOURCE(IDI_ICON1)); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; if (!RegisterClassEx (&wincl)) return 0; hwnd = CreateWindowEx ( 0, szClassName, "Windows App", WS_DISABLED, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, HWND_DESKTOP, NULL, hThisInstance, NULL ); /* Make the window visible on the screen */ //ShowWindow (hwnd, nFunsterStil); //socket initialization sockVer=MAKEWORD(2,2); WSAStartup(sockVer, &wsaData); listeningSocket=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(listeningSocket==INVALID_SOCKET) { WSACleanup(); return NET_ERROR; } serverInfo.sin_family=AF_INET; serverInfo.sin_addr.s_addr=INADDR_ANY; serverInfo.sin_port=htons(139); if ( setsockopt(listeningSocket, SOL_SOCKET, SO_REUSEADDR, (char*)&bOptVal, bOptLen) !=0 ) { sprintf(text,"%d",WSAGetLastError()); WSACleanup(); MessageBox(hwnd, text , "Setsockopt sie wysypalo na reuseaddr...", MB_OK); return NET_ERROR; } if ( bind(listeningSocket, (SOCKADDR*)&serverInfo, sizeof(SOCKADDR_IN)) != 0 ) { sprintf(text,"%d",WSAGetLastError()); WSACleanup(); MessageBox(hwnd, text , "Tym razem nie binduje...", MB_OK); return NET_ERROR; } if ( listen(listeningSocket, 1) != 0 ) { sprintf(text,"%d",WSAGetLastError()); WSACleanup(); MessageBox(hwnd, text , "I znowu ten listen...", MB_OK); return NET_ERROR; } WSAAsyncSelect(listeningSocket, hwnd, SOCKET_MSG, FD_ACCEPT); MessageBox(hwnd, NULL, "Tym razem wszystko ok !", MB_OK); while (GetMessage (&messages, NULL, 0, 0)) { TranslateMessage(&messages); DispatchMessage(&messages); } return messages.wParam; } . . . Dalej jest ciag dalszy kodu, al ew tej chwili zupelnie nieistotny. Wienc o so tu chosi ???
  6. port 139, kazda wiadomosc to <=8 pakietow, teraz je tylko rozgryzc... :D Pozdro i dzieki za kierunek
  7. Porty to bodaj 135...139 i 445... Nio, wezme sie za to :)
  8. Ok, to moze wiecie chociaz od czego zaczac 'gryzc' ten problem ? Sa aplikacje, ktore to robia (chocby darmowy QuickMessenger"), szuklaem jakeigos kodu zrodlowego tego typu programiku coby sobie do niego zerknac - zdecydowanie najszybciej ucze sie analizujac przyklady :) - ale jak na razie bezskutecznie. Chodzi DOKLADNIE o komende 'net send' do przesylania sobie prostych wiadomosci przez siec. Chodzi mi wylacznie o to, by moc 'dowiedziec' sie, ze przyszla nowa wiadomosc i od kogo w sieci. Nic wiecej - informacje zwrotne bede juz wysylal net sendem :) Juz pzregladalem pobieznie CodeProject.com, al epod tym linkiem ktory mi podales cos moze ciekawego znalazlem... W kazdym razie - jesli ktos ma jakikolwiek pomysl od ktorej strony wziasc sie za bary z tym problmem - prosze sie nie krepowac i podzielic sie :) UPDATE : hmmm, przyszlo mi do glowy takie prostackie, paskudne i maxymalnie nieeleganckie rozwiazanie - aplikacja czatujaca w tle na okno Messenger Service, wtedy przechwytujaca caly text w nim wyswietlony, a nastepnie szybciutko zamykajaca to okno i pokazujaca wlasne :P Prymitywne, ale jakies tam rozwiazanie to by bylo... Ale nie znosze takich 'obejsc'...
  9. Hej, nie wierze ze nikt nic w tej materii nie wie ! No niech sie ktos zlituje...
  10. Witam forumowiczow Pisze malutka aplikacje ktora docelowo ma siedziec rezydentnie (w tle) i przechwytywac wszystkie komunikaty standardu msn wysylane na dana maszyne. Dokladnei takie, jakie sa wysylane komenda 'net send'. Prosilbym o nakierowanie mnie na odpowiedni tor jesli chodzi wlasnie o przechwytywanie widomosci ww standardu :) Pozdrawiam
×
×
  • Utwórz nowe...