Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide
J'utilise Windows depuis la version 3.1 et j'ai acquis certaines habitudes plutôt tenaces !

Parmi elles se trouvent une fonctionnalité bien connue de tout le monde : le double clic sur la barre de titre des applications pour les agrandir/restaurer.

  • lorsque vous glissez votre fenêtre vers la bordure supérieur de votre écran, celle-ci se maximise ;
  • lorsque vous glissez votre fenêtre vers l'une des bordures droite ou gauche de votre écran, celle-ci se maximise en hauteur ;
  • lorsque vous pointez votre fenêtre et faites apparaitre le curseur de redimensionnement vertical (la double flèche verticale) et que vous double-cliquez, votre fenêtre se maximisera en hauteur ;
  • si vous secouer votre fenêtre en l'attrapant par la barre de titre, toutes les autres fenêtres se replient (et inversement) ;
  • lorsque que votre fenêtre est maximisée, si vous essayez de la déplacer en l'attrapant par la barre de titre, elle retrouve la taille qu'elle avait avant d'être maximisée.

J'espère que tout est clair !

Bon test !

Tout d'abord : je vous adresse, à vous, votre famille, vos amis, vos proches, chiens, chats... mes voeux de réussite, de santé et de bonheur pour l'année 2009.

Vous avez sans doute remarqué que depuis quelques mois, je suis moins "bavard" sur les forums et sur mon blog... la raison est simple : j'avais atteins malgré moi un niveau de saturation qui se ressentait sur les forums et dans mon job... je me suis donc mis au vert quelques temps !

Ceux qui me connaissent savent que je suis musicien (j'ai donc reformé un groupe) et dans le même temps, je me suis jeté corps et âme dans une discipline qui m'attire depuis que je suis tout gamin (à l'époque avec beaucoup de raté Big Smile) : la photo !

Je vous invite donc à visiter ma galerie sur Flickr -> http://www.flickr.com/photos/sebmafate/


Grande Arche, Paris

Je reviendrais très prochainement avec un nouvel article sur SilverLight !

Et oui... j'ai appris la semaine dernière alors que j'atterrissais à l'aéroport de JFK à New York que Microsoft me renouveler pour 1 an comme Microsoft Visual C# MVP !

A par ça... NYC est une ville impressionnante sur bien des points... je vous ferez un feedback rapidement le temps pour moi de "développer" mes photos !

Ah oui, une chose en passant... pour ceux qui utilise Live Search, j'ai eu une agréable surprise en me connectant là-bas, jugez plutôt : http://www.live.com/?scope=web&mkt=en-US (et l'image change tous les jours).

Attention, un mail avec le contenu ci-dessous circule actuellement sur l'Internet :

Download the latest version!
About this mailing:
You are receiving this e-mail because you subscribed to MSN Featured Offers. Microsoft respects your privacy. If you do not wish to receive this MSN Featured Offers e-mail, please click the "Unsubscribe" link below. This will not unsubscribe you from e-mail communications from third-party advertisers that may appear in MSN Feature Offers. This shall not constitute an offer by MSN. MSN shall not be responsible or liable for the advertisers' content nor any of the goods or service advertised. Prices and item availability subject to change without notice.

Microsoft Corporation, One Microsoft Way, Redmond, WA 9805

Méfiez-vous, ceci est une arnaque !Il s'agit probablement d'un virus.

Microsoft annonce un support gratuit et illimité concernant l'installation et la compatibilité pour tous les clients utilisant Windows Vista SP1, jusqu'au 18 mars 2009.

3 manières de contacter le support :

  • Par téléphone : partout dans le monde ;

  • Par chat *;

  • Par email *


* Pour la France, la Belgique et la Suisse


Pour plus d'information, rendez vous à la page suivante : http://support.microsoft.com/common/international.aspx?rdpath=1&prid=11274&gprid=500921

Windows Vista a apporté pas mal de choses au niveau de la gestion des réseaux, notamment grâce au “Centre Réseau et Partage”. Windows reconnait automatiquement le réseau sur lequel vous le connecter et configure la sécurité en fonction du type d’environnement que vous lui précisez.
Cependant, il est parfois intéressant de pouvoir exploiter ces informations au sein d’une application .net pour automatiser à notre tour des tâches : configurer l’imprimante par défaut, les montages réseaux…

Voici donc comment je m’y suis pris pour récupérer ces informations.

Existe-t-il une API ?

Ma première recherche s'est tournée vers les APIs : après tout si Microsoft utilise  cette fonctionnalité dans son OS, c'est que derrière, ils ont développés une API ! Et bien, soit j'ai mal cherché... soit elle n'existe pas !
Si vous avez des infos là dessus, contactez moi !

La base de registre ?

Là par contre, ça devient intéressant ; dans la base de registre se trouve une branche intéressante : HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList. Elle contient la liste complète des réseaux auxquels vous avez connecté votre machine ! Et elle peut être longue, pour moi, on y trouve pas loin de 40 références ! Entre les hotspots gratuits, les réseaux d'entreprises, la maison..!
Maintenant que l'on possède la liste des réseaux, il faut être capable de l'exploiter et surtout de faire le lien entre le réseau courant et l'un de ceux enregistrer... en gros, comprenez : retrouver les informations sur le réseau auquel votre machine est connecté. Pour cela, la signature des réseaux contient l'adresse MAC de la passerelle... Un bon moyen d'identifier le réseau !
Maintenant que nous avons tous les éléments, voyons comment nous allons procéder :

  • Récupération de la liste des réseaux depuis la base de registre
  • Identification du réseau sur lequel on se trouve
  • Matching entre le réseau identifié et la liste des réseaux

Récupération de la liste des réseaux : lecture de la base de registre

ATTENTION : Cette branche n'est accessible que par les profiles administrateurs.

Commençons par créer une classe qui contiendra les informations de nos réseaux :

   1: public class NetworkInformation { 
   2:    private Guid guid; 
   3:    public string Description {get; internal set;} 
   4:    public string FirstNetwork {get; internal set;} 
   5:    public Guid ProfileGuid {get; internal set;} 
   6:    public byte[] DefaultGateway {get; internal set;} 
   7:    public int Source {get; internal set;} 
   8:    public int CategoryType {get; internal set;} 
   9:    public DateTime DateCreated {get; internal set;} 
  10:    public DateTime DateLastConnected {get; internal set;} 
  11:    public ProfileDescription {get; internal set;} 
  12:    public int IconType {get; internal set;} 
  13:    public bool Managed {get; internal set;} 
  14:    public int NameType {get; internal set;} 
  15:    public string ProfileName {get; internal set;} 
  16: } 


Puis, recherchons les informations dans la base de registre :

   1: private static string baseKey = @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList";
   2:  
   3: public static List<NetworkInformation> GetNetworkList() {
   4:     List<NetworkInformation> ret = new List<NetworkInformation>();
   5:     RegistryKey sKey;
   6:  
   7:     RegistryKey key = Registry.LocalMachine.OpenSubKey(baseKey + @"\Signatures\Managed");
   8:     foreach (string name in key.GetSubKeyNames()) {
   9:         sKey = key.OpenSubKey(name);
  10:         // Récupération de la signature des réseaux Managés
  11:         ret.Add(GetNetworkSignature(sKey));
  12:     }
  13:  
  14:     key = Registry.LocalMachine.OpenSubKey(baseKey + @"\Signatures\Unmanaged");
  15:     foreach (string name in key.GetSubKeyNames())
  16:     {
  17:         sKey = key.OpenSubKey(name);
  18:         // Récupération de la signature des réseaux non Managés
  19:         ret.Add(GetNetworkSignature(sKey));
  20:     }
  21:  
  22:     foreach(NetworkInformation ni in ret) {
  23:         sKey = Registry.LocalMachine.OpenSubKey(string.Concat(baseKey, @"\Profiles\", ni.guid.ToString("B")));
  24:         if (sKey != null) {
  25:             ni.Category = (int)sKey.GetValue("Category", 0);
  26:             ni.CategoryType = (int)sKey.GetValue("CategoryType", 0);
  27:             // ni.DateCreated = DateTime.FromBinary(BitConverter.ToInt64((byte[])key.GetValue(name), 0));
  28:             // ni.DateLastConnected = DateTime.FromBinary(BitConverter.ToInt64((byte[])key.GetValue(name), 0));
  29:             ni.ProfileDescription = (string)sKey.GetValue("Description", string.Empty);
  30:             ni.IconType = (int)sKey.GetValue("IconType", 0);
  31:             ni.Managed = (int)sKey.GetValue("Managed", 0) == 1;
  32:             ni.NameType = (int)sKey.GetValue("NameType", 0);
  33:             ni.ProfileName = (string)sKey.GetValue("ProfileName", string.Empty);
  34:         }
  35:     }
  36:     return ret;
  37: }
  38:  
  39: private static NetworkInformation GetNetworkSignature(RegistryKey sKey)
  40: {
  41:     NetworkInformation ni = new NetworkInformation();
  42:     ni.FirstNetwork = (string)sKey.GetValue("FirstNetwork");
  43:     ni.DefaultGetawayMac = (byte[])sKey.GetValue("DefaultGatewayMac");
  44:     ni.Description = (string)sKey.GetValue("Description", string.Empty);
  45:     ni.DnsSuffix = (string)sKey.GetValue("DnsSuffix", string.Empty);
  46:     ni.Source = (int)sKey.GetValue("Source", 0);
  47:     ni.guid = new Guid((string)sKey.GetValue("ProfileGuid"));
  48:     return ni;
  49: }

Nous possèdons maintenant l'ensemble des informations sur les réseaux auxquels nous avons accédés. Nous allons maintenant voir comment récupérer les informations sur le réseau courant.

Identification du réseau courant

Comme je l'ai écrit ci-dessus, pour identifier le réseau courant dans la liste que nous venons de récupérer, il va falloir que nous récupérions l'adresse MAC de la passerelle. Nous allons nous y prendre en 2 temps :

  • Récupération de l'adresse IP
  • Récupération de l'identifiant unique

Récupération de l'adresse IP

Le framework étant bien fait dans son ensemble, on y trouve une foultitude de classes très sympa... et NetworkInterface de l'espace de noms System.Net.NetworkInformation fait partie de celles-là. Grace à elle, il est possible de savoir si votre machine est raccordée à un réseau et de connaître (en autres choses) la liste des cartes réseaux. Nous allons donc récupérer la première interface connectée à un réseau et qui possède une passerelle.

   1: public static IPAddress GetDefaultGatewayIP() {
   2:     if (!NetworkInterface.GetIsNetworkAvailable()) {
   3:         return IPAddress.None;
   4:     }
   5:  
   6:     List<NetworkInterface> nics = NetworkInterface.GetAllNetworkInterfaces().Where(nic =>
   7:         nic.NetworkInterfaceType != NetworkInterfaceType.Loopback &&
   8:         nic.NetworkInterfaceType != NetworkInterfaceType.Unknown &&
   9:         nic.OperationalStatus == OperationalStatus.Up).ToList();
  10:  
  11:     if (nics.Count > 0) { 
  12:         // on récupère la première interface trouvée... 
  13:         // on verra après si on trouve mieux
  14:         GatewayIPAddressInformationCollection gateways = nics[0].GetIPProperties().GatewayAddresses;
  15:         if (gateways.Count > 0) {
  16:             return gateways[0].Address;
  17:         }
  18:     }
  19:     return IPAddress.None;
  20: }

Récupération de l'identifiant unique

Cette étape est plus délicate que la précédente... en effet, le framework ne possède aucune méthode pour trouver l'adresse MAC. Il faut donc en passer par une API : SendARP.

   1: internal class NetworkNativeMethods
   2: {
   3:     [DllImport("iphlpapi.dll", ExactSpelling = true)]
   4:     public static extern int SendARP(int DestIP, int SrcIP, byte[] pMacAddr, ref uint PhyAddrLen);
   5: }
   6:  
   7: public static byte[] GetPhysicalAddressFromIP(IPAddress ip) {
   8:     byte[] macAddr = new byte[ 6 ];
   9:     uint macAddrLen = (uint)macAddr.Length;
  10:  
  11:     if (NetworkNativeMethods.SendARP(BitConverter.ToInt32(ip.GetAddressBytes(),0), 0, macAddr, ref macAddrLen) != 0) {
  12:         throw new InvalidOperationException("SendARP failed.");
  13:     }
  14:  
  15:     return macAddr;
  16: }

Conclusion

Voila... nous avons la liste des réseaux et l'adresse MAC de notre passerelle, il ne reste plus qu'à afficher les informations sur le réseau courant :

   1: List<NetworkInformation> networksInformations = NetworkHelp.GetNetworkList();
   2:  
   3: networksInformations.Sort((ni1, ni2) => ni1.ProfileName.CompareTo(ni2.ProfileName));
   4: comboBox1.DataSource = networksInformations;
   5: comboBox1.DisplayMember = "ProfileName";
   6:  
   7: if (SystemInformation.Network)
   8: {
   9:     IPAddress gatewayAddress = NetworkHelper.GetDefaultGatewayIP();
  10:     if (gatewayAddress != IPAddress.None)
  11:     {
  12:         byte[] gatewayMac = NetworkHelper.GetPhysicalAddressFromIP(gatewayAddress);
  13:  
  14:         NetworkInformation ni = this.networksInformations.Find(n => Convert.ToBase64String(n.DefaultGetawayMac).Equals(Convert.ToBase64String(gatewayMac)));
  15:         if (ni != null)
  16:         {
  17:             comboBox1.SelectedItem = ni;
  18:         }
  19:     }
  20:  
  21: }

Si vous avez une autre solution pour arriver au même résultat, profitez-en pour la partager :)
Cette solution sera mise en ligne sur CSharpFR avant la fin de la semaine, le temps de finaliser la version de test.

 

Edit : Merci à Olivier pour l'api "Network List Manager" : http://blogs.codes-sources.com/findufin/archive/2008/06/26/vista-api-pour-r-cup-rer-les-informations-sur-le-r-seau-courant.aspx

Cet Add-In prévu pour Visual Studio 2005 (et apparement compatible avec la version 2008) ajoute une nouvelle fenêtre de recherche vous permettant de lancer des recherches et des remplacement à partir d’expressions régulières !

A essayer !

Technorati Tags: ,

Lassé de devoir écrire à la main le résultat de mes requêtes sur mes objets métier, j'ai créé cette classe qui se charge de tout toute seule...
En prime, elle est capable de construire les 4 requêtes de base (SELECT, UPDATE, DELETE, INSERT) toute seule.

Comment ça marche ?

En bien pour faire simple, vous devez tagger les classes représentant vos objects métier avec des attributs [MafTableBinding] et [MafColumnBinding]... ensuite, vous instanciez un binder via la classe générique Binder<T>... après, c'est tout simple :p

Voici un exemple d'utilisation :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Exemple d'utilisation (à partir de la classe Comment présent dans le projet) :
DbConnection dbConnection;
Binder<Comment> commentBinder;
dbConnection = DbProviderFactories.GetFactory("System.Data.SqlClient").CreateConnection();
dbConnection.ConnectionString = @"Data Source=[...]";
commentBinder = new Binder<Comment>(this.dbConnection);
// Chargement d'une collection :
List<Comment> comments = commentBinder.GetAll();
// Chargement d'un seul commentaire :
Comment comment;
PrimaryKeyParameters pkp = commentBinder.GetPrimaryKeyParameters();
pkp["@comments_id"].Value = 999;
comment = commentBinder.GetSingle(pkp);
// Suppression d'un commentaire
commentBinder.Delete(comment);
// Modification d'un commentaire
comment.Commentaire = "Bla bla...";
commentBinder.Update(comment);

Vous pourrez retrouver cette classe sur CSharpFR à l'adresse suivante : http://www.csharpfr.com/codes/MAFBINDERHELPER-CLASSE-BINDER-AUTOMATIQUEMENT-VOS-CLASSES-SUR-VOS_46970.aspx

Technorati Tags: ,,

Au menu des nouveautés :

  • Support de l'envoi de vidéos vers SoapBox

  • Découpage et inclinaison des images

  • Nouveaux styles de bordures

  • Support d'effets de prévisualisation tels que LightBox, SlimBox, SmoothBox et autres

  • Support de la centralisation des images

  • Auto-liens

  • Citations intelligentes

  • Compteur de mots

  • Barre d'outils révisée

  • Onglets pour les vues Edition/Prévisualisation/Code

  • Contrôle de catégorie amélioré avec recherche et filtres

 

Autre mise à jour à destination des développeurs : le SDK.

Windows Live Writer 

 

Téléchargement : http://windowslivewriter.spaces.live.com/

Technorati Tags:

 

Edit : changement du lien de téléchargement.

Bonjour à tous,

Je fais le trie dans mon matériel photo, je revends donc :

  1. Boitier : Kit Canon EOS 400D + EF-S 18-55
    + Filtre UV Hoya
    + Filtre Polarisant Hoya
    + Carte mémoire 512Mo
    + 2 batteries supplémentaires

    Moins de 5000 déclenchements, acheté en mars 2007.
    Très bon état.
  2. Objectif : Cannon EF-S 17-85 IS USM (stabilisé)
    + Filtre UV Hoya

    Etat nickel.
  3. Objectif : Sigma AF 70-300 DG Macro
    + Filtre UV Hoya
    + Pare-soleil

    Très peu servi.
    Etat nickel.

 

Pour plus d'infos, des photos, les prix : merci de me contacter en privé.

Parfois on a des raisons d'être agacé : la grève dans les transports, grève des fonctionnaires, une personne dans l'entourage qu'on ne peut plus voir en peinture... et puis parfois, un simple logiciel... enfin simple !

Explications :
J'étais bêta-tester sur la dernière version de Windows Live OneCare, et depuis plusieurs versions, j'avais remonté un bug assez gênant... n'ayant pu tester les versions suivantes, j'ai installé la version finale ce week-end et là catastrophe : le bug n'est pas corrigé !!!

En gros, je ne sais pas ce qu'il se passe mais dès que je connecte mon portable à mon réseau domestique, mon router (LiveBox) tombe en carafe quelques minutes (secondes ?) plus tard.
Bref, j'ai donc un anti-virus payant inutilisable... ou si... faut que je fasse un choix : soit j'ai de l'Internet, soit j'ai un antivirus !
Et, cerise sur le gâteau, le support de Windows Live me répond ceci "Après analyse, votre demande n'est pas liée à Windows Live OneCare mais est d'ordre technique" et me renvoie sur la page http://support.microsoft.com/?ln=FR dans laquelle on ne trouve aucune trace de OneCare ! bravo !!!

(et bien sûr, il est impossible de télécharger la version précédente :()

Bon, je crois que je vais me tourner vers Avast!

Edit : Et si en plus FireFox s'y met !


Bonjour,
 
Voici un message important de la part de Microsoft :
 
Un faux site hébergeant un certain « Microsoft Antispyware Center » est récemment apparu sur Internet (on y accède généralement en cliquant sur une bannière affichée depuis certains sites pornographiques) et vous propose d’analyser en ligne votre PC à la recherche de logiciels espions. Il vous propose ensuite d'acheter un logiciel pour les éradiquer. Ce site est, bien évidemment, un faux qui a pour conséquence, si vous y naviguez et que vous n’y prenez pas garde, (1) l’exécution d’une prétendue analyse qui peut conduire à l’installation de chevaux de Troie sur votre machine, (2) le vol du numéro de votre carte bancaire.
 
Un petit rappel : il existe bien le scanner de sécurité Windows Live OneCare qui est un service d'analyse conçu pour protéger, nettoyer et optimiser votre ordinateur. Ce service gratuit est accessible directement via Internet depuis le site http://safety.live.com. Vous pouvez utiliser le site du scanner de sécurité Windows Live OneCare autant de fois que vous le souhaitez pour optimiser votre ordinateur.
 
D’une manière générale, si vous avez le moindre doute à propos de la provenance d’outils de sécurité Microsoft, nous vous conseillons de visiter auparavant le portail général de sécurité de Microsoft : http://www.microsoft.com/france/securite ou le portail de sécurité destiné au grand public : http://www.microsoft.com/france/athome/security/default.mspx.

Voilà, c'est officiel, j'ai reçu le mail cette nuit, je suis officiellement renouvelé en tant que Microsoft Visual C# MVP.

Vous pouvez consulter mon profil en cliquant sur le pointeur suivant : https://mvp.support.microsoft.com/profile/sebastien.ferrand.

Cette année, pour compenser la baisse de régime de l'année dernière, je me lancerais dans une nouvelle série d'articles sur les Windows Forms et notamment dans l'utilisation des APIs de Windows Vista (gestion des transparences, des dialogues...). Et puisque j'ai enfin un peu de temps pour plonger dans WPF, j'espère pouvoir vous faire partager mon expérience dans ce qui semble être un monde merveilleux.

A bientôt !

J'ai découvert ce matin 2 articles présentant les nouveautés de .NET 3.5 (beta2) et Visual Studio 2008 (beta2)

 

Nouvelles fonctionnalités de Visual Studio 2008 : http://www.codeproject.com/useritems/Visual_Studio_2008.asp 
Amélioration du langage (C#) dans .NET 3.5 :  http://www.codeproject.com/useritems/Net_3x_Language.asp

 

L'auteur : Ramana G.V.

 

Bonne lecture :)

Comme vous avez surement pu le constater, la librairie MSDN jouie depuis quelque temps d'une nouvelle mise à jour.

Vous pouvez dorénavant ajouter des mots-clés sur les pages (Tags), mais aussi visualiser la liste des contributions des auteurs... même le Tag-Cloud de la page d'accueil n'a pas été oublié !
Pas contre, je déplore une régression : à cause de la majuscule l'accent de mon prénom, je ne peux plus accéder à mon profil Crying

Bref, n'oubliez pas : http://msdn2.microsoft.com/fr-fr/library/default.aspx

Tout ceux qui utilisent ASP.NET connaissent surement les Validators. Ces contrôles permettent de valider facilement le contenu d'une page.

Voici donc une sorte d'équivalent pour les Windows Forms. Vous y trouverez les validators suivant :
- RequiredFieldValidator
- RegularExpressionValidator
- CompareValidator
- RangeValidator
- CustomValidator
- CompareToControlValidator

Pour faciler leur utilisation dans un formulaire, j'ai aussi créé un composant (Extender) qui ajoute des propriétés aux TextBoxes et ComboBoxes...

C'est encore en cours de développement, mais j'ai jugé que c'était suffisament avancé pour le publier.

http://www.csharpfr.com/codes/WINDOWS-FORMS-VALIDATORS_43575.aspx

Et bien, un copain vient de mettre en ligne un service qui vous permettra de rédiger de beaux courriers Smile

Cette page permet de créer un courrier standard simplement et rapidement. Il vous suffit de remplir les champs ci-dessous. La mise en page et la disposition des éléments de votre lettre sont automatiques. Votre pouvez choisir une formule de politesse ainsi que le type de document à imprimer. Choisissez le format Word (Rich Text Format) pour modifier manuellement votre lettre avant de l'imprimer ou PDF (Acrobat Reader) pour une meilleure protection du contenu de votre courrier. Ce service est gratuit.

Essayez : http://www.niceletter.com

 

Ahhh... les joies d'être consultant... vous faites 1 an par ci, 1 an par là... aujourd'hui, je termine ma mission chez France 2 et quitte une équipe de développeurs qui n'a cessée de me surprendre depuis le début... beaucoup de gars sympathiques et très compétents !

Lundi, je vais découvrir ma nouvelle mission : à BNP Paribas. Domaine complétement différent : je passe des médias à la finance !!!

Et très important, je serai à 10 minutes à pieds de la gare du nord... soit à peine plus pour retrouver la femme que j'aime pour manger très régulièrement le midi... si ça, c'est pas du bonheur !

 

 

Truc drôle : j'ai appris hier qu'une personne qui ne m'apprécie pas (en même temps, c'est réciproque Wink) lisait ce blog pour suivre mon actualité... lol... pas facile de lire un blog technique quand on ne connait rien à la technologie concernée Big Smile...

Posté le jeudi 31 mai 2007 10:30 par sebmafate | 6 commentaire(s)
Classé sous :

C'est une source que j'avais sous le coude gauche (private joke) depuis un bon moment... Je vous la livre suite à une demande sur le forum du site www.csharpfr.com : http://www.csharpfr.com/infomsg_METTRE-FOND-DERRIERE-TEXTE-DANS-IMAGE_953207.aspx.

En gros, pour améliorer la lisibilité du texte lorsque le fond est de la même couleur que celui, on dessine un "nuage" puis le texte.

 

http://www.csharpfr.com/codes/BLUREDLABEL-LABEL-AVEC-FOND-TROUBLE-COMME-SOUS-VISTA_42905.aspx

S'il vous arrive d'avoir besoin d'utiliser un Wizard au sein de vos applications, vous savez comme c'est parfois usant de réécrire cette brique ou bien de rechercher la source qui va bien... et ce matin, je suis tombé sur cette source... rien que le fait qu'elle s'intègre correctement au designer me plait bien...

A essayer donc !



Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01