attention le verrouillage du système bloque tous les processus actifs. Pensez à fermer toutes les applications actives avant Exécution.
N'EXECUTEZ PAS DEPUIS VB!!!! Créez et lancer l'exécutable !!!
Source / Exemple :
'source sur le FORM
Public Function traite_tampon(valeur As String) As String
Dim resultat As String
Dim position As Integer
'récupère la position du caractère de séparation "|"
position = InStr(1, valeur, "|", vbTextCompare)
'renvoit le résultat et met à jour la valeur
If position <> 0 Then 'si aucune erreur
resultat = Left(valeur, position - 1)
valeur = Right(valeur, Len(valeur) - position)
traite_tampon = resultat
End If
End Function
Public Sub fermer_taches(valeur As String)
Dim tache As String
Dim Cpt As Integer
Do
'liste complète peut etre passé en param par exemple
'terminée par "|"
tache = traite_tampon(valeur)
If tache <> "" Then
resultat = FindWindow(vbNullString, tache)
resultat = SendMessage(resultat, WM_SYSCOMMAND, SC_CLOSE, NILL)
Else
Exit Do
End If
Cpt = Cpt + 1
Loop
End Sub
Public Sub retourne_taches(info_taches As Boolean)
'Fonction permettant de connaitre les Appli en cours
On Error Resume Next
Dim Fenetre As Long
Dim Long_titre As Long
Dim NomTache As String
'recup 1er fenetre
Fenetre = GetWindow(Me.hwnd, GW_HWNDFIRST)
While Fenetre <> 0
Long_titre = GetWindowTextLength(Fenetre)
NomTache = Space$(Long_titre + 1)
Long_titre = GetWindowText(Fenetre, NomTache, Long_titre + 1)
NomTache = Left$(NomTache, Len(NomTache) - 1)
If Long_titre <> 0 Then
If NomTache <> "" And UCase(NomTache) <> App.EXEName Then
If IsWindowVisible(Fenetre) Then
liste_fen = liste_fen & NomTache & "|"
End If
End If
End If
'recup fenetre suivante
Fenetre = GetWindow(Fenetre, GW_HWNDNext)
DoEvents 'multitaches
Wend
End Sub
Public Sub verif_modules()
On Error Resume Next
Do
retourne_taches False
Call fermer_taches(liste_fen)
DoEvents
Loop Until Not verrouille
End Sub
Private Sub Form_Load()
If MsgBox("Vous allez verrouiller le système pendant 15 sec. Tous les modules de Windows seront bloqués." & Chr(10) & Chr(10) & " Continuer ?", vbYesNo + vbExclamation, "Verrouillage") = vbYes Then
verrouille = True
Timer1.Interval = 15000
Call verif_modules
Else
Unload Me
End If
End Sub
'ajouter un contrôle TIMER et ajouter le code
Private Sub Timer1_Timer()
verrouille = False
MsgBox "Système déverrouillé", vbInformation, "Verrouillage"
Unload Me
End Sub
'ajouter un MODULE et le code suivant
'API des taches(fenetres)
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpwindowname As String) As Long
Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function getDesktop Lib "jpeg.dll" (ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal blnJpeg As Boolean, ByVal JPGCompressQuality As Integer, ByVal strFileName As String) As Integer
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
'listes de taches
Public Const GW_HWNDFIRST = 0
Public Const GW_HWNDNext = 2
'fermeture des taches
Public Const WM_SYSCOMMAND = &H112
Public Const SC_CLOSE = &HF060&
Public Const NILL = 0&
'variables globales
Public verrouille As Boolean
Public liste_fen As String
Conclusion :
ce programme doit etre utilisé dans le cadre de programme de sécurité ou d'administration. POur de plus amples infos sub-zer0@caramail.com
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.