jueves, marzo 30, 2006

Como obtener un MIME Type registrado

Método que devuelve el MIME Type a partir de los definidos en la Registry y el nombre del archivo:

private string GetMIMEType()
{
try
{
RegistryPermission regPerm = new RegistryPermission(RegistryPermissionAccess.Read, "\\HKEY_CLASSES_ROOT");
RegistryKey classesRoot = Registry.ClassesRoot;
System.IO.FileInfo fi = new System.IO.FileInfo(_fullName);
string dotExt= fi.Extension.ToLower();
RegistryKey typeKey = classesRoot.OpenSubKey("MIME\\Database\\Content Type");

foreach(string keyname in typeKey.GetSubKeyNames())
{
RegistryKey curKey = classesRoot.OpenSubKey("MIME\\Database\\Content Type\\" + keyname);
if (curKey.GetValue("Extension").ToString().ToLower()== dotExt)
return keyname;
}

return "text";
}
catch //(Exception ex)
{
return "";
}
}

Etiquetas:

miércoles, marzo 29, 2006

Seleccion de celdas utilizadas en Excel (cliente)

Se puede obtener, del lado del cliente, el rango de celdas utilizadas en una hoja Excel.
Se utiliza así:

var ObjExcel = null;
ObjExcel = new ActiveXObject("Excel.Application");
ObjExcel.Visible = false;
ObjExcel.WorkBooks.Open (fileName);
var objWB = ObjExcel.ActiveWorkBook;
var xlSheet = ObjExcel.ActiveSheet;
var cellRange = xlSheet.UsedRange;
var rows = cellRange.Rows.Count;
var cols = cellRange.Columns.Count;

en cellRange se tiene las celdas de origen y fin del cuadrado ocupado en la hoja.

Etiquetas:

miércoles, marzo 22, 2006

Crear Assemblies por codigo

Hay clases y métodos que permiten acceder a los compiladores de .NET
Namespaces:
System.CodeDom
Microsoft.CSharp

Clases:
ICodeGenerator
CSharpCodeProvider
ICodeCompiler
CodeTypeReference
CodeNamespace


Ver mas detalles en Mocosoft

Etiquetas:

martes, marzo 21, 2006

Problemas con CSS en Firefox

Algunas de las entradas que Firefox no maneja:

Si se utiliza "display:inline", Firefox no acepta los valores de width y height. Para solucionarlo, cambiar "display:inline" por "float:left"

Firefox no acepta los border definidos en bloque "border: 1px", se deben definir todos los bordes por separado
border-right-width : 1px;
border-left-width : 1px;
border-top-width : 1px;
border-bottom-width : 1px;

"cursor: hand;" tampoco está soportado

Etiquetas: