Accueil > > > DCKBLOG, POUR SE CONNECTER FACILEMENT AU SKYBLOG :D
DCKBLOG, POUR SE CONNECTER FACILEMENT AU SKYBLOG :D
Information sur la source
Description
Bonjour tous le monde,
Voila, mon 1er programme en win32 (soyez indulgent mdr). Bon c'est pas faramineu mais je m'en sert assez souvent quand même l'air de rien :p . Car ça me saoule de taper l'adresse d'un skyblog que une/un ami(e) veut absolument vous montrer. Et lorsque j'ai une erreur 404 j'explose car toute l'adresse est a retaper. :D bref si vous êtes parresseux comme moi ptdrrr ce prog peut vous éviter des petites tâches inutiles.
PS : si vous avez des commentaires ou conseil sur le code , ne vous faite pas prié , dites les moi. Surtout si ça permet une bonne optimisation.
Source
- #include<string.h>
- #include<windows.h>
-
- #define QUIT 1
- #define PROPOS 2
-
- /* variable HINSTANCE public */
- HINSTANCE GlobalHInstance;
-
- HWND GlobalEdit;
- HWND GlobalPage;
- HWND D_hwButton;
-
- /* Signature de la procédure sky */
- void sky(HWND);
-
- /* Signature de la fonction de traitement des messages */
- LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
-
- int WINAPI WinMain (HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpszArgument,
- int nFunsterStil)
-
- {
- HWND hwnd; /* handle de la fenêtre window */
- MSG messages; /* Variable qui reçoit les message */
- WNDCLASSEX wincl; /* Structure de class pour créér la fenêtre */
- HMENU MainMenu,UnderFileMenu; /* Variables pour les menus. */
- HMENU UnderHelpMenu;
-
- GlobalHInstance = hInstance;
-
- wincl.hInstance = hInstance;
- wincl.lpszClassName = "MaClassWin";
- wincl.lpfnWndProc = MainWndProc; /* This function is called by windows */
- wincl.style = CS_DBLCLKS; /* Catch double-clicks */
- wincl.cbSize = sizeof(WNDCLASSEX);
- wincl.hIcon = LoadIcon (NULL, "ico.ico");
- wincl.hIconSm = LoadIcon (NULL, "ico.ico");
- wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
- wincl.lpszMenuName = NULL;
- wincl.cbClsExtra = 0;
- wincl.cbWndExtra = 0;
- wincl.hbrBackground = (HBRUSH)(1+COLOR_BTNFACE);
-
- /*Enregistrement de la class en mémoire*/
- if (!RegisterClassEx(&wincl))
- return 0; /* si l'enregistrement de la classe à échoué on renvoie 0 pour fermer le programme */
-
- /* Création du menu Fichier */
- UnderFileMenu = CreateMenu();
- AppendMenu(UnderFileMenu,MF_STRING,QUIT,"Quitter");
- MainMenu = CreateMenu();
- AppendMenu(MainMenu,MF_POPUP,(UINT)UnderFileMenu,"Fichier");
-
- /* Création du menu ? */
- UnderHelpMenu = CreateMenu();
- AppendMenu(UnderHelpMenu,MF_STRING,PROPOS,"A propos de ...");
- AppendMenu(MainMenu,MF_POPUP,(UINT)UnderHelpMenu,"?");
-
- /* création de la fenêtre */
- hwnd = CreateWindowEx(
- 0, /* Extended possibilites for variation */
- "MaClassWin", /* Nom de la class */
- "DCKblog", /* Title Text */
- WS_OVERLAPPED|WS_SYSMENU |WS_MINIMIZEBOX, /* Fenêtre par défaut */
- /*Pour rendre inutilisable un des trois boutons (_,[],X) Il faut un style OVERLAPPED (sans les bouton)
- un style SYSMENU pour permettre l'activation des boutons et puis ensuite choisi ceux que l'on désire
- ici MINIMIZE) */
- CW_USEDEFAULT, /* Windows décide la position */
- CW_USEDEFAULT, /* where the window ends up on the screen */
- 319, /* Largeur */
- 130, /* Hauteur */
- HWND_DESKTOP,
- MainMenu, /* menu */
- hInstance, /* Instance handler du programme */
- NULL /* No Window Creation data */
- );
-
-
-
- /* Rend la fenêtre visible */
- ShowWindow (hwnd,nFunsterStil);
- /* Rafraichi la zone client */
- UpdateWindow(hwnd);
-
-
- /* Récupération des messages*/
- while (GetMessage(&messages, NULL, 0, 0))
- { /* Dès que l'on appuye sur enter */
- if(messages.message == WM_KEYDOWN && messages.wParam==VK_RETURN){
- sky(hwnd);
- }
- if(messages.message==WM_KEYDOWN && messages.wParam==VK_TAB){
- HWND D_hwWhoNext;
-
- D_hwWhoNext = GetFocus();
- if(D_hwWhoNext==GlobalEdit)
- SetFocus(GlobalPage);
- if(D_hwWhoNext==GlobalPage)
- SetFocus(D_hwButton);
- if(D_hwWhoNext==D_hwButton)
- SetFocus(GlobalEdit);
-
- }
- /* Traduction des messages */
- TranslateMessage(&messages);
- /* Envoie des messages à la focntion MainWndProc */
- DispatchMessage(&messages);
- }
- /* Si return 0, le programme ferme */
- return messages.wParam;
- }
-
-
- /* Traitement des messages */
- LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
- {
- HWND LabelPage;
- switch (message)
- {
- case WM_CREATE: GlobalEdit = CreateWindow("edit","",WS_CHILD | WS_VISIBLE | WS_BORDER,30,20,150,17,hwnd,NULL,GlobalHInstance,NULL);
- GlobalPage = CreateWindow("edit","1",WS_CHILD | WS_VISIBLE | WS_BORDER,80,50,30,17,hwnd,NULL,GlobalHInstance,NULL);
- LabelPage = CreateWindow("static","Page : ",WS_CHILD | WS_VISIBLE,30,50,50,17,hwnd,NULL,GlobalHInstance,NULL);
- D_hwButton = CreateWindow("button","&Connect",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_DEFPUSHBUTTON,215,50,60,20,hwnd,(HMENU)1112,GlobalHInstance,NULL);
- SetFocus(GlobalEdit); /* Donne le focus au controle edit */
-
- return 0;
- break;
- case WM_DESTROY:
- PostQuitMessage (0);
- break;
- case WM_COMMAND: if(LOWORD(wParam)==QUIT)PostMessage(hwnd,WM_CLOSE,0,0); /* Traitement de Quitter du menu Fichier */
- if(LOWORD(wParam)==PROPOS)MessageBox(hwnd,
- "Crée par : Deck_bsd\nVersion : 2.0\n\nFreeware\n\nMail :deck_bsd01@yahoo.fr\nSite: http://deck-bsd.eurower.net",
- "à propos de DCKblog",
- MB_OK | MB_ICONINFORMATION);
- if(HIWORD(wParam)==BN_CLICKED && D_hwButton==GetFocus()){
- if(LOWORD(wParam)==1112){
- sky(hwnd);
- }
- return 0;
- break;
- case WM_PAINT : /* Message envoyé par windows lorsque la fenêtre à besoin de se re-dessiner */
- HDC D_hdText; /* On remet le code du message ".skyblog.com". Car si on ne traite pas WM_PAINT */
- PAINTSTRUCT D_paOnlyDelete; /*Lorque la fenêtre est mise en arrière plan et qu'on la sélectionne */
- D_hdText = BeginPaint(hwnd,&D_paOnlyDelete); /*Le text défini au début n'existe plus */
- SetBkMode(D_hdText,TRANSPARENT);
- TextOut(D_hdText,190,20,".skyblog.com",strlen(".skyblog.com"));
- ReleaseDC(hwnd,D_hdText);
- return 0;
- break;
- /*case WM_KEYDOWN : if(wParam==VK_RETURN) MessageBox(hwnd,"OUI","WM_KEYDOWN",MB_OK | MB_ICONWARNING);*/
- break;
-
-
- /* La variable de type HDC na plus une valeur obtenue avec GetDc mais bien avec BeginPaint */
- /* Cela est pour éviter le scientiellment lors du redimensionnement,... de la fenêtre. */
- /* Cela permet de redessiner seulment ce qui à besoin de l'être. */
- default:
- return DefWindowProc(hwnd, message, wParam, lParam);
- }
-
- return 0;
- }
- }
-
-
- void sky(HWND hwnd)
- {
-
- char D_szSkyblog[100]="http://";
- char D_szSkyName[50];
- char D_szNOPage[4]="";
-
- GetWindowText(GlobalEdit,D_szSkyName,50);
- GetWindowText(GlobalPage,D_szNOPage,4);
- strcat(D_szSkyblog,D_szSkyName);
- strcat(D_szSkyblog,".skyblog.com");
- if(strcmp(D_szNOPage,"")==0 || strcmp(D_szNOPage,"1")==0){
- strcpy(D_szNOPage,"index");
- }
- strcat(D_szSkyblog,"/");
- strcat(D_szSkyblog,D_szNOPage);
- strcat(D_szSkyblog,".html");
- if(32>(long)ShellExecute(NULL,"open",D_szSkyblog,0,0,SW_MAXIMIZE)){
- /* Musique :p 300 = fréquence et 90 = durée ms */
- _beep(3000,90);
- _beep(3000,90);
- MessageBox(hwnd,
- "Connexion impossible!",
- "Erreur",
- MB_OK | MB_ICONERROR);
- }
- SetWindowText(GlobalEdit,""); /*Remise du text de hEdit à zéro */
- SetFocus(GlobalEdit);
- }
#include<string.h>
#include<windows.h>
#define QUIT 1
#define PROPOS 2
/* variable HINSTANCE public */
HINSTANCE GlobalHInstance;
HWND GlobalEdit;
HWND GlobalPage;
HWND D_hwButton;
/* Signature de la procédure sky */
void sky(HWND);
/* Signature de la fonction de traitement des messages */
LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)
{
HWND hwnd; /* handle de la fenêtre window */
MSG messages; /* Variable qui reçoit les message */
WNDCLASSEX wincl; /* Structure de class pour créér la fenêtre */
HMENU MainMenu,UnderFileMenu; /* Variables pour les menus. */
HMENU UnderHelpMenu;
GlobalHInstance = hInstance;
wincl.hInstance = hInstance;
wincl.lpszClassName = "MaClassWin";
wincl.lpfnWndProc = MainWndProc; /* This function is called by windows */
wincl.style = CS_DBLCLKS; /* Catch double-clicks */
wincl.cbSize = sizeof(WNDCLASSEX);
wincl.hIcon = LoadIcon (NULL, "ico.ico");
wincl.hIconSm = LoadIcon (NULL, "ico.ico");
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;
wincl.hbrBackground = (HBRUSH)(1+COLOR_BTNFACE);
/*Enregistrement de la class en mémoire*/
if (!RegisterClassEx(&wincl))
return 0; /* si l'enregistrement de la classe à échoué on renvoie 0 pour fermer le programme */
/* Création du menu Fichier */
UnderFileMenu = CreateMenu();
AppendMenu(UnderFileMenu,MF_STRING,QUIT,"Quitter");
MainMenu = CreateMenu();
AppendMenu(MainMenu,MF_POPUP,(UINT)UnderFileMenu,"Fichier");
/* Création du menu ? */
UnderHelpMenu = CreateMenu();
AppendMenu(UnderHelpMenu,MF_STRING,PROPOS,"A propos de ...");
AppendMenu(MainMenu,MF_POPUP,(UINT)UnderHelpMenu,"?");
/* création de la fenêtre */
hwnd = CreateWindowEx(
0, /* Extended possibilites for variation */
"MaClassWin", /* Nom de la class */
"DCKblog", /* Title Text */
WS_OVERLAPPED|WS_SYSMENU |WS_MINIMIZEBOX, /* Fenêtre par défaut */
/*Pour rendre inutilisable un des trois boutons (_,[],X) Il faut un style OVERLAPPED (sans les bouton)
un style SYSMENU pour permettre l'activation des boutons et puis ensuite choisi ceux que l'on désire
ici MINIMIZE) */
CW_USEDEFAULT, /* Windows décide la position */
CW_USEDEFAULT, /* where the window ends up on the screen */
319, /* Largeur */
130, /* Hauteur */
HWND_DESKTOP,
MainMenu, /* menu */
hInstance, /* Instance handler du programme */
NULL /* No Window Creation data */
);
/* Rend la fenêtre visible */
ShowWindow (hwnd,nFunsterStil);
/* Rafraichi la zone client */
UpdateWindow(hwnd);
/* Récupération des messages*/
while (GetMessage(&messages, NULL, 0, 0))
{ /* Dès que l'on appuye sur enter */
if(messages.message == WM_KEYDOWN && messages.wParam==VK_RETURN){
sky(hwnd);
}
if(messages.message==WM_KEYDOWN && messages.wParam==VK_TAB){
HWND D_hwWhoNext;
D_hwWhoNext = GetFocus();
if(D_hwWhoNext==GlobalEdit)
SetFocus(GlobalPage);
if(D_hwWhoNext==GlobalPage)
SetFocus(D_hwButton);
if(D_hwWhoNext==D_hwButton)
SetFocus(GlobalEdit);
}
/* Traduction des messages */
TranslateMessage(&messages);
/* Envoie des messages à la focntion MainWndProc */
DispatchMessage(&messages);
}
/* Si return 0, le programme ferme */
return messages.wParam;
}
/* Traitement des messages */
LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND LabelPage;
switch (message)
{
case WM_CREATE: GlobalEdit = CreateWindow("edit","",WS_CHILD | WS_VISIBLE | WS_BORDER,30,20,150,17,hwnd,NULL,GlobalHInstance,NULL);
GlobalPage = CreateWindow("edit","1",WS_CHILD | WS_VISIBLE | WS_BORDER,80,50,30,17,hwnd,NULL,GlobalHInstance,NULL);
LabelPage = CreateWindow("static","Page : ",WS_CHILD | WS_VISIBLE,30,50,50,17,hwnd,NULL,GlobalHInstance,NULL);
D_hwButton = CreateWindow("button","&Connect",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_DEFPUSHBUTTON,215,50,60,20,hwnd,(HMENU)1112,GlobalHInstance,NULL);
SetFocus(GlobalEdit); /* Donne le focus au controle edit */
return 0;
break;
case WM_DESTROY:
PostQuitMessage (0);
break;
case WM_COMMAND: if(LOWORD(wParam)==QUIT)PostMessage(hwnd,WM_CLOSE,0,0); /* Traitement de Quitter du menu Fichier */
if(LOWORD(wParam)==PROPOS)MessageBox(hwnd,
"Crée par : Deck_bsd\nVersion : 2.0\n\nFreeware\n\nMail :deck_bsd01@yahoo.fr\nSite: http://deck-bsd.eurower.net",
"à propos de DCKblog",
MB_OK | MB_ICONINFORMATION);
if(HIWORD(wParam)==BN_CLICKED && D_hwButton==GetFocus()){
if(LOWORD(wParam)==1112){
sky(hwnd);
}
return 0;
break;
case WM_PAINT : /* Message envoyé par windows lorsque la fenêtre à besoin de se re-dessiner */
HDC D_hdText; /* On remet le code du message ".skyblog.com". Car si on ne traite pas WM_PAINT */
PAINTSTRUCT D_paOnlyDelete; /*Lorque la fenêtre est mise en arrière plan et qu'on la sélectionne */
D_hdText = BeginPaint(hwnd,&D_paOnlyDelete); /*Le text défini au début n'existe plus */
SetBkMode(D_hdText,TRANSPARENT);
TextOut(D_hdText,190,20,".skyblog.com",strlen(".skyblog.com"));
ReleaseDC(hwnd,D_hdText);
return 0;
break;
/*case WM_KEYDOWN : if(wParam==VK_RETURN) MessageBox(hwnd,"OUI","WM_KEYDOWN",MB_OK | MB_ICONWARNING);*/
break;
/* La variable de type HDC na plus une valeur obtenue avec GetDc mais bien avec BeginPaint */
/* Cela est pour éviter le scientiellment lors du redimensionnement,... de la fenêtre. */
/* Cela permet de redessiner seulment ce qui à besoin de l'être. */
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}
}
void sky(HWND hwnd)
{
char D_szSkyblog[100]="http://";
char D_szSkyName[50];
char D_szNOPage[4]="";
GetWindowText(GlobalEdit,D_szSkyName,50);
GetWindowText(GlobalPage,D_szNOPage,4);
strcat(D_szSkyblog,D_szSkyName);
strcat(D_szSkyblog,".skyblog.com");
if(strcmp(D_szNOPage,"")==0 || strcmp(D_szNOPage,"1")==0){
strcpy(D_szNOPage,"index");
}
strcat(D_szSkyblog,"/");
strcat(D_szSkyblog,D_szNOPage);
strcat(D_szSkyblog,".html");
if(32>(long)ShellExecute(NULL,"open",D_szSkyblog,0,0,SW_MAXIMIZE)){
/* Musique :p 300 = fréquence et 90 = durée ms */
_beep(3000,90);
_beep(3000,90);
MessageBox(hwnd,
"Connexion impossible!",
"Erreur",
MB_OK | MB_ICONERROR);
}
SetWindowText(GlobalEdit,""); /*Remise du text de hEdit à zéro */
SetFocus(GlobalEdit);
}
Conclusion
A venir :
- Adaptation pour d'autre blog (blognet, ...)
Historique
- 07 janvier 2006 14:30:45 :
- - orthographe
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Lien hypertext API Win32 [ par Buzu ]
Voila: je met à jour une application Windows faite sans les MFC.Cette app dialogue avec une base de données et la fenêtre Recherche affiche les donnée
api + chaines de caractères, concaténation.. [ par hoGan ]
Bonjour, j'ai un problème lorsque je veux convertir un char en string afin de procéder à une concaténation (dans le cadre d'une fe
Developpez Un Anti-porn ,Les API requis ???? [ par marwen109 ]
Bonjour, j'aimerai developpez un petit anti-porn , qui permet de faire des redirection en cas d'un site *** et de filter les résultats de la recherch
comprendre les API win [ par manyyy67 ]
Bonjour, Je debute dans la programmation... J'ai lu le tuto de Nanoc sur le site du zero pour apprendre les base du c++. maintenant j'ai commencer a
snmpwalk API windows [ par Max77240 ]
Bonjour à tous, Je travail avec VisualC++ 2008 et le l'API SNMP de Windows. J'aurais voulu savoir s'il est possible de faire l'équivalent d'un "snmpw
Transférer des données sans internet [ par farouklad ]
Bonjour, comment transférer des données entre deux villes sans internet (il y a une ligne téléphonique) ? quelle sont les outilles?
Intégration d'une page blog dans un site ? [ par Electraln02 ]
Bonjour, Alors voilà, je suis entrain de créer un site avec Dreamweaver CS4 qui contient plusieurs pages (accueil, profil, etc) dont une page qui se
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Forum
ARBRE BINAIREARBRE BINAIRE par pacotheking
Cliquez pour lire la suite par pacotheking
Logiciels
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 Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.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 LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|