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
[api] Définir une police pour toute la fenêtre [ par hoGan ]
Bonjour, tout est dans le titre: j'aimerais définir moi-même une police par défaut; comment faire? sinon, est-ce que quelqu'un sait m'expliquer comm
MySQL API C, libération de mémoire tampon... [ par Guizmo95 ]
Bonjour,je développe un programme en C avec l'API C pour MySQL, et mon mon problème est le suivant, je lance le programme et je regarde la m
API Windows - Problème ChooseColor [ par banane_rose ]
salut voilà j'ai une dialog et dans ma dialog j'ai un bouton censé faire apparaitre la dialog commune "choosecolor" , mais dans la structur
[api] Bouton non cliquable [ par hoGan ]
Bonjour, je me demandais comment créer un bouton non cliquable, et pouvoir le rendre cliquable par la suite.. Voilà ce que j'ai essayé:
[api] Image qui s'efface [ par hoGan ]
Bonjour, voilà ce que je voudrais faire: lorsque j'appuie sur un bouton, faire apparaître une image, et faire en sorte que celle-ci ne disp
Microsoft Speech API [ par minns ]
Je cherche un programme sur les reconnaissances vocales écrit en C++. A l'aide, Urgent.badabok
API Windows - Fenêtre sans bordure ? [ par banane_rose ]
Bonsoir , Voilà je cherche à faire une fenêtre sans bordure du tout (ou plutôt invisible) mais qui garde la fonction du redimensi
Comment utiliser IsDebuggerPresent [ par zave ]
Bonjour à tous Voilà je débute en C++, langage, je suis très intéréssé par l'aspect sécurité des program
|
Derniers Blogs
TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|