Stoppt die Vorratsdatenspeicherung! Jetzt klicken && handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien:
 
Anwendungsentwicklung: Google-Tool
von Plapperkatze am 25.April 2006 um 14:38
zurück zur Kategorie "Tutorials"

Update 29.10.2009
Ich muss zugeben, ich bin nicht ganz glücklich mit diesem Programm. Einiges was ich damals (das Original entstand vor über 3 Jahren) da programmiert habe, würde ich heute anders machen. Ich komme aber zur Zeit nicht dazu, den Code zu überarbeiten, und lasse es darum mal so, wie es ist. Bisher kamen ja eh keine Rückmeldungen dazu.

Heute entwickeln wir ein kleines Programm, das die Augen erfreut und ausserdem zu etwas nützlich ist. Ihr kennt das vielleicht: "Browser starten, www.google eingeben, Suchbegriff eingeben, klicken" .. wir nehmen uns also vor, diesen Vorgang etwas zu vereinfachen.

Dazu ein Programm, das die Suchmaschine befragt und eines von 10 Suchergebnissen in einem Browser öffnet (oder die Suchmaschinen-Seite mit einer Liste der Ergebnisse). Als kleines Feature wollen wir einen Scroller, ähnlich wie Winamp ihn hat, ein kleines, schmuckes Fenster.. und man soll es minimieren können, wobei es in der Taskleiste rechts, neben der Uhr, als Icon dargestellt werden soll.

Hier ein Bild wie das ganze aussehen könnte:


Der gesamte Quelltext besteht aus 3 *.cpp Dateien. Dazu kommen eine resource.rc und resource.h Datei und die eingebundenen Ressourcen (Icons, Bitmaps). Insgesamt 43kB Daten, die zu einem 82kB Executable verlinkt werden.

- resource.rc (welche Daten eingebunden werden sollen)
- resource.h (eindeutige Kennzeichnung der Daten)
- main.cpp (Einsprungspunkt WinMain + globale Variablen)
- wndproc.cpp (LRESULT CALLBACK WndProc)
- socket.cpp (Suchmaschinen-Abfragen, etc.)

Zur Erinnerung:
Resource-Dateien binden Daten in ein Programm ein. Mit ID_ICON ICON DISCARDABLE "ref\\icon.ico" wird das Icon "icon.ico" aus dem Unterverzeichnis "ref" eigebunden. Das Icon hat den symbolischen Namen "ID_ICON", der in der Datei "resource.h" mit "#define ID_ICON 66" als Integer definiert wird. Diese Datei "resource.h" muss sowohl in resource.rc (die Resource-Datei) als auch ins Hauptprogramm eingebunden werden.

resource.rc
#include "resource.h"

// Bitmap
IDB_BACKGROUND            BITMAP  DISCARDABLE     "ref\\bg.bmp"
IDB_RIGHT                 BITMAP  DISCARDABLE     "ref\\right.bmp"
IDB_LEFT                  BITMAP  DISCARDABLE     "ref\\left.bmp"
IDB_SEARCH                BITMAP  DISCARDABLE     "ref\\search.bmp"

// Icon
ID_ICON                   ICON    DISCARDABLE     "ref\\icon.ico"

resource.h
#define IDB_BACKGROUND                  23

#define IDB_RIGHT                       32
#define IDB_LEFT                        33
#define IDB_SEARCH                      34

#define ID_ICON                         66

main.cpp
const char szAppName[]    = "Suchmaschine";

#include <windows.h>
#include <winsock2.h>
#include <stdio.h>
#include <math.h>

#include "resource.h"

 HICON hIcon=NULL;
 HBRUSH bgBrush=NULL,traidBrush=NULL;
 HFONT hFont=NULL,hFont2=NULL,hFont3=NULL;
 HBITMAP hBmp,hScrollBmp,hRightBmp,hLeftBmp,hSearchBmp;

COLORREF traidBgColor=RGB(14,16,18);

 HWND hCmd;
 HWND hExit;
 HWND hMini;
 HWND hRight;
 HWND hMainWnd;

#define SCROLLBUFSIZE 256

 char scrolltext[SCROLLBUFSIZE];
 unsigned long scrollcount=0;
 int currentLink=-1;

POINTS pts;

#include "socket.cpp"
#include "wndproc.cpp"

int WINAPI WinMain(  HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   PSTR szCmdLine, int iCmdShow)
{
 MSG        msg;

 WNDCLASS   wc;
 
 bgBrush=CreateSolidBrush(traidBgColor);
 // Skinning - Bitmaps laden und Brush daraus erzeugen
 hBmp=LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BACKGROUND));
 traidBrush = CreatePatternBrush(hBmp);

 hFont = CreateFont(12, 0, 0, 0,
                   FW_NORMAL, FALSE, FALSE, FALSE,
                   ANSI_CHARSET, OUT_DEFAULT_PRECIS,
                   CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                   DEFAULT_PITCH | FF_ROMAN,"Arial");

 hFont2 = CreateFont(12,0, 0, 0,
                   FW_NORMAL, FALSE, FALSE, FALSE,
                   ANSI_CHARSET, OUT_DEFAULT_PRECIS,
                   CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                   VARIABLE_PITCH | FF_ROMAN,"MS Sans Serif");

 hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(ID_ICON));

 wc.style               = CS_HREDRAW | CS_VREDRAW;
 wc.lpfnWndProc         = WndProc;
 wc.cbClsExtra          = 0;
 wc.cbWndExtra          = 0;
 wc.hInstance           = hInstance;
 wc.hCursor             = LoadCursor(NULL,IDC_ARROW);
 wc.hIcon               = hIcon;
 wc.hbrBackground       = bgBrush; // traidBrush; //
 wc.lpszClassName       = szAppName;
 wc.lpszMenuName        = NULL;
 
 RegisterClass(&wc);
 
 hMainWnd = CreateWindow(   szAppName,
                        szAppName,
                        WS_OVERLAPPEDWINDOW,
                        1024-280,
                        768-160,
                        290,210,
                        NULL,
                        NULL,
                        hInstance,
                        NULL);

 ShowWindow(hMainWnd, iCmdShow);
 UpdateWindow(hMainWnd);
 
 while (GetMessage(&msg, NULL, 0, 0))
 {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
 }
 return msg.wParam;
}

wndproc.cpp
BOOL makeSearchLink(char *request)
{
 char buf[1024];
 memset(buf,0,1024);
 unsigned int j=0;

 for(unsigned int i=0;i<strlen(request);i++)
 {

     if(request[i]==' ')
     {
       if(j>0&&buf[j-1]!='+')
       {
         buf[j]='+';
         j++;
       }
     }
     else if(isalnum(request[i]))
     {
       buf[j]=request[i];
       j++;
     }
     else
     {
       char c[32];
       sprintf(c,"%X",request[i]);
       strcat(buf,"%");
       strcat(buf,c);
       j+=strlen(c)+1;
     }
 }
 if(j>0&&buf[j-1]=='+')buf[j-1]=0;
 strncpy(request,buf,1023);
 return TRUE;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{  
 switch (message)
 {
//----------------------------------------------------------------------
// WM_CREATE
//----------------------------------------------------------------------
   case WM_CREATE:
   {

     strcpy(scrolltext,"Willkommen beim Google-Tool der Plapperkatze. (C) 2006. Beta DEV Version. Greets to Toyy. Do not copy or spread.");

     HRGN hRegion1;
     hRegion1 = CreateRoundRectRgn(4,24,280,106,20,20);
     SetWindowRgn(hWnd,hRegion1,TRUE);
     DeleteObject(hRegion1);
     RECT r;
     GetClientRect(hWnd,&r);

     hCmd = CreateWindowEx(WS_EX_CLIENTEDGE,
                            "EDIT",
                            "",
    WS_CHILD | WS_VISIBLE |
    ES_MULTILINE ,
    0,0,0,0,
                            hWnd,
                            NULL,
                            GetModuleHandle(NULL),
                            NULL);

     hExit = CreateWindowEx(NULL,//WS_EX_CLIENTEDGE,
                           "BUTTON",
                           "x",
                           WS_CHILD | WS_VISIBLE,
                           0,0,0,0,
                           hWnd,
                           (HMENU)1,
                           GetModuleHandle(NULL),
                           NULL);

     hMini = CreateWindowEx(NULL,//WS_EX_CLIENTEDGE,
                           "BUTTON",
                           "-",
                           WS_CHILD | WS_VISIBLE,
                           0,0,0,0,
                           hWnd,
                           (HMENU)1,
                           GetModuleHandle(NULL),
                           NULL);

SendMessage(hCmd,WM_SETFONT,(WPARAM)hFont2,TRUE);

     WSAInit();

 // timer initialisieren
 SetTimer(hWnd,        // handle to main window
   2,                  // timer identifier
   15,                  // ms interval
   (TIMERPROC) NULL);  // no timer callback

      hRightBmp=LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_RIGHT));
      hLeftBmp=LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_LEFT));
      hSearchBmp=LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_SEARCH));
     break;
   }
   case WM_USER:
   if(wParam==1)
   {
      if(lParam==WM_LBUTTONDBLCLK)
      {
        ShowWindow(hWnd,SW_SHOWNORMAL);
        SetForegroundWindow(hWnd);
        NOTIFYICONDATA nid;
        nid.cbSize=sizeof(NOTIFYICONDATA);
        nid.hWnd=hWnd;
        nid.uID=1;
        nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP;
        nid.hIcon=hIcon;
        nid.uCallbackMessage=WM_USER;
        strcpy(nid.szTip,szAppName);
        Shell_NotifyIcon(NIM_DELETE,&nid);
        return TRUE;
      }
   }
   break;
   case WM_SIZE:
   {
      if(wParam==SIZE_MINIMIZED)
      {
        NOTIFYICONDATA nid;
        nid.cbSize=sizeof(NOTIFYICONDATA);
        nid.hWnd=hWnd;
        nid.uID=1;
        nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP;
        nid.hIcon=hIcon;
        nid.uCallbackMessage=WM_USER;
        strcpy(nid.szTip,szAppName);
        ShowWindow(hWnd,SW_HIDE);
        Shell_NotifyIcon(NIM_ADD,&nid);
        return TRUE;
      }
     RECT r;
     GetClientRect(hWnd,&r);
     MoveWindow(hCmd,14,48,(r.right-r.left)-36,20,TRUE);
     MoveWindow(hExit,246,12,14,15,TRUE);
     MoveWindow(hMini,246,30,14,15,TRUE);
     return TRUE;
   }
//----------------------------------------------------------------------
// WM_CTLCOLOR
//----------------------------------------------------------------------
    case WM_CTLCOLOREDIT:
    {
      SetTextColor((HDC)wParam,RGB(255,255,192));
      SetBkColor((HDC)wParam,traidBgColor);
      //SelectObject((HDC)wParam,hFont2);
      return (LONG)bgBrush;
    }
    case WM_CTLCOLORSTATIC:
    {
      SetTextColor((HDC)wParam,RGB(255,255,192));
      SetBkColor((HDC)wParam,traidBgColor);
      SelectObject((HDC)wParam,hFont2);
      return (LONG)bgBrush;
    }
//----------------------------------------------------------------------
// WM_PAINT
//----------------------------------------------------------------------
   case WM_PAINT:
   {
int scrwidth=226;
     HDC hdcTarget,hdcSource,hdcScrollSource;
     PAINTSTRUCT ps;
     hdcTarget=BeginPaint(hWnd, &ps);
     hdcSource=CreateCompatibleDC(hdcTarget);
     hdcScrollSource=CreateCompatibleDC(hdcTarget);

     // scroller

     hBmp=CreateCompatibleBitmap(hdcTarget,280,100);
     hScrollBmp=CreateCompatibleBitmap(hdcTarget,scrwidth*2,12);

     SelectObject(hdcScrollSource,hScrollBmp);
     SelectObject(hdcSource,hBmp);

     SetBkMode(hdcScrollSource,TRANSPARENT);
     int sinMod=(sin((float)(scrollcount%1000)/20)+1)*64;
     SetTextColor(hdcScrollSource,RGB(128,128+sinMod,255-sinMod));
     SelectObject(hdcScrollSource,hFont);

     char *temp=(char *)GlobalAlloc(GPTR,SCROLLBUFSIZE);
     memset(temp,0,SCROLLBUFSIZE);
     int l=0;
     while(l+strlen(scrolltext)+7<SCROLLBUFSIZE)
     {
       strcat(temp,scrolltext);
       l+=strlen(scrolltext);
       strcat(temp,"       ");
       l+=7;
     }
     TextOut(hdcScrollSource,(scrwidth-2+14)-(scrollcount%(strlen(temp)*10)),0,temp,strlen(temp));
     TextOut(hdcScrollSource,((scrwidth-2+14)+strlen(temp)*5)-(scrollcount%(strlen(temp)*10)),
                 0,temp,strlen(temp));
     TextOut(hdcScrollSource,((scrwidth-2+14)+strlen(temp)*10)-(scrollcount%(strlen(temp)*10)),
                 0,temp,strlen(temp));
     GlobalFree((void *)temp);

     HPEN hPen=CreatePen(PS_SOLID,4,RGB(255,145,40));
     SetBkColor(hdcSource,traidBgColor);
     SelectObject(hdcSource,hPen);
     SelectObject(hdcSource,traidBrush);
     RoundRect(hdcSource,1,2,274,80,20,20);
     DeleteObject(hPen);

     hPen=CreatePen(PS_SOLID,1,RGB(255,145,40));
     SelectObject(hdcSource,hPen);
     SelectObject(hdcSource,traidBrush);
     Rectangle(hdcSource,14,12,scrwidth+14,26);
     DeleteObject(hPen);


     // scroller blit
     BitBlt(hdcSource,15,13,scrwidth-4,12,hdcScrollSource,0,0,SRCCOPY);
     // icon - right arrow
     SelectObject(hdcScrollSource,hRightBmp);
     BitBlt(hdcSource,246-20,30,14,14,hdcScrollSource,0,0,SRCCOPY);
     // icon - left arrow
     SelectObject(hdcScrollSource,hLeftBmp);
     BitBlt(hdcSource,226-20,30,14,14,hdcScrollSource,0,0,SRCCOPY);
     // icon - search
     SelectObject(hdcScrollSource,hSearchBmp);
     BitBlt(hdcSource,206-20,30,14,14,hdcScrollSource,0,0,SRCCOPY);

     // final blit
     BitBlt(hdcTarget,0,0,280,100,hdcSource,0,0,SRCCOPY);

     // und aufräumen
     DeleteDC(hdcSource);
     DeleteDC(hdcScrollSource);
     DeleteObject(hBmp);
     DeleteObject(hScrollBmp);
     EndPaint(hWnd,&ps);
     return 0;
   }
   case WM_LBUTTONDOWN:
   {
     //------------------
     // right click
     //------------------
     if(pts.x>226&&pts.x<240&&pts.y>30&&pts.y<44)
     {
       currentLink++;
       if(currentLink>9)currentLink=0;
       if(strlen(linklist[currentLink])!=0)
       {
         SocketCleanUp();
         sprintf(scrolltext,"%d. Ergebnis: %s",currentLink,linklist[currentLink]);
         scrollcount=0;
         ShellExecute(hWnd, NULL,linklist[currentLink], NULL, NULL, SW_NORMAL);
         SetForegroundWindow(hMainWnd);
       }
     }
     //------------------
     // left click
     //------------------
     else if(pts.x>206&&pts.x<220&&pts.y>30&&pts.y<44)
     {
       currentLink--;
       if(currentLink<0)currentLink=9;
       if(strlen(linklist[currentLink])!=0)
       {
         SocketCleanUp();
         sprintf(scrolltext,"%d. Ergebnis: %s",currentLink,linklist[currentLink]);
         scrollcount=0;
         ShellExecute(hWnd, NULL,linklist[currentLink], NULL, NULL, SW_NORMAL);
         SetForegroundWindow(hMainWnd);
       }
     }
     //------------------
     // search click
     //------------------
     else if(pts.x>186&&pts.x<200&&pts.y>30&&pts.y<44)
     {
       char buf[1024],search[1024];
       GetWindowText(hCmd,buf,1024);
       SetFocus(hCmd);
       strcpy(target,"www.google.de");
       for(int i=0;i<10;i++)
         memset(linklist[i],0,1024);
       makeSearchLink(buf);
       sprintf(search,"http://www.google.de/search?q=%s&btnG=Suche&hl=de&as_qdr=all&num=100" target="blank">http://www.google.de/search?q=%s&btnG=Suche&hl=de&as_qdr=all&num=100",buf);
       ShellExecute(hWnd, NULL,search, NULL, NULL, SW_NORMAL);
     }
     else SendMessage(hWnd, WM_NCLBUTTONDOWN, HTCAPTION,NULL);
     break;
   }
   case WM_MOUSEMOVE:
       pts = MAKEPOINTS(lParam);
     break;
   case WM_COMMAND:
   {
     // exit button
     if (HIWORD(wParam) == BN_CLICKED &&
     (HWND) lParam == hExit) //LOWORD(wParam) == 1 &&
     {  
       //char c[256];
       //sprintf(c,"%d",message);
       //MessageBox(NULL,c,"info",MB_ICONINFORMATION);
       PostQuitMessage(0);
       return 0;
     }
     else if (HIWORD(wParam) == BN_CLICKED &&
     (HWND) lParam == hMini)
     {  
       SendMessage(hWnd,WM_SIZE,SIZE_MINIMIZED,0);
       return 0;
     }
     else if(HIWORD(wParam)==1281)  
     {
       //------------------
       // google autosearch
       //------------------
       char buf[1024],search[1024];
       GetWindowText(hCmd,buf,1024);
       SetFocus(hCmd);
       strcpy(target,"www.google.de");
       for(int i=0;i<10;i++)
         memset(linklist[i],0,1024);
       makeSearchLink(buf);
       sprintf(search,"/search?q=%s&btnG=Suche&hl=de&as_qdr=all&num=10",buf);
       strcpy(scrolltext,"searching for ");
       strcat(scrolltext,buf);
       scrollcount=0;
       crawl(search);
       return 0;
     }
     else
     {
       char buf[256];
       sprintf(buf,"%d,%d\r\n",LOWORD(wParam),HIWORD(wParam));
        //myprint(buf);
     }
   }
   break;
   case WM_TIMER:
   {
switch(wParam)
{
 case 1:
     ClientListen();
 break;
 default: //case 2:
{
 scrollcount+=1;
 //if(scrollcount>strlen(scrolltext)*6)scrollcount=0;

 RECT r;
 r.left=15;
 r.top=13;
 r.right=238;
 r.bottom=24;
 InvalidateRect(hWnd,&r,FALSE);
}
 break;
}
   }
   break;
   case WM_ACTIVATE:
   {
     SetFocus(hCmd);
     return 0;
   }
   case WM_DESTROY:
   {
     WSACleanUp();
     PostQuitMessage(0);
     return 0;
   }
 }
 return DefWindowProc(hWnd, message, wParam, lParam);
}

socket.cpp
#include <winsock2.h>

 char target[256];
 char subTarget[512];

 BOOL connected=FALSE;

 char pagebuf[16777216];

 char linklist[10][1024];

void myprint(char *txt)
{
/*
 int len = GetWindowTextLength(hEdit);
 char* buf;
 buf = (char*)GlobalAlloc(GPTR, len + strlen(txt) + 5);
 memset(buf,0,len + strlen(txt) + 5);
 GetWindowText(hEdit,buf,len+5);
 strcat(buf,txt);
 SetWindowText(hEdit,buf);
 GlobalFree(buf);
*/
}


// long rc;
// int i;
 SOCKET ServerSocket;
 SOCKADDR_IN addr;

BOOL WSAInit()
{
 WSADATA wsa;
 WSAStartup(MAKEWORD(2,0),&wsa);
 return TRUE;
}

BOOL SocketInit()
{
 ServerSocket=socket(AF_INET,SOCK_STREAM,0);
 if(ServerSocket==INVALID_SOCKET)
 {
   myprint("Fehler: Der Socket konnte nicht erstellt werden\r\n");
   return 0;
 }
 else
 {
   myprint("Socket erstellt\r\n");
 }
 return TRUE;
}

BOOL WSACleanUp()
{
 WSACleanup();
 return TRUE;
}

BOOL SocketCleanUp()
{
 closesocket(ServerSocket);
 myprint("Socket geschlossen\r\n");
 return TRUE;
}

BOOL ClientInit()
{
 HOSTENT* he;
 unsigned long ip;
 long rc;

 // Verbinden
 memset(&addr,0,sizeof(SOCKADDR_IN)); //  auf 0
 addr.sin_family=AF_INET;
 addr.sin_port=htons(80);

 ip=inet_addr(target);
 if(ip==INADDR_NONE)
 {
   he=gethostbyname(target);
   if(he==NULL)
   {
     char c[256];
     sprintf(c,"Fehler: connect zu %s gescheitert, gethostbyname failed",target);
     myprint(c);
     return 0;
   }
   memcpy(&(addr.sin_addr),he->h_addr_list[0],4);
 }
 else addr.sin_addr.s_addr=ip;

 rc=connect(ServerSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));
 if(rc==SOCKET_ERROR)
 {
   char c[256];
   sprintf(c,"Fehler: connect zu %s gescheitert, errorcode %x",target,WSAGetLastError());
   myprint(c);
   return 0;
 }
 else
 {  
   char c[256];
   sprintf(c,"Verbunden mit %s..\r\n",target);
   myprint(c);
 }
 return TRUE;
}

BOOL crawl(char *url);

BOOL ClientListen()
{
  char buf[1024];
  long rc;
  TIMEVAL tv={0,100};
  FD_SET fdSet;
  FD_ZERO(&fdSet); // Inhalt leeren
  FD_SET(ServerSocket,&fdSet);
  rc=select(0,&fdSet,NULL,NULL,&tv);
  if(rc==SOCKET_ERROR||rc==0)
  {
    return 0;
  }
  if(FD_ISSET(ServerSocket,&fdSet))
  {
    if(ServerSocket==INVALID_SOCKET)return FALSE;
    rc=recv(ServerSocket,buf,1024,0);
    buf[rc]='\0';
    strcat(pagebuf,buf);
   // myprint(buf);myprint("\r\n");
//char c[256];sprintf(c,"rc: %d - %d %d",rc,buf[rc-2],buf[rc-1]);MessageBox(hMainWnd,c,"bla",MB_OK);

    if(rc<1024||rc==SOCKET_ERROR)
    {
      KillTimer(hMainWnd,1);
      // now scan through buffer
      char *p=pagebuf;myprint("scanning..\r\n");
int results=0;
      while((p=strstr(p,"l href=\"http://www"))!=NULL)
      {
        p+=8;
        char *p2;
        if((p2=strstr(p,"\""))!=NULL)
        {
          *p2=0;
          char newUrl[256];
          strcpy(newUrl,p);
          BOOL f=FALSE;
          for(int i=0;i<10;i++)
          {
            if(strcmp(newUrl,linklist[i])==0){f=TRUE;break;}
          }
          if(f){p=p2+1;continue;}

          for(int i=0;i<10;i++)
          {
            if(strlen(linklist[i])==0)
            {
              strcpy(linklist[i],newUrl);
              results++;
              break;
            }
          }
        }
        p=p2+1;
      }  
      myprint("cycle end\r\n");  
 currentLink=0;
      if(strlen(linklist[currentLink])!=0)
      {
        SocketCleanUp();
        strcpy(scrolltext,linklist[currentLink]);
        scrollcount=0;
        ShellExecute(hMainWnd, NULL,linklist[currentLink], NULL, NULL, SW_NORMAL);
        SetForegroundWindow(hMainWnd);
      }
    }
  }
  return TRUE;
}

BOOL crawl(char *url)
{
 strcpy(subTarget,url);
 memset(pagebuf,0,65536);
 char c[1024];
 SocketInit();
 ClientInit();
 sprintf(c,"GET %s HTTP/1.1\nHost: %s\n\r\n\r",subTarget,target);
 send(ServerSocket,c,(int)strlen(c),0);

       // timer initialisieren
       SetTimer(hMainWnd,        // handle to main window
           1,                   // timer identifier
           100,                 // ms interval
           (TIMERPROC) NULL);   // no timer callback
 return TRUE;
}

gruesse, die plapperkatz

zurück zur Kategorie "Tutorials"
[0 Kommentare]

Name


Kommentar




Bitte abtippen


 
(C) 2006-20012 Plapperkatze - 220706 Besucher seit dem 23.01.2012 Login