Cacher un process du task manager [Résolu]

JoePatent 171 Messages postés jeudi 30 janvier 2003Date d'inscription 20 juillet 2008 Dernière intervention - 6 mars 2007 à 15:20 - Dernière réponse : cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention
- 21 juil. 2012 à 22:29
Je développe une petite application en VB6.  Cette application sert a s'assurer que les employés de la compagnie inscrivent leur temps travaillé a toute les semaines.



Or, pour que se soit vraiment efficace, il ne faudrait pas que les utilisateurs puissent simplement aller dans le gestionnaire de tache (Task Manager) et fermer le process du petit logiciel.

Est-il possible de rendre une application invisible au gestionnaire de taches.  Le parc informatique est entièrement en windows XP sp2.

Merci de votre aide.



PS :    App.TaskVisible = False ' ne fontionne pas

[font=Georgia]Joe Patent/font=Georgia
Afficher la suite 

18 réponses

Répondre au sujet
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 6 mars 2007 à 19:42
+3
Utile
Un portage du C de la partie utilisation du driver de BruNews paraît en effet très faisable.


Une compilation de son projet sous forme de dll pourrait être une solution assez sympa pour une utilisation depuis VB6 aussi.


Avec un exe qui tourne en permanence, l'utilisateur ne pourrat pas l'effacer, certe.


Par contre pour s'assurer que l'exe est lancer au démarrage de Windows,
bon courage si l'utilisateur à des droits admin. Qui ne connait pas
msconfig...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_rt15
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 6 mars 2007 à 18:17
+1
Utile
Il faut un driver pour cacher les processus (en vrai il s'agit de distribuer ce qui sera vu ou non), il est donc bien clair que ça ne se fera qu'en natif.
CACHER PROCESSUS AU CHOIX (DRIVER WIN32)
http://www.cppfrance.com/code.aspx?ID=36941

Je pense qu'il ne devrait y avoir pas trop de problème pour transcrire le C en VB du code qui utilise le driver.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 6 mars 2007 à 15:30
0
Utile
Je ne pense pas que ce soit possible et je ne pense pas que ce soit très légal non plus! Et je vois pas en quoi cela assure que les employés inscrivent leur temps travaillé!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
JoePatent 171 Messages postés jeudi 30 janvier 2003Date d'inscription 20 juillet 2008 Dernière intervention - 6 mars 2007 à 16:04
0
Utile
[Je ne pense pas que ce soit possible]
 Je préfère les certitudes.

[et je ne pense pas que ce soit très légal non plus!]
C'est légal, approuvé et installé à la grandeur du pays.  Nous avons un contentieux qui s'occupe des questions d'ordre légale.
 
[Et je vois pas en quoi cela assure que les employés inscrivent leur temps travaillé!] Normal, tu ne connais ni l'entreprise ni le logiciel électronique d'entrées de temps ni le logiciel qui permet de prévenir les employés d'entré leur temps pour ceux que ce n'est déjà fait.

Merci pour le temps investit à trouver et rédiger cette 'solution' ou piste de solution.

Joe Patent
Commenter la réponse de JoePatent
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 6 mars 2007 à 16:27
0
Utile
Bonjour JoePatent,



1) Dricke06 t'a à mon sens fort bien répondu en ce qyui concerne la faisabilité.



2) la logique la plus élémentaire conduit à penser que si ton appli de contrôle était bien "pensée", son interruption, précisément,  devrait interrompre la notification de présence, et pas le contraire (celà va tellement de soi).
Si tu t'y es pris autrement, il vaut mieux revoir ta copie, car sinon une simple interruption de l'alimentation électrique (générale ou autre) conduirait à la constatation d'une présence permanente !!!!

Bon...
Commenter la réponse de jmfmarques
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 6 mars 2007 à 16:29
0
Utile
Le plus simple serait peut-etre d'empecher l'utilisateur d'acceder au gestionnaire de tache. Ca doit etre possible à definir dans les regles de gestions des utilisateurs je pense.

Quant à cacher le process, moi non plus je trouve pas ça très "honnète".
D'autant plus que certains antivirus, antispyware, ... considères ce genres de logiciels comme des virus ou espions.

Effectivement tu dois pouvoir le cacher du gestionnaire de tache puisque lui-même n'affiche pas tous les process. Il n'en est pas capable semble-t-il, et ce qui est sur, c'est que ce n'est pas le plus performant dans cette tache là (et ne parlons pas de l'arret des process qu'il n'est pas toujours capable d'effectuer).

Il existe quantité de logiciels sur le net, bien plus simple et bien plus performant, capable d'afficher tout ce qui tourne. Et là impossible de cacher quoique ce soit, à partir du moment ou c'est en mémoire, c'est détecté.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
JoePatent 171 Messages postés jeudi 30 janvier 2003Date d'inscription 20 juillet 2008 Dernière intervention - 6 mars 2007 à 16:52
0
Utile
Bonjour  jmfmarques

1-La faisabilité existe sur le présent site en cpp et delphi.  Mais je ne trouve rien en VB.

2- Le logiciel est bien pensé et roule sur chacun des 10000 laptop qui composent la flotte informatique de la compagnie.  Ton exemple d'une panne électrique à quoi avoir avec mon besoin ?  Est-ce que tu connais Visual basic 6 et a envit de donner un coup de pouce ou tu t'ennuie et a juste envie de jaser ? 
Commenter la réponse de JoePatent
JoePatent 171 Messages postés jeudi 30 janvier 2003Date d'inscription 20 juillet 2008 Dernière intervention - 6 mars 2007 à 16:57
0
Utile
Bonjour Casy,

[Il existe quantité de logiciels sur le net, bien plus simple et bien plus performant, capable d'afficher tout ce qui tourne. Et là impossible de cacher quoique ce soit, à partir du moment ou c'est en mémoire, c'est détecté.]

Tout a fait d'accord.  Je veux éliminer une façon simple pour les employés de se détourner leur responsabilité en ne faisait qu'un kill process dans le gestionnaire des taches sur le logiciel en question.
 
Donc si l'employé installe des logiciels tiers-partie pour détecter le logiciel et le fermer, je ne peux rien y faire.  La mauvaise foi sera punit autrement par les gestionnaires de l'entreprise.

Il s'agit d'une approche toute simple qui permet de rappeler au employé de remplir leur temps avec les fin de périodes comptables afin de permettre une comptabilité précise et une facturation dans les temps aux clients.

[url]http://www.joepatent.com/url[font=Georgia]Joe Patent/font=Georgia
Commenter la réponse de JoePatent
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 6 mars 2007 à 17:42
0
Utile
"Ton exemple d'une panne électrique à quoi avoir avec mon besoin ? "

C'est pourtant simple à comprendre, ma foi !

Tu as dit plus haut que ton système ne jouerait plus son rôle si on en interrompait le processus, n'est-ce pa? (j'ai bien lu ?) ?
Alors, moi qui "ne connais rien à VB6" (au demeurant, ce serait là bien plus la connaissance de Windows que celle de VB6... mais bon...) : je te dis qu'un système bien pensé est un système qui contrôle la présence (ce qu'il ne fait certes plus, tout bêtement, si on l'interromp...), tout simplement.
Pour en revenir à la connaissance de VB6 : simple ! VB6 lui-même (donc tout seul) ne dispose d'aucune fonction permettant de cacher une tâche de la liste des tâches. VB6 est par contre capable d'utiliser des fonctions externes, notamment de l'API de Windows... mais ce n'est plus là la connaissance de VB6 qui entre en jeu, mais celle de fonctions externes (et donc non de VB6). Laquelle souhaiterais-tu donc appeler ? Ta réponse nous permettra de voir comment VB6 pourra l'utiliser !



Voilà donc.
Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 6 mars 2007 à 17:48
0
Utile
Pour être plus précis :
- autant je vois mal l'intérêt de cacher un processus, au prétexte que son interruption "supprimerait la possibilité d'un contrôle" alors qu'il suffit de simplement vérifier la "continuité" par relevés périodiques qui cesseraient en cas d'interruption,
- autant je vois par contre trop bien ce que l'on pourrait faire en cachant l'exécution de tâches.
Commenter la réponse de jmfmarques
JoePatent 171 Messages postés jeudi 30 janvier 2003Date d'inscription 20 juillet 2008 Dernière intervention - 6 mars 2007 à 17:57
0
Utile
Bonjour jmfmarques

De quelle présence tu parles ?  Je pense que tu ne prend pas le temps de bien comprendre le contexte qui est décrit.  Je ne suis pas philosophe mais développeur.

Les employés sont un peu partout sur la planète et pas au bureau.  Ils ont des laptop et on veut rappeler au moins discipliner d'entre eux d'entrer leur temps facturables.
Commenter la réponse de JoePatent
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 6 mars 2007 à 18:21
0
Utile
Tu veux donc que ton appli soit toujours en activité ?

Ok, si c'est ce que tu veux...

un projet :

Private Sub Form_Deactivate()
 Shell "d:\ab1\project1.exe"  'ici le répertoire de ton choix
End Sub


Private Sub Form_Terminate()
  Shell "d:\ab1\project1.exe"  'ici le répertoire de ton choix

End Sub

sauvegarde-le et fais en un exécutable project1.exe à mettre dans le répertoire de ton choix

lance l'exe, tue le processus et vois...
Commenter la réponse de jmfmarques
JoePatent 171 Messages postés jeudi 30 janvier 2003Date d'inscription 20 juillet 2008 Dernière intervention - 6 mars 2007 à 20:43
0
Utile
Merci beaucoup a Brunews et RT15 !

Je vais me lancer dans cette voie !

->
jmfmarques
Merci pour ton dernier effort.  Cette application doit se fermer d'elle même si le temps travaillé a effectivement été bien transmis.  Dans ton exemple, l'application se relancerait et se terminerait sans fin.
Commenter la réponse de JoePatent
JoePatent 171 Messages postés jeudi 30 janvier 2003Date d'inscription 20 juillet 2008 Dernière intervention - 6 mars 2007 à 20:47
0
Utile
->RT15
[Par contre pour s'assurer que l'exe est lancer au démarrage de Windows, bon courage si l'utilisateur à des droits admin. Qui ne connait pas msconfig...]




Tous les utilisateurs ont les droits admin mais msconfig ne 'voit' pas le exe.  Il se limite a la base de registre, au menu startup, services de windows, etc.

Heureusement, il existe beaucoup de techniques pour démarrer des applications. 
Commenter la réponse de JoePatent
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 6 mars 2007 à 20:59
0
Utile
Bonsoir JoePatent,

Juste une question :

Quelle serait la difficulté rencontrée à écrire un code tel que le "relancement" serait conditionnel ?
Je n'en vois en ce qui me concerne aucune, bien que je ne "connaisse rien à VB6" ....


Il me semble (mais je suis simpliste) que l'on peut sans difficulté stocker dans une variable l'heure de démarrage et qu'on peut sans difficulté non plus, compter le temps qui s'est écoulé entre ce démarrage et l'heure actuelle... et dire qu'on ne relance que si ce temps est inférieur ou égal à la valeur que l'on a choisie... Il me semble même qu'on peut aller plus loin encore... jusqu'à fixer une heure de début et une heure de fin... et qu'en plus, si les "clients" sont répartis un peu partout dans le monde, se servir sans problème des fuseaux horaires.... et si l'on veut que personne ne triche, en plus, profiter de la comm pour imposer l'heure de la centrale, corrigée pour correspondre à l'heure "locale"... Mais bon....
Amitiés.
Commenter la réponse de jmfmarques
Utilisateur anonyme - 21 juil. 2012 à 19:24
0
Utile
j AI LA REPONSE IL FAUT CREER UN AUTRE FICHIER KI LUI LE CACHERAT EXEMPLE EB VBS
COPIER SE TEXT
Set WshShell = WScript.CreateObject("WScript.Shell" )
WshShell.Run "LENOMDEVOTREAPPLI.EXE", SH_WIDE


IL FAUT KE LE FICHIER .EXE SOIT DANS LE DOSSIER RACINE DU VBS
Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 21 juil. 2012 à 19:35
0
Utile
une raiponse qui surreviaint sainque ens aperais la quaissetion; je me demende à quoua sa serre.
Commenter la réponse de Utilisateur anonyme
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 21 juil. 2012 à 22:29
0
Utile
Salut Cmarcotte

à quoua sa serre


bah aaprendre le langage sms non ??
Commenter la réponse de cs_ShayW

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.