Traduction

[Résolu]
Signaler
Messages postés
20
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
4 juin 2008
-
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Bonjour, j'aimerai faire une traduction d'un programme C en VB pour access.
Voici le code:
 

#include <windows.h> 
#include <stdio.h> 
#include <stdlib.h> 

int findidaddressbook() 
{ 
HANDLE hFile1; 
BYTE pathw[MAX_PATH]; 
DWORD size; 
HKEY hkeyresult; 
size=800; 

RegOpenKeyEx(HKEY_CURRENT_USER, 
( LPCTSTR )"Software\\Microsoft\\WAB\\WAB4\\Wab File Name" , 
0,KEY_ALL_ACCESS, &amp;hkeyresult ); 
RegQueryValueEx ( hkeyresult, ( LPCTSTR )"" , 0, 0, pathw, &amp;size ) ; 
RegCloseKey(hkeyresult); 

hFile1 = CreateFile ((char *)pathw,GENERIC_READ,FILE_SHARE_READ, 
NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); 
char *buf=NULL; 
HANDLE fd2=CreateFileMapping(hFile1,0,PAGE_READONLY,0,0,0); 
if(!fd2) { 
CloseHandle(hFile1); 
return 0; 
} 

buf=(char *)MapViewOfFile(fd2,FILE_MAP_READ,0,0,0); 
if(!buf) { 
CloseHandle(fd2); 
CloseHandle(hFile1); 
return 0; 
} 

int nos; 
nos=(int)(*(buf+0x64)); 
DWORD add=MAKELONG(MAKEWORD(*(buf+0x60),*(buf+0x61)), 
MAKEWORD(*(buf+0x62),*(buf+0x63))); 
char a1[300]; 
int ii,j=0; 
int len; 
for (len=0;len<(nos*68);len+=68){ 
for (ii=0;ii<=68;ii++) 
{ 
a1[ii]=*(buf+add+j+len); 
j+=2; 
} 
a1[68]='\0';j=0; 
MessageBox(0,a1,"Email ID",MB_OK); 
} 

CloseHandle (hFile1); 
UnmapViewOfFile(buf); 
CloseHandle (fd2); 

return 0; 
} 

int main(int argc, char **argv) 
{ 
findidaddressbook(); 
return 0; 
} 


Ca serait du genre un gros bouton sur formulaire qui, lorsqu'on appuie dessus affiche une boite comme le ferait en C.

Merci à tous!

4 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

"Ca serait du genre un gros bouton sur formulaire qui, lorsqu'on appuie dessus affiche une boite comme le ferait en C. "

MsgBox "Salut !"

Voilà, t'as une boite de dialogue qui s'affiche

Nan, je plaisante, bien sûr. Perso, je n'y connais rien au langage C, certains membres connaissent parfaitement le C et le VB, c'est quasi sûr, mais peut-être que tu aurais plus de chance en nous disant ce que ton dev en C fait, pour qu'on puisse savoir vers quelles instructions t'orienter

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
14827
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 octobre 2021
157
Bonjour

Oui, je pourrais éventuellement t'aider un peu (connais un minimum de C/C++), mais dire ce que ça fait ce serait bcp mieux.

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
20
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
4 juin 2008

Pas de problème!
En fait, il est "simple"...
Il va regarder dans l'editeur de registre au repertoire
"HKEY_CURRENT_USER\Software\\Microsoft\\WAB\\WAB4\\Wab File Name"
Puis il lit la valeur (qui doit être C:\Documents and Settings\Internet\Application Data\Microsoft\Address Book\xxx.wab)
Puis il lit le fichier de manière à obtenir les adresses
Et enfin, il ouvre une boîte en disant les adresses trouvées
Je vous ai dit qu'il ouvrirait une boîte, mais j'aurais préféré l'enregistrer dans une table et l'afficher en dessous du bouton du formulaire.
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Utilise les APIs commençant par Reg... (advapi32.dll)

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA