Charlie SoftApycom jQuery Menus
You are here: / Accueil / Software / Wake on Wan

Wake on Wan

La paresse est la mère du génie, il parait. Donc j'ai décidé d'appliquer ce principe et j'ai donc développé une application pour pouvoir démarrer son ordi de n'importe où, en cliquant juste sur son téléphone.

Pour réussir ce petit tour de magie, je me suis aidé de l'excelent site Depicus. Le programme utilise la base de registre de windows mobile pour sauvegarder les info de connexion. Il essaye aussi de se connecter s'il ne trouve pas de connexion déjà établie.

Pour fonctionner, le téléphone doit fonctionner au minimum sous Windows Mobile 6.0, et les images sont destinées à un téléphone ayant une résolution de 480 pixels de large.

Logiciel Toutes les résolutions
Sources Les .cpp et .h

 

        

SDK Manila

Pour réaliser l'interface, j'ai utilisé le SDK de Manila Sense que j'ai développé... La mise en page a donc été très facile et tient en quelques lignes :

Section *sec=new Section(100,0,0,wMax,L"Wake on wan");
MyPanel* panelTmp;
panelTmp=new MyPanel(-1,0,0,wMax,L"Host information :",true,false);
panelTmp->add(new MyLabel(-1,10,15,L"Host IP or name :",TEXT_NORMAL));
panelTmp->add(new MyEditControl(1,30,0,wMax-60));
panelTmp->add(new MyLabel(-1,10,10,L"Mac address :",TEXT_NORMAL));
panelTmp->add(new MyEditControl(2,30,0,wMax-60));
panelTmp->add(new MyLabel(-1,10,5,L"Port :",TEXT_NORMAL));
panelTmp->add(new MyEditControl(3,30,0,wMax-60));
sec->add(panelTmp);
sec->add(new MyItem(4,10,30,ITEM_IS_BUTTON_NORMAL,ITEM_STATE_DSBL_EMPTY,L"Send magic packet !"));
sec->add(new MyLabel(6,10,30,L"Trying to connect...",TEXT_NORMAL));
sec->add(new MyItem(5,150,150, ITEM_IS_BUTTON_SHORT,ITEM_STATE_EBL_EMPTY,L"Quit"));
GlobalInformations::window->add(sec);

Utilisation de la base de registre

La base de registre de windows permet d'enregistrer des données personnelles pour garder en mémoire des infos sur la configuration après un redémarrage. Dans cette application, nous utilisons la base de registre pour savoir si l'utilisateur a déjà été prévenu qu'il allait envoyer des données sur internet mais aussi pour se souvenir des valeurs qu'il a saisi.

La première chose à faire avant d'utiliser la base de donnée, c'est de l'ouvrir :

long retCreate=RegCreateKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWAREWakeOnWAN", 0, 0, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, 0, &myKey, 0);

Cette fonction permet d'ouvir (ou de créer s'il n'existe pas) un groupe de valeurs qui s'appelle "SOFTWAREWakeOnWAN".  La clé (on utilise le mot clé pour désigner le groupe de valeurs) est sauvegardée dans la variable myKey de type HKEY.

Ensuite, il suffit d'utiliser la clé pour récupérer ou sauvegarder des valeurs :

DWORD sizeValue=sizeof(bool);//on va récupérer un booléen donc on donne sa taille
RegQueryValueEx(myKey,L"showInfo", 0, 0, (BYTE*)showInfo, &sizeValue);

On a donc récupéré dans la variable showInfo (de type bool) la valeur qui était enregistrée dans la base de données. Pour enregistrer une valeur, ce n'est pas plus compliqué :

DWORD sizeValue=sizeof(bool);//on va envoyer un booléen donc on donne sa taille
RegSetValueEx(myKey, L"showInfo", 0, REG_BINARY, (BYTE*)&newVal, sizeValue);

Ici, il faut juste rajouter l'information sur le type de données enregistrées... Il y a plusieurs valeurs, un petit tour sur le site MSDN vous renseignera sur ce qu'il faut mettre...



Post a question:

Fil d'ariane

Images aléatoires

Humour
Humour
Humour
Humour
Humour
Thibault LELORE