Notícias

24.9.09

"Disco" de Boot do Vista

Acho que nunca foi tão difícil fazer um "disco" de boot como no Windows Vista.

Primeiro você tem que baixar um ISO de 1.3 Gb e instalar um pacote chamado "Automated Installation Kit (AIK)":
https://www.microsoft.com/downloads/details.aspx?familyid=94BB6E34-D890-4932-81A5-5B50C657DE08&displaylang=en

Após seguir alguns passos meios cabulosos para marinheiros de primeira viagem (entenda-se todas as pessoas que não fizeram curso para serem técnicos no Windows Vista):
http://windowsitpro.com/article/articleid/97797/using-a-usb-flash-drive-to-recover-windows-vista.html

Que fará referencia a este post, que deve ser feito no meio do caminho dos passos anteriores (ou na verdade pode ser feito primeiro):
http://blogs.msdn.com/winre/archive/2006/12/12/creating-winre-using-waik.aspx

E aí finalmente após umas 4h de download e 1 a 2 horas apanhando, você terá um "disco" de boot.

20.5.09

Desligando o computador

Fiz um projeto no codexplex mais para testar como funcionava o esquema lá e coloquei um projetinho q fiz brincando outro dia.

O que o "software" faz é desligar o seu Windows depois de um tempo pré-programado.

Quem quiser me ajudar a melhorar o projeto, a descrição ou somente testar, fiquem a vontade.

Toda ajuda é bem vinda!

Para conferir acesse:
http://winshutdown.codeplex.com/

28.4.09

C# Receita #1

Estou usando o livro C# 3.0 Cookbook que ganhei durante o Pantanet Seminars I e ao procurar algumas receitas, vi que elas não constavam no livro, então resolvi publicar essas receitas nos mesmos moldes do livro. Claro que elas não serão tão didáticas e discutidas como no livro, mas o que vale é a intenção. Então o didatismo e a discussão dependerá dos comentários e dúvidas postados.

Como mesclar 2 vetores

Quando você tem um array e quer mesclar (unir) com outro array, não existe um método para isso como numa Lista, por exemplo, então é necessário fazer uma gambiarra. Nesta receita tenho 2 arrays a1 e a2, e quero uni-los no array a3:

string[] a1 = { "dog", "dock", "deer" };
string[] a2 = { "lion", "tiger" };

string[] a3 = new string[a1.Length + a2.Length];
a1.CopyTo(a3, 0);
a2.CopyTo(a3, a1.Length);

Simples e conciso.
Outro caso poderia ser se você quisesse unir a2 a a1, como no C# não há como redimensionar arrays dinamicamente como no VB.Net, ou você pode atribuir a3 a a1, ou então usar uma função auxiliar para redimensionar a1 e depois copiar os valores de a2 para a1, como abaixo:

int pos = a1.Length;
a1  = RedimArray(a1, a1.Length + a2.Length);
a2.CopyTo(a1, pos);

Abaixo uma função para expandir arrays:

/// <summary>
/// Realoca um vetor com um novo tamanho, e copia seu 
/// conteúdo para o novo vetor.
/// </summary>
/// <param name="oldArray">o vetor antigo, a ser realocado.</param>
/// <param name="newSize">o tamanho do novo vetor.</param>
/// <returns>Um novo vetor com o mesmo conteúdo.</returns>

public static System.Array RedimArray(System.Array vetor, int novoTamanho)
{
    int tamanhoAnt = vetor.Length;
    System.Type tipo = vetor.GetType().GetElementType();
    System.Array novoVetor = System.Array.CreateInstance(tipo, novoTamanho);
    int tamanho = System.Math.Min(tamanhoAnt, novoTamanho);
    if (tamanho > 0)
        System.Array.Copy(vetor, novoVetor, tamanho);
    return novoVetor;
}

Porém caso fosse necessário fazer muitos redimensionamentos é recomendado usar uma Lista ou alguma outra coleção, especialmente se os vetores forem grandes ou com objetos de grande tamanho.

 

Technorati Tags: ,,,