IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Figer Windows...


Sujet :

Windows

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 17
    Points
    17
    Par défaut Figer Windows...
    Est t'il possible en c++ de faire en sorte que tant que l'utilisateur n'a pas cliquer sur un boutton tout windows soit figer ?

  2. #2
    Membre habitué
    Inscrit en
    Avril 2002
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 180
    Points : 157
    Points
    157
    Par défaut
    tout est possible en c++

  3. #3
    Membre actif Avatar de blackhorus
    Inscrit en
    Février 2003
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 209
    Points : 226
    Points
    226
    Par défaut
    à part commettre une horrible erreur de logique qui déstabilisera le système et du coup ni bouton, ni rien...

    et je crois que ta question n'est pas sur le bon forum, car c'est une question qui concerne windows...

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    @blackhorus : J'ai ésiter de poster ici mais bon vu que c'etais en c++...

    @philippe V : as tu une piste a me donner dans laquelle me diriger...

  5. #5
    Membre actif Avatar de blackhorus
    Inscrit en
    Février 2003
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 209
    Points : 226
    Points
    226
    Par défaut
    ce que tu veux dépends du système d'exploitation, je vais supposer que c'est Windows.

    Même ici, ça dépend de la version, Windows 95,98 un Hook globale suffit pour intercepter toutes les touches et les combinaison (ctrl+tab, ctrl+alt,suppr), alors que sur windows 2000,XP essaye de voir du côté de GINA
    un lien
    http://www.codeproject.com/win32/AntonioWinLock.asp

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    J'ai trouver ce code sur le net qui permet de cacher les icones et de les réaficher ce qui en definitive me convient a peut pres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <windows.h>
    
    void main&#40;&#41;
    &#123;
        //HWND hProgMan = FindWindow&#40;"Shell_TrayWnd" , 0&#41;;
        HWND hProgMan = FindWindow&#40;0 , "Program Manager"&#41;;
        if &#40;!hProgMan&#41; return;
    
        if &#40;IsWindowVisible&#40;hProgMan&#41;&#41;
                ShowWindow&#40;hProgMan, SW_HIDE&#41;;
        else  ShowWindow&#40;hProgMan, SW_SHOW&#41;;
    &#125;
    Mais ... Je ne sais pas trop ou lintegré dans mon programe pour que dès qu'il se lance il cache les icones et des qu'il se ferme les réafiche...
    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    // Test_FenetreDlg.cpp &#58; implementation file
    //
    
    #include "stdafx.h"
    #include "Test_Fenetre.h"
    #include "Test_FenetreDlg.h"
    #include <windows.h>
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE&#91;&#93; = __FILE__;
    #endif
    
    /////////////////////////////////////////////////////////////////////////////
    // CTest_FenetreDlg dialog
    
    CTest_FenetreDlg&#58;&#58;CTest_FenetreDlg&#40;CWnd* pParent /*=NULL*/&#41;
    	&#58; CDialog&#40;CTest_FenetreDlg&#58;&#58;IDD, pParent&#41;
    &#123;
    	//&#123;&#123;AFX_DATA_INIT&#40;CTest_FenetreDlg&#41;
    	m_login = _T&#40;""&#41;;
    	//&#125;&#125;AFX_DATA_INIT
    	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    	m_hIcon = AfxGetApp&#40;&#41;->LoadIcon&#40;IDR_MAINFRAME&#41;;
    &#125;
    
    
    void CTest_FenetreDlg&#58;&#58;DoDataExchange&#40;CDataExchange* pDX&#41;
    &#123;
    	CDialog&#58;&#58;DoDataExchange&#40;pDX&#41;;
    	//&#123;&#123;AFX_DATA_MAP&#40;CTest_FenetreDlg&#41;
    	DDX_Text&#40;pDX, IDC_EDIT1, m_login&#41;;
    	//&#125;&#125;AFX_DATA_MAP
    &#125;
    
    BEGIN_MESSAGE_MAP&#40;CTest_FenetreDlg, CDialog&#41;
    	//&#123;&#123;AFX_MSG_MAP&#40;CTest_FenetreDlg&#41;
    	ON_WM_PAINT&#40;&#41;
    	ON_WM_QUERYDRAGICON&#40;&#41;
    	//&#125;&#125;AFX_MSG_MAP
    END_MESSAGE_MAP&#40;&#41;
    
    /////////////////////////////////////////////////////////////////////////////
    // CTest_FenetreDlg message handlers
    
    BOOL CTest_FenetreDlg&#58;&#58;OnInitDialog&#40;&#41;
    &#123;
    	CDialog&#58;&#58;OnInitDialog&#40;&#41;;
    
    	CRect rect;
        GetWindowRect&#40; rect &#41;;
        &#58;&#58;SetWindowPos&#40;m_hWnd ,
                        HWND_TOPMOST,
                        &#40;GetSystemMetrics&#40;SM_CXSCREEN&#41;-rect.right&#41;/2,
                        &#40;GetSystemMetrics&#40;SM_CYSCREEN&#41;-rect.bottom&#41;/2,
                        rect.Width&#40;&#41;,
                        rect.Height&#40;&#41;,
                        SWP_SHOWWINDOW&#41;;
    
    	/*ModifyStyleEx&#40; WS_EX_APPWINDOW, WS_EX_TOOLWINDOW &#41;;*/
    
    	// Set the icon for this dialog.  The framework does this automatically
    	//  when the application's main window is not a dialog
    	SetIcon&#40;m_hIcon, TRUE&#41;;			// Set big icon
    	SetIcon&#40;m_hIcon, FALSE&#41;;		// Set small icon
    
    	
    	// TODO&#58; Add extra initialization here
    	
    	return TRUE;  // return TRUE  unless you set the focus to a control
    &#125;
    
    
    // If you add a minimize button to your dialog, you will need the code below
    //  to draw the icon.  For MFC applications using the document/view model,
    //  this is automatically done for you by the framework.
    
    void CTest_FenetreDlg&#58;&#58;OnPaint&#40;&#41; 
    &#123;
    	if &#40;IsIconic&#40;&#41;&#41;
    	&#123;
    		CPaintDC dc&#40;this&#41;; // device context for painting
    
    		SendMessage&#40;WM_ICONERASEBKGND, &#40;WPARAM&#41; dc.GetSafeHdc&#40;&#41;, 0&#41;;
    
    		// Center icon in client rectangle
    		int cxIcon = GetSystemMetrics&#40;SM_CXICON&#41;;
    		int cyIcon = GetSystemMetrics&#40;SM_CYICON&#41;;
    		CRect rect;
    		GetClientRect&#40;&rect&#41;;
    		int x = &#40;rect.Width&#40;&#41; - cxIcon + 1&#41; / 2;
    		int y = &#40;rect.Height&#40;&#41; - cyIcon + 1&#41; / 2;
    
    		// Draw the icon
    		dc.DrawIcon&#40;x, y, m_hIcon&#41;;
    	&#125;
    	else
    	&#123;
    		CDialog&#58;&#58;OnPaint&#40;&#41;;
    	&#125;
    &#125;
    
    // The system calls this to obtain the cursor to display while the user drags
    //  the minimized window.
    HCURSOR CTest_FenetreDlg&#58;&#58;OnQueryDragIcon&#40;&#41;
    &#123;
    	return &#40;HCURSOR&#41; m_hIcon;
    &#125;
    
    
    void CTest_FenetreDlg&#58;&#58;OnOK&#40;&#41;
    &#123;
       UpdateData&#40;true&#41;;
    
       FILE *log;
       log = fopen&#40;"c&#58;\\log.txt","a+"&#41;;
    
       fputs&#40;m_login, log&#41;;
       fclose&#40;log&#41;;
     
       CDialog&#58;&#58;OnOK&#40;&#41;;
    &#125;

  7. #7
    Membre actif Avatar de blackhorus
    Inscrit en
    Février 2003
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 209
    Points : 226
    Points
    226
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        HWND hProgMan = FindWindow&#40;0 , "Program Manager"&#41;;
        if &#40;!hProgMan&#41; return; 
       
        ShowWindow&#40;hProgMan, SW_HIDE&#41;;
    dans le début de BOOL CTest_FenetreDlg::OnInitDialog()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    HWND hProgMan = FindWindow&#40;0 , "Program Manager"&#41;;
        if &#40;!hProgMan&#41; return; 
       
        ShowWindow&#40;hProgMan, SW_SHOW&#41;;
    dans la fin de void CTest_FenetreDlg::OnOK()

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    J'ai déja 3 erreurs quand je met la premiere dans le debut de BOOL CTest...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    C&#58;\Program Files\...\Test_FenetreDlg.cpp&#40;56&#41; &#58; error C2440&#58; 'initializing' &#58; cannot convert from 'class CWnd *' to 'struct HWND__ *'
            Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    C&#58;\Program Files\...\Test_FenetreDlg.cpp&#40;57&#41; &#58; error C2561&#58; 'OnInitDialog' &#58; function must return a value
            c&#58;\program files\...\test_fenetredlg.h&#40;40&#41; &#58; see declaration of 'OnInitDialog'
    C&#58;\Program Files\...\Test_FenetreDlg.cpp&#40;59&#41; &#58; error C2660&#58; 'ShowWindow' &#58; function does not take 2 parameters
    Error executing cl.exe.
    
    Test_Fenetre.exe - 3 error&#40;s&#41;, 0 warning&#40;s&#41;

  9. #9
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    On m'a dit que ça a un rapport avec le fait que j'ai utiliser MFC.
    Il y a pas moyen de faire en sorte que ça marche avec un prgramme sous MFC ?

  10. #10
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Eh bien tu as des erreurs dans ton code dans Test_FenetreDlg.cpp lignes 56 et 57.
    A vu de nez tu mixes Win32 et MFC via un ShowWindow( MyWnd, SW_HIDE ) au lieu de faire MyWnd->ShowWindow( SW_HIDE );
    Mais pense à nous copier-coller les lignes qui font une erreur au lieu de donner les erreurs.

  11. #11
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    J'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowWindow&#40; MyWnd, SW_HIDE &#41;;
    juste après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BOOL CTest_FenetreDlg&#58;&#58;OnInitDialog&#40;&#41;
    &#123;
    
    	CDialog&#58;&#58;OnInitDialog&#40;&#41;;
    mais le probleme c'est que j'ai droit à un "error C2065: 'MyWnd' : undeclared identifier".

    J'ai été voir dans msdn et MyWnd est sensé retourner l'Handle de la fenetre mais vu que je l'ais jamais déclaré je sais pas ou le prendre vu que j'ai fais la fenetre avec MFC...

  12. #12
    Membre actif Avatar de blackhorus
    Inscrit en
    Février 2003
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 209
    Points : 226
    Points
    226
    Par défaut
    fais ça pour l'instant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    &#58;&#58;ShowWindow&#40;m_hWnd, SW_HIDE &#41;;
    sache que le membre m_hWnd est un membre déclare dans la classe parent, et c'est pas à toi de le déclarer...

  13. #13
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Ouai deja j'ai plus d'erreur mais il ne fais rien...
    Il ne cache pas les icones.

    Par contre je viens de trouver. C'est bon pour cacher les icones :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    BOOL CTest_FenetreDlg&#58;&#58;OnInitDialog&#40;&#41;
    &#123;
    
    	CDialog&#58;&#58;OnInitDialog&#40;&#41;;
    
        HWND hProgMan = &#58;&#58;FindWindow&#40;0 , "Program Manager"&#41;;
       
        &#58;&#58;ShowWindow&#40;hProgMan, SW_HIDE&#41;;
    Et de même pour les reaficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void CTest_FenetreDlg&#58;&#58;OnCancel&#40;&#41; 
    &#123;
    	// TODO&#58; Add extra cleanup here
    
    	HWND hProgMan = &#58;&#58;FindWindow&#40;0 , "Program Manager"&#41;;
       
        &#58;&#58;ShowWindow&#40;hProgMan, SW_SHOW&#41;; 
    	
    	CDialog&#58;&#58;OnCancel&#40;&#41;;
    &#125;

    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. BackgroundWorker semble figer la Window
    Par Arnard dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 11/09/2009, 11h37
  2. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28
  3. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  4. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45
  5. Quel désassembleur/assembleur pour un exe Windows ?
    Par Anonymous dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 17/04/2002, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo