out 22

Para obter informações de um arquivo tais como data e hora de criação, modificação, acesso entre outros, utilizamos a classe FileInfo. Esta classe, presente no namespace System.IO possui as propriedades CreationTime, LastWriteTime e LastAccessTime que retorna a informação de data e hora que o arquivo foi criado, modificado e aberto. Veja um exemplo de como utilizar a classe

FileInfo file_info = new FileInfo("C:\\meu_arquivo.txt");

string Criado = file_info.CreationTime.ToString("dd/MM/yyyy HH:mm:ss");
string Modificado = file_info.LastWriteTime.ToString("dd/MM/yyyy HH:mm:ss");
string Acessado = file_info.LastAccessTime.ToString("dd/MM/yyyy HH:mm:ss");

Se preferir pode fazer o download do projeto abaixo com um exemplo que mostra estas e outras propriedades da classe FileInfo.
Exemplo de uso da classe FileInfo (107)


View this Post in: English French Italian Spanish

out 20

Avatares são pequenas imagens que identificam uma pessoa em um blog ou forum de discussão. Quem atualizou o Wordpress para a versão 2.5 deve ter reparado nas opções de configuração de avatares no menu “Configurações - Discussão“. Lá existe a opção de “Mostrar avatares“, no entanto é preciso também adicionar uma linha no arquivo de seu template para poder exibi-los.

Para mostrar por exemplo os avatares das pessoas que comentam no se blog, abra o arquivo comments.php e adicione a linha

echo get_avatar( get_comment_author_email(), $size = '36' );

Obs.: Este código deve estar dentro do bloco de código:

foreach ($comments as $comment)

Os avatares serão exibidos baseado no e-mail da pessoa que comentou (get_comment_author_email()). Se ela possuir um registro no site do Gravatar será exibido o seu avatar, caso contrário será exibido a imagem padrão que pode ser uma imagem aleatória, basta configurar no menu do wordpress.

Veja mais sobre avatar no Wordpress em http://weblogtoolscollection.com/archives/2008/03/03/gravatars-and-wordpress-25/ ou
http://codex.wordpress.org/Using_Gravatars


View this Post in: English French Italian Spanish

out 19

Já mostrei aqui como obter o dia da semana por extenso no charp. Para poder escrever a data completa no formato “[dia da semana], [dia] de [mês] de [ano]” basta obter separadamente cada uma das partes como no exemplo a seguir.

        CultureInfo culture = new CultureInfo("pt-BR");
        DateTimeFormatInfo dtfi = culture.DateTimeFormat;

        int dia = DateTime.Now.Day;
        int ano = DateTime.Now.Year;
        string mes = culture.TextInfo.ToTitleCase(dtfi.GetMonthName(DateTime.Now.Month));
        string diasemana = culture.TextInfo.ToTitleCase(dtfi.GetDayName(DateTime.Now.DayOfWeek));
        string data = diasemana + ", " + dia + " de " + mes + " de " + ano;

        Response.Write(data);

O método ToTitleCase da classe TextInfo serve para converter a primeira letra da palavra para maiúsculo e os métodos GetMonthName e GetDayName da classe DateTimeFormatInfo servem para pegar o nome do mês e do dia da semana respectivamente.

No final a variável data conterá o dia por extenso. Por exemplo:

Domingo, 19 de Outubro de 2008

Para os dias menores que 10, se você preferir escreve-los com o zero antes basta aplicar o método ToString a variável dia.

string data = diasemana + ", " + dia.ToString("00") + " de " + mes + " de " + ano;

View this Post in: English French Italian Spanish

out 17

Para poder acessar as configurações do roteador “D Link DI 524″, basta entrar com o IP 192.168.0.1 em um navegador web. Por padrão o login de acesso é admin (todo minúsculo) e a senha você deixa em branco. Há modelos em que o usuário padrão é USER (todo maiúsculo) e a senha também você deixa em branco. Em alguns casos não revolve você pressionar a tecla enter, tem que clicar no botão mesmo. Se com estes usuários você não conseguir acessar tente resetar o roteador. Para resetar basta pressionar com um objeto pontiagudo o buraquinho bem pequeno que tem abaixo dele. Tenha cuidado ao resetar pois todas as configurações feitas serão perdidas e restauradas para o padrão de fábrica incluindo o usuário e a senha de acesso.

Agradecimento ao usuário thaynan pela dica do usuário “USER”


View this Post in: English French Italian Spanish

out 16

Esta é apenas uma curiosidade. Hoje quando fui entrar no Orkut vi a seguinte mensagem logo abaixo das dicas de segurança:

“Uau, você está usando o Google Chrome! Cuide dele direitinho”

he he… Uma forma de incentivar o uso do Chrome???


View this Post in: English French Italian Spanish

out 15

Depois de alguns dias pesquisando, encontrei algumas soluções viáveis para enviar um arquivo diretamente para a impressora (sem abrir janelas de diálogo), cada uma com suas limitações.


Solução 1: Fazer uma cópia do arquivo para o local da impressora

 

No prompt do DOS basta utilizar o comando:

copy nome_arquivo nome_impressora

O equivalente em C# é:

System.IO.File.Copy(nome_arquivo , nome_impressora);

Onde nome_arquivo é o nome físico completo do arquivo e nome_impressora é o nome do compartilhamento da impressora composto pelo IP ou nome da máquina mais o nome do compartilhamento.

Limitação: Imprime somente arquivos texto e a impressora deverá estar compartilhada.


Solução 2: Utilizar o comando print do windows.

Esta foi a melhor solução que encontrei. A idéia é utilizar o comando “print” do shell do Windows. Ao executar o comando, o Windows irá abrir o programa padrão estabelecido pelo tipo do arquivo e imprimir automaticamente, fechando o programa após a impressão.

Em Delphi utiliza-se o comando ShellExecute para executar um comando shell.

ShellExecute(Handle, 'print',PChar('arquivo'), nil,nil,SW_SHOW);

No Framework .Net não existe esta função, no entanto ela está implementada na dll shell32.dll do Windows. Para utiliza-la em C#, VB6 ou VB .Net devemos criar uma referência para a mesma.

[DllImport("shell32.dll", EntryPoint = "ShellExecute")]
public static extern int ShellExecuteA(int hwnd, string lpOperation,
     string lpFile, string lpParameters, string lpDirectory, int nShowCmd);

Para utilizar a directiva DllImport é preciso referênciar o namespace System.Runtime.InteropServices.
Veja o exemplo a seguir utilizado em um projeto do tipo Windows Application.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace ImprimeArquivo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                Form1.ShellExecuteA(this.Handle.ToInt32(), "print", ofd.FileName, null, null, 0);
            }
        }

        [DllImport("shell32.dll", EntryPoint = "ShellExecute")]
        public static extern int ShellExecuteA(int hwnd, string lpOperation,
              string lpFile, string lpParameters, string lpDirectory, int nShowCmd);
    }
}

Solução 3: http://support.microsoft.com/kb/322091/pt-br


View this Post in: English French Italian Spanish

out 06

Para saber a versão de uma dll criada a partir de um projeto do tipo Class Library basta utilizar o código:

typeof(NomedaSuaClasse).Assembly.GetName().Version;

Ou, se você chamar a instrução de dentro da classe, poderá fazer:

this.GetType().Assembly.GetName().Version;

Esses métodos retornam um objeto do tipo Version, que pode ser utilizado para pegar separadamente cada tipo de versão. Por exemplo, a versão de compilação, a maior verão, a menor versão, etc…

O código abaixo exemplifica o uso destes métodos em uma classe que pode ser chamada por exemplo em uma aplicação Web ou WinForm.

public class Info
{
    public static Version GetVersion()
    {
        return typeof(Info).Assembly.GetName().Version;
    }

    public static string GetVersionString()
    {
        Version version = Info.GetVersion();
        string versionstring = version.Major + "." + version.Minor +
            "." + version.Build + "." + version.Revision;
        return versionstring;
    }
}

Para chamar este método em sua aplicação faça por exemplo:

label.Text = "Versão:" + Info.GetVersionString();

Se estiver trabalhando com WinForms, você poderá usar o código abaixo para saber a versão do exe de sua aplicação:

Assembly.GetEntryAssembly().GetName().Version

Da mesma maneira que no exemplo anterior com a dll, poderá ser criado uma classe somente para retornar esta informação.

Obs.: Para alterar a versão da dll basta ir nas propriedades do projeto e na guia Application clique no botão “Assembly Information” como na figura abaixo.


View this Post in: English French Italian Spanish

out 05

Para pegar o valor de uma string de conexão do Web.Config basta utilizar a classe ConfigurationManager. Veja um exemplo:

string cs = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString;

Onde strConn é o nome dado a sua string de conexão no Web.Config. Veja um exemplo do Web.Config:

<?xml version="1.0"?>
<configuration>
    <connectionStrings>
       <add name="strConn"
	connectionString="Data Source=192.168.0.1;Initial Catalog=Banco;
User ID=Usuario;Password=Senha;"
	providerName="System.Data.SqlClient"/>
    </connectionStrings>   
</configuration>

Se você se deparar com o erro “The name ‘ConfigurationManager’ does not exist in the current context” é porque provavelmente você está tentando pegar o valor desta string em um projeto do tipo Class Library. Para solucionar este problema basta referenciar no seu projeto a dll System.configuration.


View this Post in: English French Italian Spanish

out 01

Relação de acessos por navegador

Navegador Visitas
1. Internet Explorer 54,90%
2. Firefox 35,71%
3. Chrome Chrome 6,58%
4. Opera 1,30%
5. Mozilla 0,89%
6. Safari 0,34%
7. Konqueror 0,14%
8. SeaMonkey 0,14%

Estatísticas de Navegador - Setembro de 2008

Estatísticas de Navegador - Setembro de 2008



 

Legenda
Número de Visitas
Número de Páginas Visualizadas
Total de Hits
Bytes Consumidos

Relação de acessos por dia do mês

Dias do Mês


Relação de acessos por dia da semana

 

Dias da Semana

Dias da Semana


Relação de acessos por média de horas do dia

Horas

Horas


View this Post in: English French Italian Spanish