Accueil > > > APPLI RIGOLOTE POUR EXEMPLE DE DÉSACTIVATION DE CONTROL/ALT/SUPPR ET GENERATION DYNAMIQUE DE FORMS
APPLI RIGOLOTE POUR EXEMPLE DE DÉSACTIVATION DE CONTROL/ALT/SUPPR ET GENERATION DYNAMIQUE DE FORMS
Information sur la source
Description
Le dernier rapport des experts vient de tomber : la maladie de Creutzfeld Jacob est transmissible à Windows ! ça a l'air d'une blague mais vous n'allez pas rigoler longtemps car pseudo virus mais virus quand même si vous ignorez la façon de vous en sortir. Allez, je vous donne le truc : tapez "Ouneufe" en aveugle et tout disparaît.
Source
- ' DANS UNE FEUILLE NOMMEE FLE
- 'Cette petite appli débile a pour mérite de fournir :
- '- quelques exemples de programmation événementielle
- '( cour-circuitage de l'évenement "Unload" de la feuille et
- 'reconnaissance d 'une séquence saisie au clavier sur la feuille,
- 'mousemove, etc...)
- '
- '- 2 exemples d'utilisation d'API (Pour conserver la fenêtre
- 'au premier plan et désactiver Ctrl-alt-suppr -> ne fonctionne pas sous XP)
- '
- '- 1 exemple de génération dynamique de feuille
- '
- '- d'autres petits trucs comme positionnement aléatoire de la feuille
-
- Option Explicit
-
- ' Déclaration d'API pour CRTL-ALT-SUPPR
- Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _
- (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, _
- ByVal fuWinIni As Long) As Long
- ' Déclaration de constante
- Private Const SPI_SCREENSAVERRUNNING = 97
-
-
- 'API nécessaire pour le mode "toujours visible"
- Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, _
- ByVal hWndInsertAfter _
- As Long, ByVal X _
- As Long, ByVal Y _
- As Long, ByVal cx _
- As Long, ByVal cy _
- As Long, ByVal wFlags _
- As Long) As Long
-
-
- 'DEPLACEMENT APIS
-
- Private Sub Form_Load()
- Dim nRet As Long
-
- ' Dimensions et coordonnées aléatoires
- Label1.Width = Me.Width
- Label1.Height = Me.Height
- Randomize (Timer)
- Me.Left = Rnd * (Screen.Width - Me.Width)
- Me.Top = Rnd * (Screen.Height - Me.Height)
-
- ' Désactive ctrl_alt_suppr
- CTRL_ALT_SUPPR (False)
-
- ' Toujours visible
- Dim Resultat As Long
- Const Flags = &H2 Or &H1 Or &H40 Or &H10
- Resultat = SetWindowPos(Me.hWnd, -1, 0, 0, 0, 0, Flags)
- Me.SetFocus
-
- ' masquer dans le gestionnaire des tâches
- App.TaskVisible = False
-
-
- End Sub
-
-
-
- ' FERMETURE IMPOSSIBLE (si KITE = FALSE)
-
- Private Sub Form_Unload(Cancel As Integer)
-
- ' Test si autorisation de quitter alors fermeture de toutes les feuilles
- If KITE = True Then
- Dim F As Form
- For Each F In Forms
- Unload F
- Next
- Exit Sub
- End If
-
- ' si je suis ici, l'autorisation de fermer est refusée : nouvelle instance de la form FLE
- Dim Nform As Form
- Set Nform = New FLE
- Nform.Show
- Cancel = 1
-
- End Sub
-
-
- ' Cette procédure permet de désactiver (et réactiver) les combinaisons :
- ' CTRL+ALT+SUPPR, CTRL+ECHAP et ALT+TAB
- Public Sub CTRL_ALT_SUPPR(blOFF As Boolean)
- ' Si blOFF = True, désactive CTRL+ALT+SUPPR
- ' Si blOFF = False, active de nouveau CTRL+ALT+SUPPR
- Dim lgRep As Long
- lgRep = SystemParametersInfo(SPI_SCREENSAVERRUNNING, Not blOFF, False, 0)
- End Sub
-
-
- ' ECHAPPER A CET ENFER -> saisie de "OUNEUFE" au clavier en aveugle
- Private Sub Form_KeyPress(keyascii As Integer)
- ' Rendre Ctrl-alt-suppr à nouveau valide et autorisation de fermeture
- Pass = Pass & Chr(keyascii):
-
- If UCase(Right(Pass, 7)) = "OUNEUFE" Then
- CTRL_ALT_SUPPR (True): KITE = True: Unload Me
- End If
- End Sub
-
- ' effet savonnette
- Private Sub label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
- Randomize (Timer)
- Me.Left = Rnd * (Screen.Width - Me.Width)
- Me.Top = Rnd * (Screen.Height - Me.Height)
- End Sub
-
-
- ' DANS UN MODULE
- ' Ces variable sont globales pour concerner toutes les feuilles créées dynamiquement
- Public Pass As String
- Public KITE As Boolean
' DANS UNE FEUILLE NOMMEE FLE
'Cette petite appli débile a pour mérite de fournir :
'- quelques exemples de programmation événementielle
'( cour-circuitage de l'évenement "Unload" de la feuille et
'reconnaissance d 'une séquence saisie au clavier sur la feuille,
'mousemove, etc...)
'
'- 2 exemples d'utilisation d'API (Pour conserver la fenêtre
'au premier plan et désactiver Ctrl-alt-suppr -> ne fonctionne pas sous XP)
'
'- 1 exemple de génération dynamique de feuille
'
'- d'autres petits trucs comme positionnement aléatoire de la feuille
Option Explicit
' Déclaration d'API pour CRTL-ALT-SUPPR
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _
(ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, _
ByVal fuWinIni As Long) As Long
' Déclaration de constante
Private Const SPI_SCREENSAVERRUNNING = 97
'API nécessaire pour le mode "toujours visible"
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, _
ByVal hWndInsertAfter _
As Long, ByVal X _
As Long, ByVal Y _
As Long, ByVal cx _
As Long, ByVal cy _
As Long, ByVal wFlags _
As Long) As Long
'DEPLACEMENT APIS
Private Sub Form_Load()
Dim nRet As Long
' Dimensions et coordonnées aléatoires
Label1.Width = Me.Width
Label1.Height = Me.Height
Randomize (Timer)
Me.Left = Rnd * (Screen.Width - Me.Width)
Me.Top = Rnd * (Screen.Height - Me.Height)
' Désactive ctrl_alt_suppr
CTRL_ALT_SUPPR (False)
' Toujours visible
Dim Resultat As Long
Const Flags = &H2 Or &H1 Or &H40 Or &H10
Resultat = SetWindowPos(Me.hWnd, -1, 0, 0, 0, 0, Flags)
Me.SetFocus
' masquer dans le gestionnaire des tâches
App.TaskVisible = False
End Sub
' FERMETURE IMPOSSIBLE (si KITE = FALSE)
Private Sub Form_Unload(Cancel As Integer)
' Test si autorisation de quitter alors fermeture de toutes les feuilles
If KITE = True Then
Dim F As Form
For Each F In Forms
Unload F
Next
Exit Sub
End If
' si je suis ici, l'autorisation de fermer est refusée : nouvelle instance de la form FLE
Dim Nform As Form
Set Nform = New FLE
Nform.Show
Cancel = 1
End Sub
' Cette procédure permet de désactiver (et réactiver) les combinaisons :
' CTRL+ALT+SUPPR, CTRL+ECHAP et ALT+TAB
Public Sub CTRL_ALT_SUPPR(blOFF As Boolean)
' Si blOFF = True, désactive CTRL+ALT+SUPPR
' Si blOFF = False, active de nouveau CTRL+ALT+SUPPR
Dim lgRep As Long
lgRep = SystemParametersInfo(SPI_SCREENSAVERRUNNING, Not blOFF, False, 0)
End Sub
' ECHAPPER A CET ENFER -> saisie de "OUNEUFE" au clavier en aveugle
Private Sub Form_KeyPress(keyascii As Integer)
' Rendre Ctrl-alt-suppr à nouveau valide et autorisation de fermeture
Pass = Pass & Chr(keyascii):
If UCase(Right(Pass, 7)) = "OUNEUFE" Then
CTRL_ALT_SUPPR (True): KITE = True: Unload Me
End If
End Sub
' effet savonnette
Private Sub label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Randomize (Timer)
Me.Left = Rnd * (Screen.Width - Me.Width)
Me.Top = Rnd * (Screen.Height - Me.Height)
End Sub
' DANS UN MODULE
' Ces variable sont globales pour concerner toutes les feuilles créées dynamiquement
Public Pass As String
Public KITE As Boolean
Conclusion
Une petite appli débile mais qui permet de se faire à l'usage des API et d'autres petits trucs. n
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.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 Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System 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
|