Ir a la ruta C:\Users\[Usuario]\AppData\Local\Microsoft\Outlook
abrir con notepad el archivo spscoll.dat
Todos los dias se aprende algo nuevo. Por qué no compartir esos pequeños triunfos con aquellos que estan enfrentando inconvenientes por primera vez? El conocimiento se construye día a día con base en pequeñas cosas que lo van haciendo más sólido. El contenido de este blog refleja casos exitosos "específicos" con los que el autor se ha encontrado. Esto no quiere decir que no funcione en todos los escenarios, pero por lo menos en uno si.
viernes, 29 de julio de 2016
jueves, 30 de junio de 2016
Habilitar / deshabilitar caracteristicas de servidor por comandos en Windows Server 2012 r2
La característica que permite realizar esta labor se llama DISM (Deployment Image Servicing and Management).
En primer lugar es importante establecer que características están disponibles.
Dism /online /Get-Features >lista.txt
El comando anterior obtiene el listado y lo envía a un archivo de texto para comodidad del usuario.
Estos son algunos comandos presentes en el archivo:
Nombre de caracter¡stica : IIS-WebServer
Estado : Habilitado
Nombre de caracter¡stica : IIS-CommonHttpFeatures
Estado : Habilitado
Nombre de caracter¡stica : IIS-Security
Estado : Habilitado
Nombre de caracter¡stica : IIS-RequestFiltering
Estado : Habilitado
Nombre de caracter¡stica : IIS-StaticContent
Estado : Habilitado
Nombre de caracter¡stica : IIS-DefaultDocument
Estado : Habilitado
Nombre de caracter¡stica : IIS-DirectoryBrowsing
Estado : Habilitado
Si se quiere habilitar una característica se debe usar la siguiente sintaxis:
dism /online /enable-feature /featurename:IIS-ASPNET45
y Para deshabilitar
dism /online /disable-feature /featurename:IIS-ASPNET45
La salida es algo similar a lo siguiente:
C:\Windows\Microsoft.NET\Framework\v4.0.30319>dism /online /enable-feature /feat
urename:IIS-ApplicationDevelopment
Herramienta Administración y mantenimiento de imágenes de implementación
Versión: 6.3.9600.17031
Versión de imagen: 6.3.9600.17031
Habilitando características
[===========================99.8%========================= ]
La operación se completó correctamente.
Reinicie Windows para completar esta operación.
¿Desea reiniciar el equipo ahora? (Y/N) N
Dado que varias de estas características requieren reinicio, es importante tener en cuenta las consecuencias de estos comandos que debería ejecutar solamente el administrador del servidor
En primer lugar es importante establecer que características están disponibles.
Dism /online /Get-Features >lista.txt
El comando anterior obtiene el listado y lo envía a un archivo de texto para comodidad del usuario.
Estos son algunos comandos presentes en el archivo:
Nombre de caracter¡stica : IIS-WebServer
Estado : Habilitado
Nombre de caracter¡stica : IIS-CommonHttpFeatures
Estado : Habilitado
Nombre de caracter¡stica : IIS-Security
Estado : Habilitado
Nombre de caracter¡stica : IIS-RequestFiltering
Estado : Habilitado
Nombre de caracter¡stica : IIS-StaticContent
Estado : Habilitado
Nombre de caracter¡stica : IIS-DefaultDocument
Estado : Habilitado
Nombre de caracter¡stica : IIS-DirectoryBrowsing
Estado : Habilitado
Si se quiere habilitar una característica se debe usar la siguiente sintaxis:
dism /online /enable-feature /featurename:IIS-ASPNET45
y Para deshabilitar
dism /online /disable-feature /featurename:IIS-ASPNET45
La salida es algo similar a lo siguiente:
C:\Windows\Microsoft.NET\Framework\v4.0.30319>dism /online /enable-feature /feat
urename:IIS-ApplicationDevelopment
Herramienta Administración y mantenimiento de imágenes de implementación
Versión: 6.3.9600.17031
Versión de imagen: 6.3.9600.17031
Habilitando características
[===========================99.8%========================= ]
La operación se completó correctamente.
Reinicie Windows para completar esta operación.
¿Desea reiniciar el equipo ahora? (Y/N) N
Dado que varias de estas características requieren reinicio, es importante tener en cuenta las consecuencias de estos comandos que debería ejecutar solamente el administrador del servidor
jueves, 23 de junio de 2016
actualizar procedimiento almacenado en Entity framework
Recientemente me ocurrió que en VS2013 con EF5 por mas que insisti en multiples ocasiones actualizar un procedimiento almacenado al cual le agregué nuevas columnas, no parecía actualizarse el complextype.
La solución:
entrar al explorador de modelos del edmx.
1. entrar a complextypes(tipos complejos): borrar la referencia al procedimiento.
2. entrar a importaciones de funciones: borrar la referencia al procedimiento.
3. entrar a funciones / procedimientos almacenados: borrar la referencia al procedimiento.
Y actualizar el modelo agregando nuevamente el procemiento almacenado.
Si no se borra en los 3 pasos mencionados, es posible que se cree un nuevo complextype o mas con el mismo nombre pero con "_1" , "_2", "_n"
La solución:
entrar al explorador de modelos del edmx.
1. entrar a complextypes(tipos complejos): borrar la referencia al procedimiento.
2. entrar a importaciones de funciones: borrar la referencia al procedimiento.
3. entrar a funciones / procedimientos almacenados: borrar la referencia al procedimiento.
Y actualizar el modelo agregando nuevamente el procemiento almacenado.
Si no se borra en los 3 pasos mencionados, es posible que se cree un nuevo complextype o mas con el mismo nombre pero con "_1" , "_2", "_n"
miércoles, 22 de junio de 2016
crear múltiples instancias del mismo servicio windows.
Es posible tener muchas instancias del mismo servicio en Windows. En primer lugar hay que tener en cuenta que si hay recursos que puedan crear conflictos, como por ejemplo servicios wcf hosteados desde el servicio, estos deben tener puertos diferentes por cada instancia.
Se pueden tener varias instancias en varias carpetas (no el mismo ejecutable, sino cada uno por cada carpeta).
Para instalar cada instancia se debe ejecutar una interfaz de comandos en modo administrador:
La sintaxis es la siguiente:
sc create "nombreServicio" binPath="ruta Ejecutable" DisplayName="nombreAMostrar" start=auto
Una vez ejecutada la sentencia se puede revisar el control de servicios para buscar los servicios instalados por el nombreServicio dado
Se pueden tener varias instancias en varias carpetas (no el mismo ejecutable, sino cada uno por cada carpeta).
Para instalar cada instancia se debe ejecutar una interfaz de comandos en modo administrador:
La sintaxis es la siguiente:
sc create "nombreServicio" binPath="ruta Ejecutable" DisplayName="nombreAMostrar" start=auto
Una vez ejecutada la sentencia se puede revisar el control de servicios para buscar los servicios instalados por el nombreServicio dado
lunes, 14 de marzo de 2016
convertir cadena a Capital (primera letra en mayuscula)
hay que usar System.Globalization:
string miCadena = "esta es una cadena" ;
Console.WriteLine(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(miCadena)) ;
Output:
Esta Es Una Cadena
string miCadena = "esta es una cadena" ;
Console.WriteLine(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(miCadena)) ;
Output:
Esta Es Una Cadena
miércoles, 9 de marzo de 2016
Adicionar minutos a fecha en C#
Se pueden agregar o adicionar minutos usando TimeSpan
string DelayVideo = "2"; // minutos a adicionar o restar
DateTime myTime = DateTime.Now;
myTime = inicio.Add(new TimeSpan(0, -int.Parse(DelayVideo), 0));
en este caso una de las sobrecargas de TimeSpan espera hora,minutos y segundos. Le colocamos signo negativo para que reste la cantidad de minutos definida en la variable DelayVideo.
string DelayVideo = "2"; // minutos a adicionar o restar
DateTime myTime = DateTime.Now;
myTime = inicio.Add(new TimeSpan(0, -int.Parse(DelayVideo), 0));
en este caso una de las sobrecargas de TimeSpan espera hora,minutos y segundos. Le colocamos signo negativo para que reste la cantidad de minutos definida en la variable DelayVideo.
jueves, 11 de febrero de 2016
Como obtener los metodos de una dll no administrada para hacer un wrapper en C#
Comprobado en VS2013
gracias a http://www.codeproject.com/Questions/526971/Reflectionplusforplusunmanagedpluscode
1. Se debe abrir una interfaz de comandos de VS2013. Ir a inicio / todos los programas / Vs2013 / visual studio tolos
public static extern Int32 mimetodoenC#(losparametros);
gracias a http://www.codeproject.com/Questions/526971/Reflectionplusforplusunmanagedpluscode
1. Se debe abrir una interfaz de comandos de VS2013. Ir a inicio / todos los programas / Vs2013 / visual studio tolos
Con Click derecho abrir una de las ventanas de comandos que aparecen.
2. ubicar la ruta donde se encuentra dll por comandos.
3. ejecutar el comando:
link /dump /exports mi.dll > "miarchivo.txt".
4. Al revisar el archivo aparecen los métodos presentes en la dll no administrada.
Luego para hacer el wrapper:
crear una clase dentro del proyecto.
y empezar a crear cada método en c# correspondiente a los métodos hallados en la librería:
[DllImport(" mi.dll ", EntryPoint = "miMetodoenmidll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
y Listo...
básicamente el wrapper crea un alias para el método en la dll no administrada (probablemente creada en C++ originalmente o en otro lenguaje)
martes, 1 de diciembre de 2015
Como encontrar qué proceso esta usando un puerto en windows
La herramienta mas fácil puede ser el monitor de recursos de Windows:
Tecla de Windows + R ( escribir resmon) y ejecutar
Tecla de Windows + R ( escribir resmon) y ejecutar
En la pestaña de red, aparecen todos los procesos en uso. En la ventana de abajo aparece una columna con los puertos. Al hacer click en el nombre de la columna, se puede reordenar por puerto. Si se quiere mas información de procesos, se puede buscar por el numero usando el task manager de Windows (click derecho sobre la barra de herramientas de Windows).
lunes, 30 de noviembre de 2015
agregar proxy corporativo en refencia a webservice
A veces el desarrollador se encuentra dentro del ambiente de una empresa y necesita referenciar un webservice externo. En este escenario, a menudo se presenta error de autenticación por el proxy corporativo. En framework 4.0 se deben agregar unas líneas dentro de los nodos configuration del App.config:
<defaultProxy enabled="true" useDefaultCredentials="false">
<proxy proxyaddress="ip:port"/>
</defaultProxy>
<defaultProxy enabled="true" useDefaultCredentials="false">
<proxy proxyaddress="ip:port"/>
</defaultProxy>
miércoles, 25 de noviembre de 2015
instalacion de servicios en windows c#
preliminares:
* se debe usar la herramienta installutil.exe presente en las carpetas de framework de Windows.
* el servicio que se va a instalar debe corresponder en framework con el del installutil (compatibilidad de framework)
* si se va a instalar con un usuario especifico y pertenece a un dominio, este debe colocarse en las credenciales: dominio\usuario
ej por interfaz de comandos (tecla de Windows + R: digitar cmd):
%WinDir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe "ruta\servicio.exe"
al ejecutar esta instrucción es posible que aparezca un dialogo que pida las credenciales (usuario y contraseña)
Para desinstalar
%WinDir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u"ruta\servicio.exe"
* se debe usar la herramienta installutil.exe presente en las carpetas de framework de Windows.
* el servicio que se va a instalar debe corresponder en framework con el del installutil (compatibilidad de framework)
* si se va a instalar con un usuario especifico y pertenece a un dominio, este debe colocarse en las credenciales: dominio\usuario
ej por interfaz de comandos (tecla de Windows + R: digitar cmd):
%WinDir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe "ruta\servicio.exe"
al ejecutar esta instrucción es posible que aparezca un dialogo que pida las credenciales (usuario y contraseña)
Para desinstalar
%WinDir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u"ruta\servicio.exe"
jueves, 12 de noviembre de 2015
ejecutar programas de linea de comandos desde aplicacion C#
string sourceName = "archivoorigen.cosa";
string destName = "archivodest.cosa";
string path="larutadelarchivo";
string comando = string.Format("-i {0} -vcodec copy -acodec copy {1}", sourceName, destName);
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "ffmpeg.exe";
startInfo.WorkingDirectory = path;
startInfo.CreateNoWindow = true;
startInfo.Arguments = comando;
process.StartInfo = startInfo;
process.Start();
en este ejemplo se muestra el uso del programa ffmpeg que funciona por línea de comandos como se convierte un archivo mkv en h264.
primero se definen las variables de origen y destino, luego se crea el comando que va a enlazarse con la propiedad argumentos del objeto instanciado a partir de la clase processstartinfo y junto con las otras propiedades se hace la ejecución.
Es posible que haya que adicionar instrucciones como (en caso de que aparezcan instancias no deseadas del programa en administrador de tareas):
process.WaitForExit();
process.Close();
string destName = "archivodest.cosa";
string path="larutadelarchivo";
string comando = string.Format("-i {0} -vcodec copy -acodec copy {1}", sourceName, destName);
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "ffmpeg.exe";
startInfo.WorkingDirectory = path;
startInfo.CreateNoWindow = true;
startInfo.Arguments = comando;
process.StartInfo = startInfo;
process.Start();
en este ejemplo se muestra el uso del programa ffmpeg que funciona por línea de comandos como se convierte un archivo mkv en h264.
primero se definen las variables de origen y destino, luego se crea el comando que va a enlazarse con la propiedad argumentos del objeto instanciado a partir de la clase processstartinfo y junto con las otras propiedades se hace la ejecución.
Es posible que haya que adicionar instrucciones como (en caso de que aparezcan instancias no deseadas del programa en administrador de tareas):
process.WaitForExit();
process.Close();
miércoles, 9 de septiembre de 2015
instalacion de paquetes linux con prerequisitos faltantes
sudo apt-get install [paquete] --fix-missing
Obviamente cuando no falta nada va sin --fix-missing
Obviamente cuando no falta nada va sin --fix-missing
Matar un proceso por nombre
pkill string
ej: pkill fir*
Mata todos los procesos que empiecen con fir (firestarter por ejemplo)
martes, 11 de agosto de 2015
Editor Visual XML Free
Este es un muy buen editor bastante practico de Microsoft para archivos XML.
http://www.microsoft.com/en-us/download/confirmation.aspx?id=7973
Permite crear casi todo tipo de elementos de XML usando los menus contextuales del mouse.
http://www.microsoft.com/en-us/download/confirmation.aspx?id=7973
Permite crear casi todo tipo de elementos de XML usando los menus contextuales del mouse.
lunes, 6 de julio de 2015
viernes, 12 de junio de 2015
cambiar ip de tarjeta de red por comandos
Para cambiar la ip de una interfaz de red en Windows:
Asumiendo que la interfaz se llama "Conexión de área local"
Abrir una interfaz de comandos (preferiblemente en modo administrador)
Para estar seguros de las interfaces del equipo se puede ejecutar el comando:
Netsh interface ip show config
Con esto se obtienen los nombres de interfaces y este dato se puede seleccionar directamente desde la línea de comandos haciendo click derecho con la opción marcar. Se copia dando enter y se pega haciendo click derecho en el mouse.
netsh interface ip set address "Conexión de área local" static 192.168.0.10 255.255.255.0 192.168.0.1 1
Asumiendo que la interfaz se llama "Conexión de área local"
Abrir una interfaz de comandos (preferiblemente en modo administrador)
Para estar seguros de las interfaces del equipo se puede ejecutar el comando:
Netsh interface ip show config
Con esto se obtienen los nombres de interfaces y este dato se puede seleccionar directamente desde la línea de comandos haciendo click derecho con la opción marcar. Se copia dando enter y se pega haciendo click derecho en el mouse.
netsh interface ip set address "Conexión de área local" static 192.168.0.10 255.255.255.0 192.168.0.1 1
Si se quiere volver a dinámica solo hay que cambiar por dhcp
netsh interface ip set address "Conexión de área local" dhcp
martes, 14 de abril de 2015
Insertar valores explícitos en tablas con columna identidad
SET IDENTITY_INSERT tablename ON
insert into TableName(columns)
select( columns) from anotherTable
o
insert into TableName(columns)
values (explicitvalues)
SET IDENTITY_INSERT tablename OFF
Es importante referenciar las columnas tanto en el insert como en el select, porque de lo contrario pueden aparecer errores, como por ejemplo que no esta habilitada la inserción explicita
insert into TableName(columns)
select( columns) from anotherTable
o
insert into TableName(columns)
values (explicitvalues)
SET IDENTITY_INSERT tablename OFF
Es importante referenciar las columnas tanto en el insert como en el select, porque de lo contrario pueden aparecer errores, como por ejemplo que no esta habilitada la inserción explicita
viernes, 10 de abril de 2015
miércoles, 1 de abril de 2015
herramienta de acercamiento de pantalla en windows
Gracias a Jeremy Foster de MVA (Microsoft virtual academy) aquí esta la referencia de la herramienta Zoomit que permite hacer zoom en vivo con la opción de señalar objetos en pantalla:
https://technet.microsoft.com/en-us/sysinternals/bb897434.aspx
con control + 4 hace acercamientos
control + 4 otra vez, aleja:
control 1 permite hacer dibujo libre:
teniendo oprimido control, permite hacer cuadros:
Para ir a opciones del programa, ir a la barra de herramientas a la derecha:
Y luego de hacer click derecho sobre el icono de zoomit, seleccionar opciones:
https://technet.microsoft.com/en-us/sysinternals/bb897434.aspx
con control + 4 hace acercamientos
control + 4 otra vez, aleja:

teniendo oprimido control, permite hacer cuadros:
Para ir a opciones del programa, ir a la barra de herramientas a la derecha:
Y luego de hacer click derecho sobre el icono de zoomit, seleccionar opciones:
miércoles, 25 de marzo de 2015
capturar nulos en columnas de sqldatareader
se debe usar el método IsDBNull del reader:
reader.IsDBNull(5) ? 0 : reader.GetInt64(5),
//aquí adicionalmente se usa el operador ternario: condición ? valor verdadero: valor falso
//reader.IsDbNull(int posición o string nombre de columna)
Suscribirse a:
Entradas (Atom)
Agregar Fondos personalizados a llamadas de teams
1. Abrir una ventana de explorador 2. En la barra de direccion digitar %appdata% y pulsar enter 3. Abrir la carpeta microsoft...
-
SELECT name, create_date, modify_date FROM sys.objects WHERE type = 'U' ORDER BY create_date desc GO el tipo puede ser uno...
-
Si la base de datos se quedó en Restoring: abrir una ventana de consulta y ejecutar: RESTORE DATABASE basededatos WITH RECOVERY Con ...
-
1. Abrir una ventana de explorador 2. En la barra de direccion digitar %appdata% y pulsar enter 3. Abrir la carpeta microsoft...




