begin process at 2012 02 12 16:43:42
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > CRÉER UN COMPTE UTILISATEUR SOUS WINDOWS NT, 2000 OU XP

CRÉER UN COMPTE UTILISATEUR SOUS WINDOWS NT, 2000 OU XP


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Système Classé sous :netusersetinfo, utilisateur, api, netuseradd, netlocalgroupaddmembers Niveau :Expert Date de création :05/12/2005 Date de mise à jour :23/08/2006 08:42:08 Vu :25 031

Auteur : JuanedaEr

Ecrire un message privé
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

 Description

Ce code permet de créer un compte utilisateur sous Windows NT, 2000 ou XP, d'ajouter un compte à un groupe, de désactiver un compte, de changer un mot de passe utilisateur.

Il utilise les API NetUserAdd, NetLocalGroupAddMembers, NetUserSetInfo.

Source

  • '-----------------------------------------------------------------------------------------
  • 'CREATION DE COMPTES UTILISATEUR LOCAUX (Windows NT, 2000, XP)
  • '-----------------------------------------------------------------------------------------
  • '
  • 'Version : 1.2
  • 'Auteur : Eric Juaneda
  • 'Création : 4 décembre 2005
  • 'Modification : 23 août 2006
  • '-----------------------------------------------------------------------------------------
  • Option Explicit
  • Private Const UF_SCRIPT = &H1
  • Private Const UF_ACCOUNTDISABLE = &H2
  • Private Const UF_NORMAL_ACCOUNT = &H200
  • Private Const UF_LOCKOUT = &H10
  • Private Const USER_PRIV_USER = 1
  • Private Const TIMEQ_FOREVER = -1
  • 'Private Const NERR_BASE = 2100
  • 'Private Const NERR_UserNotFound = (NERR_BASE + 121) '/* The user name could not be found. */
  • 'Private Const NERR_BadUsername = (NERR_BASE + 102) '/* The user name or group name parameter is invalid. */
  • 'Private Const NERR_UserExists = (NERR_BASE + 124)
  • 'Private Const NERR_PasswordTooShort = (NERR_BASE + 145) '/* The password does not meet the password policy requirements. Check the minimum password length, password complexity and password history requirements. */
  • Private Type LOCALGROUP_MEMBERS_INFO_3
  • lgrmi3_domainandname As Long
  • End Type
  • Private Type USER_INFO_2
  • usri2_name As Long 'LPWSTR
  • usri2_password As Long 'LPWSTR
  • usri2_password_age As Long 'DWORD
  • usri2_priv As Long 'DWORD
  • usri2_home_dir As Long 'LPWSTR
  • usri2_comment As Long 'LPWSTR
  • usri2_flags As Long 'DWORD
  • usri2_script_path As Long 'LPWSTR
  • usri2_auth_flags As Long 'DWORD
  • usri2_full_name As Long 'LPWSTR
  • usri2_usr_comment As Long 'LPWSTR
  • usri2_parms As Long 'LPWSTR
  • usri2_workstations As Long 'LPWSTR
  • usri2_last_logon As Long 'DWORD
  • usri2_last_logoff As Long 'DWORD
  • usri2_acct_expires As Long 'DWORD
  • usri2_max_storage As Long 'DWORD
  • usri2_units_per_week As Long 'DWORD
  • usri2_logon_hours As Long 'PBYTE
  • usri2_bad_pw_count As Long 'DWORD
  • usri2_num_logons As Long 'DWORD
  • usri2_logon_server As Long 'LPWSTR
  • usri2_country_code As Long 'DWORD
  • usri2_code_page As Long 'DWORD
  • End Type
  • Private Type USER_INFO_1003
  • usri1003_password As Long
  • End Type
  • Private Type USER_INFO_1008
  • usri1008_flags As Long
  • End Type
  • 'API Unicode
  • Private Declare Function NetLocalGroupAddMembers Lib "Netapi32" (ByVal ServerName As Long, ByVal GroupName As Long, ByVal Level As Long, buf As Any, ByVal TotalEntries As Long) As Long
  • Private Declare Function NetLocalGroupDelMembers Lib "Netapi32" (ByVal ServerName As Long, ByVal GroupName As Long, ByVal Level As Long, buf As Any, ByVal TotalEntries As Long) As Long
  • Private Declare Function NetUserSetInfo Lib "Netapi32" (ByVal ServerName As Long, ByVal UserName As Long, ByVal Level As Long, buf As Any, Parm_Err As Long) As Long
  • Private Declare Function NetUserDel Lib "Netapi32" (ByVal ServerName As Long, ByVal UserName As Long) As Long
  • Private Declare Function NetUserAdd Lib "Netapi32" (ByVal ServerName As Long, ByVal Level As Long, buf As Any, Parm_Err As Long) As Long
  • Sub Main()
  • Dim UserName As String
  • UserName = "Einstein"
  • CreateUser UserName, "albert", "Compte utilisé pour les calculs"
  • AddUserInGroup UserName, "Administrateurs"
  • DisableUser UserName
  • ChangePassword UserName, "albert2"
  • End Sub
  • 'Crée un compte utilisateur local
  • '<retour> 1 = Ok, 0 = Erreur
  • Private Function CreateUser(UserName As String, Password As String, Comment As String) As Long
  • Dim Buffer As USER_INFO_2
  • Dim rc As Long, Trap As Long, Size As Long
  • With Buffer 'USER_INFO_2
  • .usri2_name = StrPtr(UserName)
  • .usri2_password = StrPtr(Password)
  • .usri2_priv = USER_PRIV_USER '<--Ne pas mettre une autre valeur
  • .usri2_comment = StrPtr(Comment)
  • .usri2_flags = UF_NORMAL_ACCOUNT Or UF_SCRIPT Or UF_LOCKOUT
  • .usri2_full_name = 0
  • .usri2_acct_expires = TIMEQ_FOREVER 'Le compte n'expire jamais
  • End With
  • rc = NetUserAdd(0&, 2&, Buffer, Trap)
  • '0 Ok
  • '2202 NERR_BadUsername
  • '2224 NERR_UserExists
  • '2245 NERR_PasswordTooShort
  • '87 ERROR_INVALID_PARAMETER
  • '5 ERROR_ACCESS_DENIED
  • If rc = 2224 Then rc = 0 'Le compte existe déjà
  • If rc = 0 Then CreateUser = 1 'Code retour Ok
  • End Function
  • 'Désactive un compte local
  • '<retour> 1 = Ok, 0 = Erreur
  • Public Function DisableUser(UserName As String) As Long
  • Dim Buffer As USER_INFO_1008
  • Dim rc As Long, Trap As Long
  • Buffer.usri1008_flags = UF_SCRIPT Or UF_LOCKOUT Or UF_ACCOUNTDISABLE
  • rc = NetUserSetInfo(0&, StrPtr(UserName), 1008&, Buffer, Trap)
  • If rc = 0 Then DisableUser = 1 'Code retour Ok
  • End Function
  • 'Change le mot de passe d'un compte utilisateur
  • '<retour> 1 = Ok, 0 = Erreur
  • Public Function ChangePassword(UserName As String, NewPassword As String) As Long
  • Dim Buffer As USER_INFO_1003
  • Dim rc As Long, Trap As Long
  • Buffer.usri1003_password = StrPtr(NewPassword)
  • rc = NetUserSetInfo(0&, StrPtr(UserName), 1003&, Buffer, Trap)
  • '0 Ok
  • '87 ERROR_INVALID_PARAMETER
  • If rc = 0 Then ChangePassword = 1 'Code retour Ok
  • End Function
  • 'Ajoute un compte à un groupe local
  • '<retour> 1 = Ok, 0 = Erreur
  • Public Function AddUserInGroup(UserName As String, GroupName As String) As Long
  • Dim Buffer As LOCALGROUP_MEMBERS_INFO_3
  • Dim rc As Long, Level As Long
  • 'If UserName = "" Then iLastError = ERROR_INVALID_SERVICE_ACCOUNT: Exit Function
  • 'If GroupName = "" Then iLastError = ERROR_INVALID_GROUPNAME: Exit Function
  • 'If Len(UserName) > 20 Then iLastError = ERROR_INVALID_SERVICE_ACCOUNT: Exit Function '20 caractères maximum
  • 'Rempli les données entrantes
  • Buffer.lgrmi3_domainandname = StrPtr(UserName)
  • 'Travail en local
  • rc = NetLocalGroupAddMembers(0&, StrPtr(GroupName), 3&, Buffer, 1)
  • If rc = 1378 Then rc = 0
  • '1387 ERROR_NO_SUCH_MEMBER Utilisateur inéxistant
  • '1378 ERROR_MEMBER_IN_ALIAS Utilisateur déjà existant
  • '5 ERROR_ACCESS_DENIED Accès refusé
  • 'Code retour Ok
  • If rc = 1378 Then rc = 0 'Utilisateur déjà dans le groupe
  • If rc = 0 Then AddUserInGroup = 1
  • End Function
'-----------------------------------------------------------------------------------------
'CREATION DE COMPTES UTILISATEUR LOCAUX (Windows NT, 2000, XP)
'-----------------------------------------------------------------------------------------
'
'Version      : 1.2
'Auteur       : Eric Juaneda
'Création     : 4 décembre 2005
'Modification : 23 août 2006
'-----------------------------------------------------------------------------------------
Option Explicit
  
Private Const UF_SCRIPT = &H1
Private Const UF_ACCOUNTDISABLE = &H2
Private Const UF_NORMAL_ACCOUNT = &H200
Private Const UF_LOCKOUT = &H10

Private Const USER_PRIV_USER = 1
Private Const TIMEQ_FOREVER = -1

'Private Const NERR_BASE = 2100
'Private Const NERR_UserNotFound = (NERR_BASE + 121) '/* The user name could not be found. */
'Private Const NERR_BadUsername = (NERR_BASE + 102) '/* The user name or group name parameter is invalid. */
'Private Const NERR_UserExists = (NERR_BASE + 124)
'Private Const NERR_PasswordTooShort = (NERR_BASE + 145) '/* The password does not meet the password policy requirements. Check the minimum password length, password complexity and password history requirements. */
  
  
Private Type LOCALGROUP_MEMBERS_INFO_3
    lgrmi3_domainandname As Long
End Type
  
Private Type USER_INFO_2
  usri2_name As Long 'LPWSTR
  usri2_password As Long 'LPWSTR
  usri2_password_age As Long 'DWORD
  usri2_priv As Long 'DWORD
  usri2_home_dir As Long 'LPWSTR
  usri2_comment As Long 'LPWSTR
  usri2_flags As Long 'DWORD
  usri2_script_path As Long 'LPWSTR
  usri2_auth_flags As Long 'DWORD
  usri2_full_name As Long 'LPWSTR
  usri2_usr_comment As Long 'LPWSTR
  usri2_parms As Long 'LPWSTR
  usri2_workstations As Long 'LPWSTR
  usri2_last_logon As Long 'DWORD
  usri2_last_logoff As Long 'DWORD
  usri2_acct_expires As Long 'DWORD
  usri2_max_storage As Long 'DWORD
  usri2_units_per_week As Long 'DWORD
  usri2_logon_hours As Long 'PBYTE
  usri2_bad_pw_count As Long 'DWORD
  usri2_num_logons As Long 'DWORD
  usri2_logon_server As Long 'LPWSTR
  usri2_country_code As Long 'DWORD
  usri2_code_page As Long 'DWORD
End Type
  
  
Private Type USER_INFO_1003
    usri1003_password As Long
End Type
  
Private Type USER_INFO_1008
    usri1008_flags As Long
End Type
  
  
'API Unicode
Private Declare Function NetLocalGroupAddMembers Lib "Netapi32" (ByVal ServerName As Long, ByVal GroupName As Long, ByVal Level As Long, buf As Any, ByVal TotalEntries As Long) As Long
Private Declare Function NetLocalGroupDelMembers Lib "Netapi32" (ByVal ServerName As Long, ByVal GroupName As Long, ByVal Level As Long, buf As Any, ByVal TotalEntries As Long) As Long
Private Declare Function NetUserSetInfo Lib "Netapi32" (ByVal ServerName As Long, ByVal UserName As Long, ByVal Level As Long, buf As Any, Parm_Err As Long) As Long
Private Declare Function NetUserDel Lib "Netapi32" (ByVal ServerName As Long, ByVal UserName As Long) As Long
  
Private Declare Function NetUserAdd Lib "Netapi32" (ByVal ServerName As Long, ByVal Level As Long, buf As Any, Parm_Err As Long) As Long
  
Sub Main()
    Dim UserName As String
     
    UserName = "Einstein"
     
    CreateUser UserName, "albert", "Compte utilisé pour les calculs"
    AddUserInGroup UserName, "Administrateurs"
    DisableUser UserName
    ChangePassword UserName, "albert2"
     
End Sub
  
'Crée un compte utilisateur local
'<retour> 1 = Ok, 0 = Erreur
Private Function CreateUser(UserName As String, Password As String, Comment As String) As Long
    Dim Buffer As USER_INFO_2
    Dim rc As Long, Trap As Long, Size As Long
     
    
    With Buffer 'USER_INFO_2
        .usri2_name = StrPtr(UserName)
        .usri2_password = StrPtr(Password)
        .usri2_priv = USER_PRIV_USER '<--Ne pas mettre une autre valeur
        .usri2_comment = StrPtr(Comment)
        .usri2_flags = UF_NORMAL_ACCOUNT Or UF_SCRIPT Or UF_LOCKOUT
         
        .usri2_full_name = 0
        .usri2_acct_expires = TIMEQ_FOREVER 'Le compte n'expire jamais
    End With
  
  
    rc = NetUserAdd(0&, 2&, Buffer, Trap)
    '0 Ok
    '2202 NERR_BadUsername
    '2224 NERR_UserExists
    '2245 NERR_PasswordTooShort
    '87 ERROR_INVALID_PARAMETER
    '5 ERROR_ACCESS_DENIED
    If rc = 2224 Then rc = 0 'Le compte existe déjà
     
    If rc = 0 Then CreateUser = 1 'Code retour Ok
    
End Function
  
'Désactive un compte local
'<retour> 1 = Ok, 0 = Erreur
Public Function DisableUser(UserName As String) As Long
    Dim Buffer As USER_INFO_1008
    Dim rc As Long, Trap As Long
     
    Buffer.usri1008_flags = UF_SCRIPT Or UF_LOCKOUT Or UF_ACCOUNTDISABLE
    
    rc = NetUserSetInfo(0&, StrPtr(UserName), 1008&, Buffer, Trap)
     
    If rc = 0 Then DisableUser = 1 'Code retour Ok
     
End Function
  
'Change le mot de passe d'un compte utilisateur
'<retour> 1 = Ok, 0 = Erreur
Public Function ChangePassword(UserName As String, NewPassword As String) As Long
    Dim Buffer As USER_INFO_1003
    Dim rc As Long, Trap As Long
         
    Buffer.usri1003_password = StrPtr(NewPassword)
     
    rc = NetUserSetInfo(0&, StrPtr(UserName), 1003&, Buffer, Trap)
    '0 Ok
    '87 ERROR_INVALID_PARAMETER
     
    If rc = 0 Then ChangePassword = 1 'Code retour Ok
     
End Function
  
'Ajoute un compte à un groupe local
'<retour> 1 = Ok, 0 = Erreur
Public Function AddUserInGroup(UserName As String, GroupName As String) As Long
    Dim Buffer As LOCALGROUP_MEMBERS_INFO_3
    Dim rc As Long, Level As Long
     
     
'If UserName = "" Then iLastError = ERROR_INVALID_SERVICE_ACCOUNT: Exit Function
'If GroupName = "" Then iLastError = ERROR_INVALID_GROUPNAME: Exit Function
'If Len(UserName) > 20 Then iLastError = ERROR_INVALID_SERVICE_ACCOUNT: Exit Function '20 caractères maximum
     
  
'Rempli les données entrantes
    Buffer.lgrmi3_domainandname = StrPtr(UserName)
     
    'Travail en local
    rc = NetLocalGroupAddMembers(0&, StrPtr(GroupName), 3&, Buffer, 1)
    If rc = 1378 Then rc = 0
    '1387 ERROR_NO_SUCH_MEMBER Utilisateur inéxistant
    '1378 ERROR_MEMBER_IN_ALIAS Utilisateur déjà existant
    '5 ERROR_ACCESS_DENIED Accès refusé
     
'Code retour Ok
    If rc = 1378 Then rc = 0 'Utilisateur déjà dans le groupe
    If rc = 0 Then AddUserInGroup = 1
  
End Function



 Historique

05 décembre 2005 13:06:54 :
La catégorie 'Système' ne semble plus appropriée pour ranger ce code.
12 décembre 2005 10:00:27 :
J'ai modifié le code. L'utilisation du Falg UF_LOCKOUT est nécessaire pour ne pas créer des compte qui sont expirés !
23 août 2006 08:42:08 :
L'oublie concernant la date d'expiration du compte à été corrigé. Le compte n'expire jamais.

 Sources du même auteur

Source avec Zip Source avec une capture ECRIRE DANS LE JOURNAL DES EVENEMENTS (METHODE 3)
ECRIRE DANS LE JOURNAL DES EVENEMENTS (METHODE 2)

 Sources de la même categorie

Source avec Zip Source avec une capture AUTORISER/REFUSER L'EXECUTION DE PROCESSUS par pierreh51
Source avec Zip Source .NET (Dotnet) CLONE/FORK DES FLUX DE LA CONSOLE : PERMETTRE LA REDIRECTION... par ShareVB
Source avec Zip Source .NET (Dotnet) DÉFRAGMENTER UN FICHIER par ShareVB
Source avec Zip Source .NET (Dotnet) ECRAN DE VEILLE : DÉTECTER LE LANCEMENT/DÉCLENCHER/EMPÊCHER par ShareVB
Source avec Zip Source avec une capture DESACTIVER / ACTIVER LES MISES EN VEILLES PC par Arsena

 Sources en rapport avec celle ci

Source avec Zip COMMUNICATION MODBUS MASTER par sergelapointe
Source avec Zip Source avec une capture AFFICHEUR TYPE DIGITAL AVEC AVEC L'API SETBITMAPBITS par oeildedinde
Source avec Zip Source avec une capture [VBA] EXCEL - UNE CALCULATRICE SUR UN USERFORM par lermite222
Source avec Zip Source avec une capture OCX REGISTRE par gta126
FONCTIONS RÉSEAU DE BASE par crenaud76

Commentaires et avis

Commentaire de asimengo le 06/12/2005 16:15:44

Merci pour l'info, j'aurais surement l'occasion de m'en servir, si ça marche.

A+

Commentaire de jadot le 12/12/2005 09:08:12

Merci pour l'info, interressant.
Y-a-t-il moyen de creer le compte utilisateur directement dans un "Organizational Unit" (je ne connais pas la traduction en francais mais ca correspond aux "sous repertoires de de l'Active Directory) ?

A+

Commentaire de JuanedaEr le 12/12/2005 09:57:26

Bonjour JADOT,
Pour créer des comptes dans une 'OU' de domaine, il est préférable d’utiliser une autre type de code.
Voir sur le msdn.microsoft.com la fonction : IADsContainer::Create
Un exemple en VB illustre l’utilisation de la fonction.

Commentaire de jadot le 12/12/2005 10:21:32

Merci JuanedaEr.
Effectivement, il y a tout ce qu'il faut concernant ce sujet en cherchant un peu.

Commentaire de diablamanshadow le 12/12/2005 17:22:34

un zip serais sympa ainsi qu'un screenshot ^^ mici

Commentaire de leboxeurs13 le 23/01/2006 10:59:45

merci pour ces information qui me sera esentielle

Commentaire de mvery le 03/03/2006 12:58:23

Merci pour ces informations
Bien que j'utilise le Falg UF_LOCKOUT les user creer sont bloquer par le message "password expiré"
peut ton "désactiver" le mot de passe n'expire jamais?
Merci pour la reponse

Commentaire de mvery le 03/03/2006 13:04:15

Désolé en fait ces bien le compte qui est expiré car j'ai le message "votre compte a expiré"

Commentaire de JuanedaEr le 15/03/2006 15:30:04

Bonjour MVERY,
Pourrais-tu donner quelques explications sur les tests que tu as menés. Sous quel système d'exploitation tu travailles, quel service Pack, quelles boute de code as tu lancé...

Commentaire de rompetit le 15/05/2006 17:29:20

J'avais le même problème que MVERY.
Tu as oublié le paramètre correspondant à l'expiration du compte :
usri2_acct_expires
    Specifies a DWORD value that indicates when the account expires. This value is stored as the number of seconds elapsed since 00:00:00, January 1, 1970, GMT. A value of TIMEQ_FOREVER indicates that the account never expires

-> à paramétrer avec la valeur -1 (=TIMEQ_FOREVER) lors de la création du compte sinon il est à 0 et est donc expiré...


# Private Function CreateUser(UserName As String, Password As String, Comment As String) As Long
[...]
#     With Buffer 'USER_INFO_2
#         .usri2_name = StrPtr(UserName)
#         .usri2_password = StrPtr(Password)
#         .usri2_priv = USER_PRIV_USER '<--Ne pas mettre une autre valeur
#         .usri2_comment = StrPtr(Comment)
#         .usri2_flags = UF_NORMAL_ACCOUNT Or UF_SCRIPT Or UF_LOCKOUT
#          
#         .usri2_full_name = 0
#         .usri2_usri2_acct_expires = -1
#     End With
#[...]

A+

Commentaire de vbPink le 08/08/2006 20:24:23

c'est bon

Commentaire de JuanedaEr le 23/08/2006 08:46:55

Merci ROMPETIT pour la correction. J'ai modifié le code en conséquence.

Commentaire de fadelovesky le 15/09/2006 00:12:52

Juste une question,est ce que ca marche si l'utilisateur n'est pas un admin? car pour moi, j'utilise les api de WMI et d'autres.
je pense que c non car c'est au bas niveau de windows que tout se passe avec cryptage.du moin,on sait jamais.

                                                        Merci

Commentaire de JuanedaEr le 18/09/2006 08:26:43

Utiliser les API Windows ou WMI n'outrepasse pas les droits système. Il faut effectivement des droits élevés pour créer des utilisateurs. Le programme peut toutefois être lancé par la commande "Runas" en stipulant un compte admin local.

Commentaire de fadelovesky le 24/09/2006 00:09:58

très bien rien a dire.bonne continuation l'ami!

Commentaire de mvery le 09/07/2007 10:08:30

Ca fonctionne tres bien pour moi merci,

est t'il possible de cocher la case "le mot de passe n'expire jamais" pendant la creation du compte j'ai un peu chercher sur internet mais rien trouver.
Quand je regarde t'on code je vois plein d'options mais j'ai fait quelques tests avec mes trois neurones et j'ai rien trouver dans ce sens.

peut tu m'aider?

Commentaire de JuanedaEr le 09/07/2007 10:53:36

Bonjour MVERY,
J'ai jeté un oeuil sur le MDSN. Il faut ajouter le flag UF_DONT_EXPIRE_PASSWD à USER_INFO_2.usri2_flags dans la fonction CreateUser.

Ce qui donne les lignes suivantes :

Private Const UF_DONT_EXPIRE_PASSWD = &H10000

Buffer.usri2_flags = UF_NORMAL_ACCOUNT Or UF_SCRIPT Or UF_LOCKOUT Or UF_DONT_EXPIRE_PASSWD

Eric

Commentaire de Diabolus le 23/07/2007 13:07:29

Salut
Ton code m'intéresse beaucoup, mais je ne connais pas bien le Visual et je n'arrive pas à le refaire fonctionner (j'ai essayé en créant un projet WinForm .NET, et ça ne compilait pas).

Pourrais tu mettre les sources de ton projet ? ou les quelques lignes nécessaires pour l'implémenter en C# si tu connais ?
Merci à toi en tout cas !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

API Windows [ par rutabaga ] Bonjour,Exite-t-il une API ou au moins une solution pour détecter si un fichier partagé en réseau (un fichier excel par ex) est ouvert par un autre ut URGENT Détection fichier [ par rutabaga ] Bonjour, 3e tentative !Exite-t-il une API ou au moins une solution pour détecter si un fichier partagé en réseau (un fichier excel par ex) est ouvert APi specifiques pour determiner la version d'un logiciel [ par Andrea ] Bojour,Je voudrais savoir si il existe des API permettant de trouver les logiciels installes sur un ordinateur (avec la version et peut etre le n° de Pb de palette [ par gizaic ] pb simple qui ne l'est pas :lorsque j'affiche la commondialog de la pallette est que l'utilisateur click sur annuler , cette saleté revoit 0...qui est Api pour créer une muniterie [ par seguro71 ] Je cherche à savoir avec quel Api et comment l'appeler exactement pour créer un petit programme pour éteindre mon PC(au bout d'un certain temps) doté API !!!! API !!! JE ME POSE UNE QUESTION !! ?? [ par ATH|500| ] VOICI UN EXAMPLE D'API !!! Je me demandais quelques choses les api comme c'est deux là ben est-ce qu'il faut taper le code a la main ou bien il y a un utiliser l'API de correction automatique d'orthographe dans VB [ par hadi ] j'aime bien integrer l'API de correction d'orthographe dans un programme VB comment faire s'il vous plait?! merci! utilisateur different pour l'execution d'un program [ par maison9 ] mon program ouvre la base de registre sous NTsi je n'ai pas les droits, je ne peut pas ouvrir la base de registreje connais un compte qui a les droits Exécuter une application au login Windows [ par sébastien fouilloux ] Bonjour,comment exécuter une application au démarrage de windows et empecher l'utilisateur de lancer une autre appli dans qu'il n'a pas été identifié Gestion d'utilisateur avec VB et Base de donnée, kommentkonfait ??? [ par Seoman ] Voilà mon problem :Je dois réussir à gérer des utilisateurs à l'aide d'un log et pass (en liaison avec une base de donnée).Si vous avez des exemples d


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,420 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales