adressbuch



  • hi,
    Frage: gibt es funktionen um aus dem adressbuch von Windows die e-mail-adressen auszulesen? (Win98, MSVC++ 6.0)



  • Mit Sicherheit, sonst würde es keine Würmer geben. Aber ich wüßte es auch gerne.



  • hat keiner eine antwort???



  • servus leudz!

    ich denk halt mal ganz einfach, dass die addressen entweder in der registry (eher unwahrscheinlich) oder in einer datei gespeichert sind(wahrscheinlich)...
    ich würde mir dann die win-version auslesen um herauszufinden welche version das adressebuch(falls es nicht geupdated wurde) hat(kann ja sein, dass die dateien mit der zeit umbenannt oder verschoben wurden)... und jetzt würde ich ganz einfach alle addressen, die ein @ enthalten auslesen!
    dAnIel



  • Ich meine solchen Funktionen mal in der MSDN/PSDK im Zusammenhang mit MAPI mal gesehen zu haben...



  • da keiner eine antwort wusste, habe ich mir eine funktion geschrieben die die e-mail adressen aus dem adressenbuch ausliest.
    ich poste die hier rein. koennt ihr pruefen ob die auch bei euch funktioniert... bei mir funkz die prima... (win98)

    die funkion :

    BOOL WabAuslesen (){
    int iZaehler = 0 ;
    char szChar[1],
    szEmail[50] ;
    BYTE szWabFileName[400] ;
    BOOL bPruef = TRUE ;
    FILE *fWabFile ;
    HKEY hKey;
    DWORD dwData = 400 ;
    if ((RegCreateKeyEx (HKEY_CURRENT_USER, "Software\\Microsoft\\WAB\\WAB4\\Wab File Name", 0, 0,
    REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, 0)) == ERROR_SUCCESS){
    if ((RegQueryValueEx (hKey, NULL, 0, 0, szWabFileName, &dwData)) != ERROR_SUCCESS){
    MessageBox (NULL, "kann die Registry nicht oeffnen", "fehler", NULL) ;
    RegCloseKey (hKey) ;
    return FALSE ;
    }
    RegCloseKey (hKey) ;
    }
    else{
    MessageBox (NULL, "kann die Registry nicht oeffnen", "fehler", NULL) ;
    return FALSE ;
    }
    if ((fWabFile = fopen ((LPTSTR) szWabFileName, "r")) == NULL){
    MessageBox (NULL, "kann die WAB nicht oeffnen", "fehler", NULL) ;
    return FALSE ;
    }
    while (!feof (fWabFile)){
    sprintf (szChar, "%c", getc (fWabFile)) ;
    if ((szChar[0] >= 33) && (szChar[0] <= 125)){
    szEmail[iZaehler] = szChar[0] ;
    iZaehler += 1 ;
    bPruef = TRUE ;
    }
    else{
    if (!bPruef){
    szEmail[iZaehler] = '\0' ;
    if ((strchr (szEmail, 64)) && (strchr (szEmail, 46)) && (!strchr (szEmail, 32))){
    MessageBox (NULL, szEmail, "e-mail adresse", NULL) ;
    }
    iZaehler = 0 ;
    }
    bPruef = FALSE ;
    }
    }
    fclose (fWabFile) ;
    return TRUE ;
    }

    // nicht vergessen die <stdio.h> einzubinden.



  • hi gonzo,

    ich habe deinen algorithmus ausprobiert, und bei mir funzt der net so ganz.
    also ich bekomme keine emails aufgelistet. ich habe es auf einem win95 system getestet, da geht's nicht. jetzt hab ich meinen eigenen algo dazu geschrieben und er funzt sowohl bei win95 als auch bei win98.

    ich weis nicht inwiefern sich die versionen der adressbücher unterschreiden, aber anscheinend gibt es doch gemeinsamkeiten dabei 😕

    bis denn


Anmelden zum Antworten