scoubidou944
Messages postés714Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention19 janvier 2017
-
9 mars 2007 à 00:16
cs_oualido
Messages postés1Date d'inscriptionsamedi 8 octobre 2005StatutMembreDernière intervention19 juin 2007
-
19 juin 2007 à 09:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_oualido
Messages postés1Date d'inscriptionsamedi 8 octobre 2005StatutMembreDernière intervention19 juin 2007 19 juin 2007 à 09:24
Merci,
c'est intéressant , par contre
avez vous une idée sur comment on peut faire pour modifier un objet via WMI, sachant que Wql est un langage lecture seule.
merci
scoubidou944
Messages postés714Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention19 janvier 2017 20 mars 2007 à 19:42
Autre remarque, DriveInfo renvoie la description en anglais alros que WMI le localise dans la langue de l'OS.
De plus, il manque pas mal d'info à mon goût (dans le cas qui me concerne).
Donc (et à moins d'avoir loupé quelque chose), je vais garder mon exemple (en corrigeant l'erreur) même s'il y a plus de code.
Le débat est ouvert
scoubidou944
Messages postés714Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention19 janvier 2017 20 mars 2007 à 19:31
scoubidou944
Messages postés714Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention19 janvier 2017 11 mars 2007 à 14:15
Argh, pourtant j'ai horreur de réinventer la poudre ;p
Merci pour l'oubli
et re merci pour le wrapper DriveInfo ;p
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 11 mars 2007 à 10:46
Avec la classe DriveInfo() c'est pas plus simple ?
De plus tu oublis de libérer tes objets de management (.Dispose())
++ Bonne continuation
scoubidou944
Messages postés714Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention19 janvier 2017 9 mars 2007 à 00:16
hum, je dirais que c'est un peu codé à la 'porcasse'.
Pour être un peu constructif quand même histoire de dire que la critique est facile, voici un bout de code qui affiche dans une listview toutes les unités logiques d'un disque ainsi que tous les attributs associés.
Le code est issu d'une appli' que je suis en train de faire, il faut juste remplacer m_listViewDrives par le nom de sa listview. (je le redis c en cours de dev ;p)
private void FillIHM()
{
ManagementScope mscope = new ManagementScope(string.Format(@"\\{0}\root\cimv2", Environment.MachineName));
ManagementObjectSearcher mos = new ManagementObjectSearcher(mscope, new ObjectQuery("SELECT * FROM Win32_LogicalDisk"));
// Loop on each logical drive
foreach (ManagementObject mo in mos.Get())
{
// Create item in listview for each logical drive
ListViewItem CurrentItem = m_listViewDrives.Items.Add("A");
// Loop on all properties (some of those may be unaccessible so check for each logical drive)
int PropertiesCount = mo.Properties.Count;
foreach (PropertyData pd in mo.Properties)
{
// Property available ?
if (mo[pd.Name] != null)
{
PropertyData CurrentObjet = mo.Properties[pd.Name];
if (CurrentObjet.Value != null)
{
// Create column for new property
ColumnHeader CurrentColumn = m_listViewDrives.Columns[pd.Name];
if (CurrentColumn == null)
{
CurrentColumn = m_listViewDrives.Columns.Add(pd.Name, -2, HorizontalAlignment.Left);
CurrentColumn.Name = pd.Name;
}
// Make a blank lin
int iCurrentColumnsCount = m_listViewDrives.Columns.Count;
for (int i = 1; i < iCurrentColumnsCount; i++)
{
CurrentItem.SubItems.Add(" ");
}
19 juin 2007 à 09:24
c'est intéressant , par contre
avez vous une idée sur comment on peut faire pour modifier un objet via WMI, sachant que Wql est un langage lecture seule.
merci
20 mars 2007 à 19:42
De plus, il manque pas mal d'info à mon goût (dans le cas qui me concerne).
Donc (et à moins d'avoir loupé quelque chose), je vais garder mon exemple (en corrigeant l'erreur) même s'il y a plus de code.
Le débat est ouvert
20 mars 2007 à 19:31
voici le lien Krosoft :
http://msdn2.microsoft.com/en-us/library/system.io.driveinfo.aspx
11 mars 2007 à 14:15
Merci pour l'oubli
et re merci pour le wrapper DriveInfo ;p
11 mars 2007 à 10:46
De plus tu oublis de libérer tes objets de management (.Dispose())
++ Bonne continuation
9 mars 2007 à 00:16
Pour être un peu constructif quand même histoire de dire que la critique est facile, voici un bout de code qui affiche dans une listview toutes les unités logiques d'un disque ainsi que tous les attributs associés.
Le code est issu d'une appli' que je suis en train de faire, il faut juste remplacer m_listViewDrives par le nom de sa listview. (je le redis c en cours de dev ;p)
private void FillIHM()
{
ManagementScope mscope = new ManagementScope(string.Format(@"\\{0}\root\cimv2", Environment.MachineName));
ManagementObjectSearcher mos = new ManagementObjectSearcher(mscope, new ObjectQuery("SELECT * FROM Win32_LogicalDisk"));
// Loop on each logical drive
foreach (ManagementObject mo in mos.Get())
{
// Create item in listview for each logical drive
ListViewItem CurrentItem = m_listViewDrives.Items.Add("A");
// Loop on all properties (some of those may be unaccessible so check for each logical drive)
int PropertiesCount = mo.Properties.Count;
foreach (PropertyData pd in mo.Properties)
{
// Property available ?
if (mo[pd.Name] != null)
{
PropertyData CurrentObjet = mo.Properties[pd.Name];
if (CurrentObjet.Value != null)
{
// Create column for new property
ColumnHeader CurrentColumn = m_listViewDrives.Columns[pd.Name];
if (CurrentColumn == null)
{
CurrentColumn = m_listViewDrives.Columns.Add(pd.Name, -2, HorizontalAlignment.Left);
CurrentColumn.Name = pd.Name;
}
// Make a blank lin
int iCurrentColumnsCount = m_listViewDrives.Columns.Count;
for (int i = 1; i < iCurrentColumnsCount; i++)
{
CurrentItem.SubItems.Add(" ");
}
// Replace text
CurrentItem.SubItems[CurrentColumn.Index].Text = mo.Properties[pd.Name].Value.ToString();
}
}
}
}
mos.Dispose();
}