33 mensajes Página 1 de 2
ImagenImagen

Buenas amigos de AMSSpecialist, a petición de un usuario del foro he echo esta DLL para poder modificar las etiquetas de las unidades, he puesto 2 funciones una que devuelva la etiqueta de una unidad y otra que permite modificar dicha etiqueta, espero que os guste y os sea de gran utilidad.

Funciones:

  • GetDriveLabel - Retorno String "devuelve un string con el nombre de la etiqueta, si esta funcion falla devuelve "ERROR"."
  • SetDriveLabel - Retorno Number "devuelve un numero si el resultado es 1 significa que la operacion de etiquetado se a realizado con exito si devuelve 0 es que existe algun fallo."
  • GetDriveInfo - Retorno String "devuelve un string con toda la informacion de esa unidad separado por comas en el ejemplo se ve que valores son los que devuelve."

Código 1.0.0.0:
UnmanagedExports.cs:
using System;
using System.IO;
using RGiesecke.DllExport;

namespace Drive
{
    internal static class DriveClass
    {

        /// <summary>
        /// Esta función es para leer el nombre de una unidad, simplemente tienes que hacer la llamada a esta
        /// función y decir la unidad a la que deseas.
        /// </summary>
        /// <param name="DriveLetter">La letra de la unidad que deseas.
        ///                           Ejemplo: "D:\\"</param>
        /// <returns>Devuelve un string con la etiqueta de la unidad si ocurre un error devuelve "ERROR".</returns>
        [DllExport("GetDriveLabel", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
        static string GetDriveLabel(string DriveLetter)
        {
            string returnval = "ERROR";

            if (DriveLetter != "")
            {

                DriveInfo[] allDrives = DriveInfo.GetDrives();
                foreach (DriveInfo d in allDrives)
                {
                    if (d.Name == DriveLetter)
                    {
                        returnval = d.VolumeLabel;
                    }
                }
            }
            return returnval;
        }

        /// <summary>
        /// Esta función es para cambiar el nombre de una unidad, simplemente tienes que hacer la llamada a esta
        /// función y decir la unidad a la que deseas cambiarle es nombre y el nuevo nombre que deseas fijarle.
        /// </summary>
        /// <param name="DriveLetter">La letra de la unidad que deseas.
        ///                           Ejemplo: "D:\\"</param>
        /// <param name="NewLabel">La nueva etiqueta que se fijara en la unidad que as seleccionado.
        ///                        Ejemplo: "LaNuevaEtiqueta"</param>
        /// <returns>Devuelve un numero.
        ///          0: Si existe algun error.
        ///          1: Si se a realizado con exito.</returns>
        [DllExport("SetDriveLabel", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
        static int SetDriveLabel(string DriveLetter, string NewLabel)
        {
            int returnval = 0;

            if (DriveLetter != "" && NewLabel != "")
            {
                DriveInfo[] allDrives = DriveInfo.GetDrives();
                foreach (DriveInfo d in allDrives)
                {
                    if (d.Name == DriveLetter)
                    {
                        if (d.IsReady == true)
                        {
                            d.VolumeLabel = NewLabel;
                            returnval = 1;
                        }
                    }
                }
            }
            return returnval;
        }

        [DllExport("GetDriveInfo", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
        static string GetDriveInfo(string DriveLetter)
        {
            string Info = "";
            if (DriveLetter != "")
            {
                DriveInfo[] allDrives = DriveInfo.GetDrives();
                foreach (DriveInfo d in allDrives)
                {
                    if (d.Name == DriveLetter)
                    {
                        Info = d.Name;
                        Info = Info + "," + d.VolumeLabel;
                        Info = Info + "," + d.DriveType;
                        Info = Info + "," + d.DriveFormat;
                        Info = Info + "," + d.TotalSize;
                        Info = Info + "," + d.TotalFreeSpace;    
                    }
                }
            }
            return Info;
        }
    }
}
Parsed in 0.010 seconds, using GeSHi 1.0.8.9


Descarga:
Contenido Oculto: ON
	<br />Usted necesita responder en este tema para ver el contenido oculto.

great , thanks

Uy Ceone....umffffffffffff eres el mejor...

Esto es para mi proyecto de Usb tool apenas lo adapte subo el apz para todos ustedes...

Colombia esta en agradecimiento...Venite para ca Ome...el vallento tambien es bueno
Sattel desde Amalfi Antioquia Colombia
Medellin Colombia
La ciudad mas innovadora del mundo!!!!!!!!

ON Set Drive Label :

Imagen

My Windows is :

Imagen
Imagen

I am getting the same problem as abood
Imagen

thanks

abood1987 escribió: Error..

mecivic escribió: I am getting the same problem as abood


the example change label of Drive "D:\\" are u drive D? and is labeable?

Imagen
Imagen
mola a ver como esta esto hecho

abood1987 escribió: Imagen


abood1987 I do not need put any image for all! use keyboard :)

problem is in set arabic chars... im not sure but start testing... thanks for report... :friends: :friends: :friends:

mecivic escribió: I am getting the same problem as abood


The drive D:\\ exist in ur computer? can u tell me the name of this drive?

gracias mano

muy util!!

thanks

Thanks
how about reading the pendrive or removable

No recuerdo si esto estaba en el ams specialist pack me lo descargo de nuevo porque no lo encuentro
Buen trabajo. A probarla.....y grasias.

grasias

:friends:

Observando
33 mensajes Página 1 de 2

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados