begin process at 2012 05 30 02:05:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

PROBLEME AVEC FENETRE WINDOWS


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PROBLEME AVEC FENETRE WINDOWS

lundi 19 mai 2003 à 10:45:39 | PROBLEME AVEC FENETRE WINDOWS

Krox68

g un prb avec les fenetres windows
des que jentre dans une boucle (while ou for) la fenetre se bloke
Romano
romano492@hotmail.com
lundi 19 mai 2003 à 11:29:03 | Re : PROBLEME AVEC FENETRE WINDOWS

BruNews

Administrateur CodeS-SourceS
On pourrait peut-etre te dire pourquoi si on avait, au moins, ta proc de fenetre.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> g un prb avec les fenetres windows
> des que jentre dans une boucle (while ou for) la fenetre se bloke
> Romano
> romano492@hotmail.com
lundi 19 mai 2003 à 13:49:32 | Re : PROBLEME AVEC FENETRE WINDOWS

Krox68

voila le code source


#include <windows.h>
#include <fenetre.h>
#include <stdlib.h>
#include <winsock.h>
#include <CStr.cpp>

#define Command_ID 300

LRESULT CALLBACK WinProc(HWND, UINT, WPARAM, LPARAM);
void Command_Click(int);
void scanner();
void stop();

HWND fenetre;

SOCKET sock;

int WINAPI WinMain(HINSTANCE instance1, HINSTANCE instance2, LPSTR lps, int nShow)
{
MSG message;
WNDCLASSEX fen;

// Création de la classe
fen.hInstance = instance1; // Instance
fen.lpszClassName = "scanner"; // Nom de la classe
fen.lpfnWndProc = WinProc; // Adresse de la procédure
fen.style = CS_DBLCLKS; // Style
fen.cbSize = sizeof(WNDCLASSEX); // Taille
fen.hIcon = LoadIcon(instance1,"MAIN"); // Grande icone
fen.hIconSm = LoadIcon(NULL,NULL); // Petite icone
fen.hCursor = LoadCursor(NULL, IDC_ARROW); // Curseur
fen.lpszMenuName = NULL; // Menu
fen.cbClsExtra = 0;
fen.cbWndExtra = 0;
fen.hbrBackground = (HBRUSH)(COLOR_3DFACE+1); // Couleur de fond
if(!RegisterClassEx(&fen)) return 0;

fenetre = CreateWindowEx(0,"scanner","Scanner",WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_VISIBLE|WS_MINIMIZEBOX,250,100,250,350,HWND_DESKTOP,NULL,hInst,NULL);
if(fenetre == NULL) return 0;

CreateEdit(1," ", 0,75,245,250,fenetre,0,1,1,1); //MESSAGE
CreateEdit(2,"127.0.0.1",30, 5,118, 20,fenetre,0,0,0,0); //IP

CreateStatic(1,"IP : ",5, 5, 20,20,fenetre);

CreateCommand(1,"Scanner", 30, 30,55,21,fenetre);
CreateCommand(2,"Stop",90, 30,55,21,fenetre);

WSADATA WSAData;
WSAStartup(MAKEWORD(2,0),&WSAData);

ShowWindow(fenetre, SW_SHOW);
UpdateWindow(fenetre);

while (GetMessage(&message, NULL, 0, 0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}

closesocket(sock);
WSACleanup();

return message.wParam;
}

LRESULT CALLBACK WinProc(HWND fenetre2, UINT message2, WPARAM wParam, LPARAM lParam)
{
switch (message2)
{
case WM_DESTROY:
PostQuitMessage(0);
break;

case WM_CLOSE:
DestroyWindow(fenetre2);
break;

case WM_COMMAND:
if(HIWORD(wParam) == BN_CLICKED)Command_Click(LOWORD(wParam) - Command_ID);
break;

default:
return DefWindowProc(fenetre2,message2,wParam,lParam);
break;
}

return 0;
}

void Command_Click(int Index)
{
switch (Index)
{
case 1:
scanner();
break;

case 2:
stop();
break;

}
}


void scanner()
{
char*IP = GetText(edit[2]);
int PORT = 1,n;

SOCKADDR_IN sin;
sock = socket(AF_INET,SOCK_STREAM,0);

sin.sin_addr.s_addr = inet_addr(IP);
sin.sin_family = AF_INET;

while(PORT < 1000) <<<LA BOUCLE ICI
{
sin.sin_port = htons(PORT);

n = connect(sock,(SOCKADDR *)&sin,sizeof(sin));
if(n == 0)
{
SetWindowText(edit[1],"FERME");
}
if(n != 0)
{
SetWindowText(edit[1],"ff\nOUVERT <<<<<<<<");
}

PORT++;
}

closesocket(sock);
WSACleanup();
}

void stop()
{
closesocket(sock);
WSACleanup();
}



Romano
romano492@hotmail.com


-------------------------------
Réponse au message :
-------------------------------

> On pourrait peut-etre te dire pourquoi si on avait, au moins, ta proc de fenetre.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > g un prb avec les fenetres windows
> > des que jentre dans une boucle (while ou for) la fenetre se bloke
> > Romano
> > romano492@hotmail.com
>
lundi 19 mai 2003 à 14:10:39 | Re : PROBLEME AVEC FENETRE WINDOWS

BruNews

Administrateur CodeS-SourceS
tu as essaye void scanner() appele dans une WinMain sans fenetre ni rien pour voir si elle sort correctement ?
return 0 direct apres son appel, tu sauras. On verra ensuite, faut avancer pas a pas.
Tu devrais charger le book Petzold et ses sources, il y a un exemple complet de ce type.
http://perso.wanadoo.fr/persans-brunews/
section telechargement, encore tout neuf.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> voila le code source
>
>
> #include <windows.h>
> #include <fenetre.h>
> #include <stdlib.h>
> #include <winsock.h>
> #include <CStr.cpp>
>
> #define Command_ID 300
>
> LRESULT CALLBACK WinProc(HWND, UINT, WPARAM, LPARAM);
> void Command_Click(int);
> void scanner();
> void stop();
>
> HWND fenetre;
>
> SOCKET sock;
>
> int WINAPI WinMain(HINSTANCE instance1, HINSTANCE instance2, LPSTR lps, int nShow)
> {
> MSG message;
> WNDCLASSEX fen;
>
> // Création de la classe
> fen.hInstance = instance1; // Instance
> fen.lpszClassName = "scanner"; // Nom de la classe
> fen.lpfnWndProc = WinProc; // Adresse de la procédure
> fen.style = CS_DBLCLKS; // Style
> fen.cbSize = sizeof(WNDCLASSEX); // Taille
> fen.hIcon = LoadIcon(instance1,"MAIN"); // Grande icone
> fen.hIconSm = LoadIcon(NULL,NULL); // Petite icone
> fen.hCursor = LoadCursor(NULL, IDC_ARROW); // Curseur
> fen.lpszMenuName = NULL; // Menu
> fen.cbClsExtra = 0;
> fen.cbWndExtra = 0;
> fen.hbrBackground = (HBRUSH)(COLOR_3DFACE+1); // Couleur de fond
> if(!RegisterClassEx(&fen)) return 0;
>
> fenetre = CreateWindowEx(0,"scanner","Scanner",WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_VISIBLE|WS_MINIMIZEBOX,250,100,250,350,HWND_DESKTOP,NULL,hInst,NULL);
> if(fenetre == NULL) return 0;
>
> CreateEdit(1," ", 0,75,245,250,fenetre,0,1,1,1); //MESSAGE
> CreateEdit(2,"127.0.0.1",30, 5,118, 20,fenetre,0,0,0,0); //IP
>
> CreateStatic(1,"IP : ",5, 5, 20,20,fenetre);
>
> CreateCommand(1,"Scanner", 30, 30,55,21,fenetre);
> CreateCommand(2,"Stop",90, 30,55,21,fenetre);
>
> WSADATA WSAData;
> WSAStartup(MAKEWORD(2,0),&WSAData);
>
> ShowWindow(fenetre, SW_SHOW);
> UpdateWindow(fenetre);
>
> while (GetMessage(&message, NULL, 0, 0))
> {
> TranslateMessage(&message);
> DispatchMessage(&message);
> }
>
> closesocket(sock);
> WSACleanup();
>
> return message.wParam;
> }
>
> LRESULT CALLBACK WinProc(HWND fenetre2, UINT message2, WPARAM wParam, LPARAM lParam)
> {
> switch (message2)
> {
> case WM_DESTROY:
> PostQuitMessage(0);
> break;
>
> case WM_CLOSE:
> DestroyWindow(fenetre2);
> break;
>
> case WM_COMMAND:
> if(HIWORD(wParam) == BN_CLICKED)Command_Click(LOWORD(wParam) - Command_ID);
> break;
>
> default:
> return DefWindowProc(fenetre2,message2,wParam,lParam);
> break;
> }
>
> return 0;
> }
>
> void Command_Click(int Index)
> {
> switch (Index)
> {
> case 1:
> scanner();
> break;
>
> case 2:
> stop();
> break;
>
> }
> }
>
>
> void scanner()
> {
> char*IP = GetText(edit[2]);
> int PORT = 1,n;
>
> SOCKADDR_IN sin;
> sock = socket(AF_INET,SOCK_STREAM,0);
>
> sin.sin_addr.s_addr = inet_addr(IP);
> sin.sin_family = AF_INET;
>
> while(PORT < 1000) <<<LA BOUCLE ICI
> {
> sin.sin_port = htons(PORT);
>
> n = connect(sock,(SOCKADDR *)&sin,sizeof(sin));
> if(n == 0)
> {
> SetWindowText(edit[1],"FERME");
> }
> if(n != 0)
> {
> SetWindowText(edit[1],"ff\nOUVERT <<<<<<<<");
> }
>
> PORT++;
> }
>
> closesocket(sock);
> WSACleanup();
> }
>
> void stop()
> {
> closesocket(sock);
> WSACleanup();
> }
>
>
>
> Romano
> romano492@hotmail.com
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > On pourrait peut-etre te dire pourquoi si on avait, au moins, ta proc de fenetre.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > g un prb avec les fenetres windows
> > > des que jentre dans une boucle (while ou for) la fenetre se bloke
> > > Romano
> > > romano492@hotmail.com
> >
>
mardi 20 mai 2003 à 02:40:39 | Re : PROBLEME AVEC FENETRE WINDOWS

Galett

je vais surement dire des bétises, mais ce serait ti pas mieux d'inclure la fonction scanner dans un thread, et mettre dans la boucle while une condition en + (un booléen qui vaut TRUE)
sauf, qd tu appuie sur le boutton, ça remet le booléen en FALSE, et hop tu sors du thread, voilà, je suis pas bien sûr que c'est ce que tu voulais, m'enfin, si ça peut t'aider, voilà un exemple :
http://www.cppfrance.com/article.aspx?Val=1706


manger des galettes et des crêpes
mailto:galett@voila.fr


-------------------------------
Réponse au message :
-------------------------------

> tu as essaye void scanner() appele dans une WinMain sans fenetre ni rien pour voir si elle sort correctement ?
> return 0 direct apres son appel, tu sauras. On verra ensuite, faut avancer pas a pas.
> Tu devrais charger le book Petzold et ses sources, il y a un exemple complet de ce type.
> http://perso.wanadoo.fr/persans-brunews/
> section telechargement, encore tout neuf.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > voila le code source
> >
> >
> > #include <windows.h>
> > #include <fenetre.h>
> > #include <stdlib.h>
> > #include <winsock.h>
> > #include <CStr.cpp>
> >
> > #define Command_ID 300
> >
> > LRESULT CALLBACK WinProc(HWND, UINT, WPARAM, LPARAM);
> > void Command_Click(int);
> > void scanner();
> > void stop();
> >
> > HWND fenetre;
> >
> > SOCKET sock;
> >
> > int WINAPI WinMain(HINSTANCE instance1, HINSTANCE instance2, LPSTR lps, int nShow)
> > {
> > MSG message;
> > WNDCLASSEX fen;
> >
> > // Création de la classe
> > fen.hInstance = instance1; // Instance
> > fen.lpszClassName = "scanner"; // Nom de la classe
> > fen.lpfnWndProc = WinProc; // Adresse de la procédure
> > fen.style = CS_DBLCLKS; // Style
> > fen.cbSize = sizeof(WNDCLASSEX); // Taille
> > fen.hIcon = LoadIcon(instance1,"MAIN"); // Grande icone
> > fen.hIconSm = LoadIcon(NULL,NULL); // Petite icone
> > fen.hCursor = LoadCursor(NULL, IDC_ARROW); // Curseur
> > fen.lpszMenuName = NULL; // Menu
> > fen.cbClsExtra = 0;
> > fen.cbWndExtra = 0;
> > fen.hbrBackground = (HBRUSH)(COLOR_3DFACE+1); // Couleur de fond
> > if(!RegisterClassEx(&fen)) return 0;
> >
> > fenetre = CreateWindowEx(0,"scanner","Scanner",WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_VISIBLE|WS_MINIMIZEBOX,250,100,250,350,HWND_DESKTOP,NULL,hInst,NULL);
> > if(fenetre == NULL) return 0;
> >
> > CreateEdit(1," ", 0,75,245,250,fenetre,0,1,1,1); //MESSAGE
> > CreateEdit(2,"127.0.0.1",30, 5,118, 20,fenetre,0,0,0,0); //IP
> >
> > CreateStatic(1,"IP : ",5, 5, 20,20,fenetre);
> >
> > CreateCommand(1,"Scanner", 30, 30,55,21,fenetre);
> > CreateCommand(2,"Stop",90, 30,55,21,fenetre);
> >
> > WSADATA WSAData;
> > WSAStartup(MAKEWORD(2,0),&WSAData);
> >
> > ShowWindow(fenetre, SW_SHOW);
> > UpdateWindow(fenetre);
> >
> > while (GetMessage(&message, NULL, 0, 0))
> > {
> > TranslateMessage(&message);
> > DispatchMessage(&message);
> > }
> >
> > closesocket(sock);
> > WSACleanup();
> >
> > return message.wParam;
> > }
> >
> > LRESULT CALLBACK WinProc(HWND fenetre2, UINT message2, WPARAM wParam, LPARAM lParam)
> > {
> > switch (message2)
> > {
> > case WM_DESTROY:
> > PostQuitMessage(0);
> > break;
> >
> > case WM_CLOSE:
> > DestroyWindow(fenetre2);
> > break;
> >
> > case WM_COMMAND:
> > if(HIWORD(wParam) == BN_CLICKED)Command_Click(LOWORD(wParam) - Command_ID);
> > break;
> >
> > default:
> > return DefWindowProc(fenetre2,message2,wParam,lParam);
> > break;
> > }
> >
> > return 0;
> > }
> >
> > void Command_Click(int Index)
> > {
> > switch (Index)
> > {
> > case 1:
> > scanner();
> > break;
> >
> > case 2:
> > stop();
> > break;
> >
> > }
> > }
> >
> >
> > void scanner()
> > {
> > char*IP = GetText(edit[2]);
> > int PORT = 1,n;
> >
> > SOCKADDR_IN sin;
> > sock = socket(AF_INET,SOCK_STREAM,0);
> >
> > sin.sin_addr.s_addr = inet_addr(IP);
> > sin.sin_family = AF_INET;
> >
> > while(PORT < 1000) <<<LA BOUCLE ICI
> > {
> > sin.sin_port = htons(PORT);
> >
> > n = connect(sock,(SOCKADDR *)&sin,sizeof(sin));
> > if(n == 0)
> > {
> > SetWindowText(edit[1],"FERME");
> > }
> > if(n != 0)
> > {
> > SetWindowText(edit[1],"ff\nOUVERT <<<<<<<<");
> > }
> >
> > PORT++;
> > }
> >
> > closesocket(sock);
> > WSACleanup();
> > }
> >
> > void stop()
> > {
> > closesocket(sock);
> > WSACleanup();
> > }
> >
> >
> >
> > Romano
> > romano492@hotmail.com
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > On pourrait peut-etre te dire pourquoi si on avait, au moins, ta proc de fenetre.
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > g un prb avec les fenetres windows
> > > > des que jentre dans une boucle (while ou for) la fenetre se bloke
> > > > Romano
> > > > romano492@hotmail.com
> > >
> >
>


Cette discussion est classée dans : windows, probleme, fenetre, url, romano492


Répondre à ce message

Sujets en rapport avec ce message

linux compatible windows ? [ par Krox68 ] je suis sous linux depuis quelques semaines et j'amerais savoir si on peut faire un prog LINUX compatible WINDOWS (sans Wine)Romano <a href="mailto:ro fenetre windows (none) [ par bilaloch ] Bonjour tout le monde  ,J'ai un ptit probleme... Je sais creer une fenetre normale avec l'API Windows, mais je voudrais en creer une qui n'a pas de ba Compilation driver windows [ par BloP68 ] Bonjour,Je suis actuellement en train de coder un driver, mais je me heurte a un probleme de compilation (je compile mes driver avec la commande build windows 98 et le multithread [ par bbear ] alors voilà mon probleme : j'utilise vc6, et pour utiliser le player Ahx, il faut compiler avec "code generation" sur Multithread.J'ai utilisé le mult recuperer les messages windows de la fenetre active [ par orak ] bonjour, je suis entrain de faire un programme, sous forme de dll, pour creer un menu dans une application d'un language basic.je creer donc mon menu Probleme avec malloc [ par lektrosonic ] Bonjour, je code un logiciel sous Dev-Cpp en C et depuis hier mon application se bloque a un moment donne. Je n arrivai pas a trouver le bug. (La comp vc2005 dll [ par lilington ] Bonjourvoila je viens d'installer msvc2005 le probleme c'est que je ne peux pas executer mes prog.je recois un message windows disant que la dll:msvcr Probleme avec windows.h et Visual C++ [ par ndubien ] Salut, J'ai un probleme avec #include et Visual C++, en efft lorsque je met #inlude , Vis Probleme avec un SERVICE windows qui devrait afficher une fenetre ! [ par supergrey ] Bonjour, voila j'ai fait un programe (progA) qui affiche une fenetre (créée avec CreateDialog) quand une certaine application est lancée. Il fonctionn la fenetre de windows de progression copie fichiers avec le gif animé [ par gdenans ] je dois faire un programme qui copie des fichiers volumineux. Pour que le programme ne paraisse pas bloqué je veux faire aparaitre la fenêtre de windo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,338 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales