BLOCAGE DE PROGRAMME

draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010 - 19 nov. 2005 à 04:06
Mc_Giver Messages postés 2 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 8 décembre 2006 - 8 déc. 2006 à 18:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34683-blocage-de-programme

Mc_Giver Messages postés 2 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 8 décembre 2006
8 déc. 2006 à 18:37
adresse ou se procurer winProtector5 : http://www.xin-protector.com c'est en français
Mc_Giver Messages postés 2 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 8 décembre 2006
8 déc. 2006 à 18:36
Salut tous, Niknikv tu as winProtector5 qui devrais peu etre faire l'affaire pour un début pour bloquer les program *.exe et bien d'autre possibilitées concernant les plages horaires tu as je crois des fonctions netbios si je ne m'abuse qui pourais te servir ça fait lomgtemps que je n'ai pas utiliser mais pour cela fo savoir si tu passe par une carte réseau pour te connecter à ton modem.
niknikv Messages postés 1 Date d'inscription dimanche 26 mars 2006 Statut Membre Dernière intervention 26 mars 2006
26 mars 2006 à 15:01
Bonjour à tous, je n'y connait pas grand chose en programmation.Mais rien ne m'empéche de me renseigner :)
Je vous explique mon cas: mon frère à une tendance à jouer un peu de trop sur le pc de mon père et on voudrait le limiter en jeux(il devient hargneux et on le voit peu bosser ses devoirs). Pour cela je voudrais touver un programme assez compréhensible qui puisse bloquer les jeux que je désirerais sur sa session à partir de 22heures jusqu'à 5 heures du matin et je lui redébloquerais lorsqu'il se calmera.(ce serait vache pour lui de lui interdire complétement l'accés.) De plus, ce serait bien que le programme ne fasse pas effet sur ma session, sinon tant pis, je n'ais plus trop le temps de jouer comme je suis en prépa, mais bon, qu'elles sont les fonctionnalités de se programme,et même si vous connaissez un programme du type même payant(bien sur pas trop cher :)), faites le moi savoir, merci d'avance.

ps, -il a un compte limité et moi je suis opérateur
-le programme peut-il aussi bloquer le jeu lorsqu'il est déja en exécution,c'est ce qui m'intéresse
anthony39166 Messages postés 7 Date d'inscription vendredi 24 février 2006 Statut Membre Dernière intervention 3 mars 2006
24 févr. 2006 à 22:43
bjr es ce que quelqu'un pourrai m'en apprendre un peu dans la prog , j'ai déja 2 ou 3 truc mé le savoir ne déborde jamais donc ...
merci a vous
Odrconcept Messages postés 51 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 9 août 2007 1
7 janv. 2006 à 06:46
ceci est modif en 2sec

autorise à lancé un exe ou plusieur
le conteste de l'autorisation est grossié, je sais, desoler

ces lignes ne sont pas dans le zip

If Trim(LCase(Command$)) = LCase("d:\windows\system32\mstsc.exe") Then
Shell Command$
Unload Me
Exit Sub
End If
'fin autirise a lancé un exe

biensur ca marche
Odrconcept Messages postés 51 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 9 août 2007 1
7 janv. 2006 à 06:38
Private Sub Form_Load()

'autorise a lancé un exe
If Trim(StrConv(Command$, vbProperCase)) = "C:\windows\rundll32.exe Shell32.dll,shexitwindowsex 0x9" Then
Shell Command$
Unload Me
Exit Sub
End If

If Trim(LCase(Command$)) = LCase("d:\windows\system32\mstsc.exe") Then
Shell Command$
Unload Me
Exit Sub
End If
'fin autirise a lancé un exe

e = StrConv(Command$, vbProperCase)
Form1.Caption = e
Text1.Text = "Contacté votre administrateur pour ce fichier:" & Chr(13) & Chr(10) & Chr(13) & Chr(10)
Text1.Text = Text1.Text & "( " + e + " )"
End Sub
evil_doer Messages postés 1 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 9 décembre 2005
9 déc. 2005 à 12:39
bonjour, je veut bien savoir quelles modifications je doit faire pour autoriser l'execution d'une application specifique "exemple: C:\WINDOWS\test.exe"
merci d'avance.
Alain_Guerin Messages postés 5 Date d'inscription mardi 13 septembre 2005 Statut Membre Dernière intervention 17 février 2006
21 nov. 2005 à 21:08
Bonjour, le mieux à mon humble avis est d'utiliser WMI pour détecter le lancement d'une tache.
L'exemple ci-dessous detectera toute nouvelle tâche, a vous ensuite de faire un kill ou pas du proess en question.
Mettre Ms WMI scripting dans les references de votre VB.

Option Explicit

Private WithEvents evt_DownTask As SWbemSink
Private WithEvents evt_UpTask As SWbemSink
Private m_objServices As SWbemServices

Private Sub Form_Load()

ChkTask
ChkDeadTask

End Sub

Private Sub ChkTask()
Dim sServeur As String

sServeur = "."
' ------------------------------------------
' Set the event sink evt_UpTask
' ------------------------------------------
Set evt_UpTask = New SWbemSink
Set m_objServices = GetObject("winmgmts:{impersonationLevel=impersonate}!\" & sServeur & "\root\cimv2")

m_objServices.ExecNotificationQueryAsync evt_UpTask, _
"select * from __instancecreationevent within 1 where TargetInstance isa 'Win32_Process'"

End Sub

Private Sub evt_UpTask_OnObjectReady(ByVal Process As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet)

Dim p_objProperty As SWbemProperty
Dim p_objPropertySet As SWbemPropertySet
Dim sData As String


Set p_objPropertySet = Process.Properties_

On Error Resume Next

For Each p_objProperty In p_objPropertySet

With p_objProperty.Value.Properties_
sData = Process.GetObjectText_()
Label1.Caption = Replace(sData, Chr(10), Chr(13))

End With

Next

End Sub

Private Sub ChkDeadTask()
Dim sServeur As String

sServeur = "."

' ------------------------------------------
' Set the event sink evt_DownTask
' ------------------------------------------
Set evt_DownTask = New SWbemSink
Set m_objServices = GetObject("winmgmts:{impersonationLevel=impersonate}!\" & sServeur & "\root\cimv2")

m_objServices.ExecNotificationQueryAsync evt_DownTask, _
"select * from __instancedeletionevent within 1 where TargetInstance isa 'Win32_Process'"

End Sub

Private Sub evt_DownTask_OnObjectReady(ByVal Process As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet)

Dim p_objProperty As SWbemProperty
Dim p_objPropertySet As SWbemPropertySet
Dim sData As String

Set p_objPropertySet = Process.Properties_

On Error Resume Next

For Each p_objProperty In p_objPropertySet

With p_objProperty.Value.Properties_
sData = Process.GetObjectText_()
Label1.Caption = Replace(sData, Chr(10), Chr(13))


End With

Next

End Sub
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 nov. 2005 à 21:49
Comme dit par draluorg, pour bloquer les progs faut intercepter les appels CreateProcess ou autre solution est un hook CBT global. Le prob c'est infaisable en vb dans les 2 cas alors...
Odrconcept Messages postés 51 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 9 août 2007 1
20 nov. 2005 à 20:44
c'etait un debut de programme pour l'entreprise ou je travail car plusieur personne lancais des programmes tel que freeceel ou bien solitaire biensur ce code à été amelioré par mes soins, c'etait juste à titre informatif
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
19 nov. 2005 à 04:06
Salut,

Eh si je ne m'abuse, ton code ne bloquera que les executables lances a partir de shellExecute (comme l'explorer par exemple) mais n'empechera en aucun cas de lancer l'executable via un CreateProcess comme le fait cmd par exemple...

Remarque tu pourrais bloquer cmd et les .bat, mais y as les .com les .vbs etc... donc tu tourne en rond car de toutes facons tu ne boquera que l'utilisateur et non un virus!

Perso je pense que le seul moyen c'est d'intercepter l'appel a CreateProcess et CreateProcessAsUser, autrement dit, en VB6 c'est pas gagne...

++