J'ai un programme qui fonctionne en temps que service, j'essaye de recupérer
le compte utilisateur qui à ouvert la session avec le code suivant :
lpbuffer est une chaîne ASCIIZ de 256
size est un entier=255
// on récupere le compte utilisateu
SI AppelDLL32("advapi32.dll","GetUserNameA" , &lpbuffer, &size) ALORS
leUser=lpbuffer
FIN
Ce code fonctionne parfaitement dans un applicatif mais lorsque qu'il est
inclu dans un service il renvoit System comme compte. Quelqu'un connait il
la commande qui permet de récupérer le nom du compte qui a ouvert la session
via un service ?
Ok, donc tu veux enumérer, depuis ton programme qui tourne en tant que service, les sessions ouvertes sur la machine.
[...]
Bref, pas si simple.
Finalement pas trop complexe : http://rompetit.free.fr/Pub/WD7/fg_EnumererSessionsInteractives.txt
A+
-- Romain PETIT contact : http://cerbermail.com/?O16kfXOFcq +-+ posté sur Usenet avec MesNews et non depuis un forum web +-+ news:fr.comp.developpement.agl.windev http://www.mesnews.net/ http://fr.wikipedia.org/wiki/Newsgroup
Romain PETIT a formulé ce mercredi :
Ok, donc tu veux enumérer, depuis ton programme qui tourne en tant que
service, les sessions ouvertes sur la machine.
[...]
Bref, pas si simple.
Finalement pas trop complexe :
http://rompetit.free.fr/Pub/WD7/fg_EnumererSessionsInteractives.txt
A+
--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Ok, donc tu veux enumérer, depuis ton programme qui tourne en tant que service, les sessions ouvertes sur la machine.
[...]
Bref, pas si simple.
Finalement pas trop complexe : http://rompetit.free.fr/Pub/WD7/fg_EnumererSessionsInteractives.txt
A+
-- Romain PETIT contact : http://cerbermail.com/?O16kfXOFcq +-+ posté sur Usenet avec MesNews et non depuis un forum web +-+ news:fr.comp.developpement.agl.windev http://www.mesnews.net/ http://fr.wikipedia.org/wiki/Newsgroup
PYT
Jean-Luc Baptiste a écrit :
Bonjour,
J'ai un programme qui fonctionne en temps que service, j'essaye de recupérer le compte utilisateur qui à ouvert la session avec le code suivant :
lpbuffer est une chaîne ASCIIZ de 256 size est un entier%5
// on récupere le compte utilisateu SI AppelDLL32("advapi32.dll","GetUserNameA" , &lpbuffer, &size) ALORS leUser=lpbuffer FIN
Ce code fonctionne parfaitement dans un applicatif mais lorsque qu'il est inclu dans un service il renvoit System comme compte. Quelqu'un connait il la commande qui permet de récupérer le nom du compte qui a ouvert la session via un service ?
Bien cordialement.
Jean-Luc Baptiste
Vous feriez mieux d'aller poser votre question sur un autre news group fr.comp.os.ms-windows.programmation
Ils seront plus à même pour répondre.
PYT
Jean-Luc Baptiste a écrit :
Bonjour,
J'ai un programme qui fonctionne en temps que service, j'essaye de
recupérer le compte utilisateur qui à ouvert la session avec le code
suivant :
lpbuffer est une chaîne ASCIIZ de 256
size est un entier%5
// on récupere le compte utilisateu
SI AppelDLL32("advapi32.dll","GetUserNameA" , &lpbuffer, &size) ALORS
leUser=lpbuffer
FIN
Ce code fonctionne parfaitement dans un applicatif mais lorsque qu'il
est inclu dans un service il renvoit System comme compte. Quelqu'un
connait il la commande qui permet de récupérer le nom du compte qui a
ouvert la session via un service ?
Bien cordialement.
Jean-Luc Baptiste
Vous feriez mieux d'aller poser votre question sur un autre news group
fr.comp.os.ms-windows.programmation
J'ai un programme qui fonctionne en temps que service, j'essaye de recupérer le compte utilisateur qui à ouvert la session avec le code suivant :
lpbuffer est une chaîne ASCIIZ de 256 size est un entier%5
// on récupere le compte utilisateu SI AppelDLL32("advapi32.dll","GetUserNameA" , &lpbuffer, &size) ALORS leUser=lpbuffer FIN
Ce code fonctionne parfaitement dans un applicatif mais lorsque qu'il est inclu dans un service il renvoit System comme compte. Quelqu'un connait il la commande qui permet de récupérer le nom du compte qui a ouvert la session via un service ?
Bien cordialement.
Jean-Luc Baptiste
Vous feriez mieux d'aller poser votre question sur un autre news group fr.comp.os.ms-windows.programmation
Ils seront plus à même pour répondre.
PYT
Gilles
Jean-Luc Baptiste a émis l'idée suivante :
Ces 2 morceaux de code fonctionne lorsque le programme qui les exécute est lancée par l'utilisateur qui a ouvert la session mais ne fonctionne pas lorsque il est intégré dans un service !
C'est normal, puisque le service est également lancé dans une session spécifique. Il est aussi isolé qu'un utilisateur peut l'être d'un autre.
Est-ce que tu as essayé de cocher "interragir avec le bureau"? Voir si le contenu de ces variables change?
Jean-Luc Baptiste a émis l'idée suivante :
Ces 2 morceaux de code fonctionne lorsque le programme qui les exécute est
lancée par l'utilisateur qui a ouvert la session mais ne fonctionne pas
lorsque il est intégré dans un service !
C'est normal, puisque le service est également lancé dans une session
spécifique. Il est aussi isolé qu'un utilisateur peut l'être d'un
autre.
Est-ce que tu as essayé de cocher "interragir avec le bureau"? Voir si
le contenu de ces variables change?
Ces 2 morceaux de code fonctionne lorsque le programme qui les exécute est lancée par l'utilisateur qui a ouvert la session mais ne fonctionne pas lorsque il est intégré dans un service !
C'est normal, puisque le service est également lancé dans une session spécifique. Il est aussi isolé qu'un utilisateur peut l'être d'un autre.
Est-ce que tu as essayé de cocher "interragir avec le bureau"? Voir si le contenu de ces variables change?
Romain PETIT
PYT a présenté l'énoncé suivant :
Ils seront plus à même pour répondre.
Ca devrait aller avec ça : http://rompetit.free.fr/Pub/WD7/fg_EnumererSessionsInteractives.txt
A+
-- Romain PETIT contact : http://cerbermail.com/?O16kfXOFcq +-+ posté sur Usenet avec MesNews et non depuis un forum web +-+ news:fr.comp.developpement.agl.windev http://www.mesnews.net/ http://fr.wikipedia.org/wiki/Newsgroup
PYT a présenté l'énoncé suivant :
Ils seront plus à même pour répondre.
Ca devrait aller avec ça :
http://rompetit.free.fr/Pub/WD7/fg_EnumererSessionsInteractives.txt
A+
--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Ca devrait aller avec ça : http://rompetit.free.fr/Pub/WD7/fg_EnumererSessionsInteractives.txt
A+
-- Romain PETIT contact : http://cerbermail.com/?O16kfXOFcq +-+ posté sur Usenet avec MesNews et non depuis un forum web +-+ news:fr.comp.developpement.agl.windev http://www.mesnews.net/ http://fr.wikipedia.org/wiki/Newsgroup
Gilles
Jean-Luc Baptiste a couché sur son écran :
C'est simple :
Je suis en train de créer un petit logiciel qui "tourne" en temps que service. Ce logiciel est un soft de contrôle parental qui est chargé de supprimer des programmes suivant une liste préétablie en fonction des comptes utilisateurs. Si Toto se connecte le service doit identifier qui se connecte pour pouvoir empecher emule de fonctionner si ce soft est dans la blacklist à toto.
A l'heure actuelle il m'est impossible de savoir quel est le compte qui a ouvert une session, le seul retour que j'ai c'est system et non toto
Voilà j'espère etre plus clair dans ma demande ;-))
Oui mais énumérer les sessions ça te servira à quoi?? A rien non??
L'important pour toi est d'énumérer la liste des exe en mémoire, et suivant les autorisations de les killer ou pas.
L'autre souci, c'est le renommage d'exe, donc il faut se baser sur les titres de fenêtre plutôt.
Si .NET ne te rebute pas, en adaptant facilement l'exemple gestionnaire de tache, tu récupères la liste des exe en mémoire et l'utilisateur qui a lancé le programme (ce qui au passage te permet de savoir qui a ouvert des sessions même si ca ne te sert à rien)
le problème c'est que le nom de l'exe est ennuyeux puisqu'un simple renommage suffira. Ce qu'il faut alors, c'est trouver la correspondance entre le process ID et le titre de la fenêtre. Ca je sais le faire en API Win32 mais pas avec .NET (L'idéal serait de le faire avec .NET)
Mais bon bref, en mélangeant ces deux codes, j'ai pu sans difficulté majeure identifier si un programme dont le titre est interdit a été lancé par quelqu'un, killer l'instance du programme et afficher sur le bureau de l'utilisateur en question un message.
C'est ça que tu veux faire non? ;)
Jean-Luc Baptiste a couché sur son écran :
C'est simple :
Je suis en train de créer un petit logiciel qui "tourne" en temps que
service. Ce logiciel est un soft de contrôle parental qui est chargé de
supprimer des programmes suivant une liste préétablie en fonction des comptes
utilisateurs.
Si Toto se connecte le service doit identifier qui se connecte pour pouvoir
empecher emule de fonctionner si ce soft est dans la blacklist à toto.
A l'heure actuelle il m'est impossible de savoir quel est le compte qui a
ouvert une session, le seul retour que j'ai c'est system et non toto
Voilà j'espère etre plus clair dans ma demande ;-))
Oui mais énumérer les sessions ça te servira à quoi??
A rien non??
L'important pour toi est d'énumérer la liste des exe en mémoire, et
suivant les autorisations de les killer ou pas.
L'autre souci, c'est le renommage d'exe, donc il faut se baser sur les
titres de fenêtre plutôt.
Si .NET ne te rebute pas, en adaptant facilement l'exemple gestionnaire
de tache, tu récupères la liste des exe en mémoire et l'utilisateur qui
a lancé le programme (ce qui au passage te permet de savoir qui a
ouvert des sessions même si ca ne te sert à rien)
le problème c'est que le nom de l'exe est ennuyeux puisqu'un simple
renommage suffira.
Ce qu'il faut alors, c'est trouver la correspondance entre le process
ID et le titre de la fenêtre. Ca je sais le faire en API Win32 mais pas
avec .NET (L'idéal serait de le faire avec .NET)
Mais bon bref, en mélangeant ces deux codes, j'ai pu sans difficulté
majeure identifier si un programme dont le titre est interdit a été
lancé par quelqu'un, killer l'instance du programme et afficher sur le
bureau de l'utilisateur en question un message.
Je suis en train de créer un petit logiciel qui "tourne" en temps que service. Ce logiciel est un soft de contrôle parental qui est chargé de supprimer des programmes suivant une liste préétablie en fonction des comptes utilisateurs. Si Toto se connecte le service doit identifier qui se connecte pour pouvoir empecher emule de fonctionner si ce soft est dans la blacklist à toto.
A l'heure actuelle il m'est impossible de savoir quel est le compte qui a ouvert une session, le seul retour que j'ai c'est system et non toto
Voilà j'espère etre plus clair dans ma demande ;-))
Oui mais énumérer les sessions ça te servira à quoi?? A rien non??
L'important pour toi est d'énumérer la liste des exe en mémoire, et suivant les autorisations de les killer ou pas.
L'autre souci, c'est le renommage d'exe, donc il faut se baser sur les titres de fenêtre plutôt.
Si .NET ne te rebute pas, en adaptant facilement l'exemple gestionnaire de tache, tu récupères la liste des exe en mémoire et l'utilisateur qui a lancé le programme (ce qui au passage te permet de savoir qui a ouvert des sessions même si ca ne te sert à rien)
le problème c'est que le nom de l'exe est ennuyeux puisqu'un simple renommage suffira. Ce qu'il faut alors, c'est trouver la correspondance entre le process ID et le titre de la fenêtre. Ca je sais le faire en API Win32 mais pas avec .NET (L'idéal serait de le faire avec .NET)
Mais bon bref, en mélangeant ces deux codes, j'ai pu sans difficulté majeure identifier si un programme dont le titre est interdit a été lancé par quelqu'un, killer l'instance du programme et afficher sur le bureau de l'utilisateur en question un message.
C'est ça que tu veux faire non? ;)
Jean-Luc Baptiste
En fait, je veux, selon le compte user, killer ou non des exe prédéfinis. Pour celà il me faut récupérer le nom de l'utilisateur et un service est isolé donc il ne connait que le compte system. Je pense que la solution de romain est la bonne je vais l'essayer.
Merci à vous tous pour votre aide
"Gilles" a écrit dans le message de news:
Jean-Luc Baptiste a couché sur son écran :
C'est simple :
Je suis en train de créer un petit logiciel qui "tourne" en temps que service. Ce logiciel est un soft de contrôle parental qui est chargé de supprimer des programmes suivant une liste préétablie en fonction des comptes utilisateurs. Si Toto se connecte le service doit identifier qui se connecte pour pouvoir empecher emule de fonctionner si ce soft est dans la blacklist à toto.
A l'heure actuelle il m'est impossible de savoir quel est le compte qui a ouvert une session, le seul retour que j'ai c'est system et non toto
Voilà j'espère etre plus clair dans ma demande ;-))
Oui mais énumérer les sessions ça te servira à quoi?? A rien non??
L'important pour toi est d'énumérer la liste des exe en mémoire, et suivant les autorisations de les killer ou pas.
L'autre souci, c'est le renommage d'exe, donc il faut se baser sur les titres de fenêtre plutôt.
Si .NET ne te rebute pas, en adaptant facilement l'exemple gestionnaire de tache, tu récupères la liste des exe en mémoire et l'utilisateur qui a lancé le programme (ce qui au passage te permet de savoir qui a ouvert des sessions même si ca ne te sert à rien)
le problème c'est que le nom de l'exe est ennuyeux puisqu'un simple renommage suffira. Ce qu'il faut alors, c'est trouver la correspondance entre le process ID et le titre de la fenêtre. Ca je sais le faire en API Win32 mais pas avec .NET (L'idéal serait de le faire avec .NET)
Mais bon bref, en mélangeant ces deux codes, j'ai pu sans difficulté majeure identifier si un programme dont le titre est interdit a été lancé par quelqu'un, killer l'instance du programme et afficher sur le bureau de l'utilisateur en question un message.
C'est ça que tu veux faire non? ;)
En fait, je veux, selon le compte user, killer ou non des exe prédéfinis.
Pour celà il me faut récupérer le nom de l'utilisateur et un service est
isolé donc il ne connait que le compte system.
Je pense que la solution de romain est la bonne je vais l'essayer.
Merci à vous tous pour votre aide
"Gilles" <boulot_SANSPOURRIEL_@neogie.com> a écrit dans le message de
news:mn.34027d98e3605e23.21586@neogie.com...
Jean-Luc Baptiste a couché sur son écran :
C'est simple :
Je suis en train de créer un petit logiciel qui "tourne" en temps que
service. Ce logiciel est un soft de contrôle parental qui est chargé de
supprimer des programmes suivant une liste préétablie en fonction des
comptes utilisateurs.
Si Toto se connecte le service doit identifier qui se connecte pour
pouvoir empecher emule de fonctionner si ce soft est dans la blacklist à
toto.
A l'heure actuelle il m'est impossible de savoir quel est le compte qui a
ouvert une session, le seul retour que j'ai c'est system et non toto
Voilà j'espère etre plus clair dans ma demande ;-))
Oui mais énumérer les sessions ça te servira à quoi??
A rien non??
L'important pour toi est d'énumérer la liste des exe en mémoire, et
suivant les autorisations de les killer ou pas.
L'autre souci, c'est le renommage d'exe, donc il faut se baser sur les
titres de fenêtre plutôt.
Si .NET ne te rebute pas, en adaptant facilement l'exemple gestionnaire de
tache, tu récupères la liste des exe en mémoire et l'utilisateur qui a
lancé le programme (ce qui au passage te permet de savoir qui a ouvert des
sessions même si ca ne te sert à rien)
le problème c'est que le nom de l'exe est ennuyeux puisqu'un simple
renommage suffira.
Ce qu'il faut alors, c'est trouver la correspondance entre le process ID
et le titre de la fenêtre. Ca je sais le faire en API Win32 mais pas avec
.NET (L'idéal serait de le faire avec .NET)
Mais bon bref, en mélangeant ces deux codes, j'ai pu sans difficulté
majeure identifier si un programme dont le titre est interdit a été lancé
par quelqu'un, killer l'instance du programme et afficher sur le bureau de
l'utilisateur en question un message.
En fait, je veux, selon le compte user, killer ou non des exe prédéfinis. Pour celà il me faut récupérer le nom de l'utilisateur et un service est isolé donc il ne connait que le compte system. Je pense que la solution de romain est la bonne je vais l'essayer.
Merci à vous tous pour votre aide
"Gilles" a écrit dans le message de news:
Jean-Luc Baptiste a couché sur son écran :
C'est simple :
Je suis en train de créer un petit logiciel qui "tourne" en temps que service. Ce logiciel est un soft de contrôle parental qui est chargé de supprimer des programmes suivant une liste préétablie en fonction des comptes utilisateurs. Si Toto se connecte le service doit identifier qui se connecte pour pouvoir empecher emule de fonctionner si ce soft est dans la blacklist à toto.
A l'heure actuelle il m'est impossible de savoir quel est le compte qui a ouvert une session, le seul retour que j'ai c'est system et non toto
Voilà j'espère etre plus clair dans ma demande ;-))
Oui mais énumérer les sessions ça te servira à quoi?? A rien non??
L'important pour toi est d'énumérer la liste des exe en mémoire, et suivant les autorisations de les killer ou pas.
L'autre souci, c'est le renommage d'exe, donc il faut se baser sur les titres de fenêtre plutôt.
Si .NET ne te rebute pas, en adaptant facilement l'exemple gestionnaire de tache, tu récupères la liste des exe en mémoire et l'utilisateur qui a lancé le programme (ce qui au passage te permet de savoir qui a ouvert des sessions même si ca ne te sert à rien)
le problème c'est que le nom de l'exe est ennuyeux puisqu'un simple renommage suffira. Ce qu'il faut alors, c'est trouver la correspondance entre le process ID et le titre de la fenêtre. Ca je sais le faire en API Win32 mais pas avec .NET (L'idéal serait de le faire avec .NET)
Mais bon bref, en mélangeant ces deux codes, j'ai pu sans difficulté majeure identifier si un programme dont le titre est interdit a été lancé par quelqu'un, killer l'instance du programme et afficher sur le bureau de l'utilisateur en question un message.
C'est ça que tu veux faire non? ;)
Jean-Luc Baptiste
Oui, je le pense aussi, merci encore a vous tous pour votre aide
"Romain PETIT" a écrit dans le message de news:
PYT a présenté l'énoncé suivant :
Ils seront plus à même pour répondre.
Ca devrait aller avec ça : http://rompetit.free.fr/Pub/WD7/fg_EnumererSessionsInteractives.txt
A+
-- Romain PETIT contact : http://cerbermail.com/?O16kfXOFcq +-+ posté sur Usenet avec MesNews et non depuis un forum web +-+ news:fr.comp.developpement.agl.windev http://www.mesnews.net/ http://fr.wikipedia.org/wiki/Newsgroup
Oui, je le pense aussi, merci encore a vous tous pour votre aide
"Romain PETIT" <VoirM@Signature.fin> a écrit dans le message de
news:mn.33c37d9825f4b662.2248@Signature.fin...
PYT a présenté l'énoncé suivant :
Ils seront plus à même pour répondre.
Ca devrait aller avec ça :
http://rompetit.free.fr/Pub/WD7/fg_EnumererSessionsInteractives.txt
A+
--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Oui, je le pense aussi, merci encore a vous tous pour votre aide
"Romain PETIT" a écrit dans le message de news:
PYT a présenté l'énoncé suivant :
Ils seront plus à même pour répondre.
Ca devrait aller avec ça : http://rompetit.free.fr/Pub/WD7/fg_EnumererSessionsInteractives.txt
A+
-- Romain PETIT contact : http://cerbermail.com/?O16kfXOFcq +-+ posté sur Usenet avec MesNews et non depuis un forum web +-+ news:fr.comp.developpement.agl.windev http://www.mesnews.net/ http://fr.wikipedia.org/wiki/Newsgroup
Gilles
Il se trouve que Jean-Luc Baptiste a formulé :
En fait, je veux, selon le compte user, killer ou non des exe prédéfinis. Pour celà il me faut récupérer le nom de l'utilisateur et un service est isolé donc il ne connait que le compte system. Je pense que la solution de romain est la bonne je vais l'essayer.
Bah... bonne oui, mais inutile pour toi.
Enumérer les sessions ca va te servir à quoi??
Il faut que tu énumères les programmes en mémoire, que tu récupères le PID et l'utilisateur qui l'a lancé, et que tu le kill selon les règles établies dans ton programme.
Si tu récupères les sessions, ça ne sert strictement à rien, ça ne te dit pas quels exes tournent avec quel utilisateur.
Il se trouve que Jean-Luc Baptiste a formulé :
En fait, je veux, selon le compte user, killer ou non des exe prédéfinis.
Pour celà il me faut récupérer le nom de l'utilisateur et un service est
isolé donc il ne connait que le compte system.
Je pense que la solution de romain est la bonne je vais l'essayer.
Bah... bonne oui, mais inutile pour toi.
Enumérer les sessions ca va te servir à quoi??
Il faut que tu énumères les programmes en mémoire, que tu récupères le
PID et l'utilisateur qui l'a lancé, et que tu le kill selon les règles
établies dans ton programme.
Si tu récupères les sessions, ça ne sert strictement à rien, ça ne te
dit pas quels exes tournent avec quel utilisateur.
En fait, je veux, selon le compte user, killer ou non des exe prédéfinis. Pour celà il me faut récupérer le nom de l'utilisateur et un service est isolé donc il ne connait que le compte system. Je pense que la solution de romain est la bonne je vais l'essayer.
Bah... bonne oui, mais inutile pour toi.
Enumérer les sessions ca va te servir à quoi??
Il faut que tu énumères les programmes en mémoire, que tu récupères le PID et l'utilisateur qui l'a lancé, et que tu le kill selon les règles établies dans ton programme.
Si tu récupères les sessions, ça ne sert strictement à rien, ça ne te dit pas quels exes tournent avec quel utilisateur.