Bonjour !!
Je développe sous windows et je cherche un moyen pour inhiber le ALT+F4 permettant de fermer les fenetres.
Par avance merci.
Version imprimable
Bonjour !!
Je développe sous windows et je cherche un moyen pour inhiber le ALT+F4 permettant de fermer les fenetres.
Par avance merci.
Sans trop répondre à la question soit tu connectes le signal "key-press-event" de la fenêtre à un CALLBACK dans lequel tu ne fait rien soit cette combinaison de touches est piloté directement par le gestionnaire graphique, et là, point de salut il me semble :?
Il est vrai que je n'ai pas été assez précis: je ne sais pas comment gérer les combinaisons de touches.
J'arrive à inhiber une touche du clavier avec comme tu l'as précisé un callback sur le signal "key-press-event" mais pour une combinaison de touche je ne vois pas comment faire.
Voici ma solution pour une touche du clavier :
Code:
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209 gboolean on_Pop_Cla_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { gboolean val=FALSE; switch (event->keyval){ /*case GDK_F4: if (event->state!=0){ val=TRUE; } else{ val=FALSE; } break;*/ case GDK_KP_Divide: val=TRUE; break; case GDK_KP_Decimal: val=TRUE; break; case GDK_KP_Multiply: val=TRUE; break; case GDK_KP_Insert: val=TRUE; break; case GDK_KP_Add: val=TRUE; break; case GDK_apostrophe: val=TRUE; break; case GDK_exclam : val=TRUE; break; case GDK_quotedbl : val=TRUE; break; case GDK_numbersign : val=TRUE; break; case GDK_dollar : val=TRUE; break; case GDK_percent : val=TRUE; break; case GDK_ampersand : val=TRUE; break; /*case GDK_quoteright : val=TRUE; break;*/ case GDK_parenleft : val=TRUE; break; case GDK_parenright : val=TRUE; break; case GDK_asterisk : val=TRUE; break; case GDK_plus : val=TRUE; break; case GDK_less : val=TRUE; break; case GDK_comma : val=TRUE; break; case GDK_slash : val=TRUE; break; case GDK_period : val=TRUE; break; case GDK_greater : val=TRUE; break; case GDK_question : val=TRUE; break; case GDK_at : val=TRUE; break; case GDK_bracketleft : val=TRUE; break; case GDK_backslash : val=TRUE; break; case GDK_bracketright : val=TRUE; break; case GDK_asciicircum : val=TRUE; break; case GDK_grave : val=TRUE; break; case GDK_semicolon : val=TRUE; break; case GDK_braceleft : val=TRUE; break; case GDK_bar : val=TRUE; break; case GDK_braceright: val=TRUE; break; case GDK_asciitilde: val=TRUE; break; case GDK_nobreakspace : val=TRUE; break; case GDK_exclamdown : val=TRUE; break; case GDK_sterling: val=TRUE; break; case GDK_cent: val=TRUE; break; case GDK_degree: val=TRUE; break; case GDK_acute: val=TRUE; break; case GDK_mu: val=TRUE; break; case GDK_Agrave : val=TRUE; break; case GDK_agrave : val=TRUE; break; case GDK_Aacute: val=TRUE; break; case GDK_Acircumflex: val=TRUE; break; case GDK_Ccedilla: val=TRUE; break; case GDK_ccedilla: val=TRUE; break; case GDK_Egrave : val=TRUE; break; case GDK_eacute : val=TRUE; break; case GDK_egrave : val=TRUE; break; case GDK_Eacute : val=TRUE; break; case GDK_Ecircumflex: val=TRUE; break; case GDK_equal: val=TRUE; break; case GDK_ugrave: val=TRUE; break; case GDK_colon: val=TRUE; break; case GDK_paragraph: val=TRUE; break; case GDK_section: val=TRUE; break; case GDK_twosuperior : val=TRUE; break; case GDK_threesuperior : val=TRUE; break; case GDK_plusminus : val=TRUE; break; case GDK_periodcentered : val=TRUE; break; case GDK_Insert : val=TRUE; break; default: val=FALSE; } return val; }
Au début du code il y a une vague tentative de solution (en commentaire) pour le alt+F4.
Merci de m'expliquer la marche à suivre pour les combinaisons de touche ou de me fournir un exemple sur lequel je pourrais m'appuyer.
Cordialement.
Ta démarche me semble être tout à fait correcte. Le seul problème est que alt+F4 est directement géré par Xwindow. Jai fait quelques tests sans grands succés. Il existe peut être un moyen de désactiver cette fonctionnalité du serveur mais j'avoue ici mon impuissance :oops:
Si tout simplement en interceptant le signal delete-event ;)
Ben oui. C'était tellement évident :oops: