André L. S. Desenvolvimento de Softwares, Tecnologia e Games

21abr/105

Habilitando a barra do Windows Media Player na barra de tarefas do Windows 7

Infelizmente o Windows Media Player 12, que é instalado junto com o Windows 7, não tem suporte para minimizá-lo como barra de ferramentas da barra de tarefas. Para habilitar a barra, apenas copie um aquivo do Windows Media Player que vem com o Windows Vista. Agora mostrarei como fazer:

1. Você precisará da dll wmpband.dll, que vem com o Windows Vista. Se não tiver, faça o download aqui (contém a dll para 32 e 64 bits);

2. Copie o arquivo (32 ou 64 bits, dependendo do seu Windows) para o diretório onde está instalado o Windows Media Player, no meu caso "C:\Program Files\Windows Media Player";

3. Agora verifique se o serviço "Serviço de Compartilhamento de rede do Windows Media Player" ("Windows Media Player Network Sharing Service" para Windows em inglês) está parado. Para isso clique no menu Iniciar e, na caixa de busca, digite "Serviços" (ou "Services" para Windows em Inglês) e clique no respectivo item da lista. Agora localize o serviço e pare-o, caso esteja rodando.

4. Abra o prompt de comando em modo administrador. Iniciar > Todos os Programas > Acessórios > clique com o botão direito em "Prompt de Comando" e clique em "Executar como Administrador".

5. Digite o comando regsvr32 "C:\Program Files\Windows Media Player\wmpband.dll", substituia o caminho para o local onde o arquivo foi copiado. Espere alguns segundos até aparecer a mensagem:

6. Abra o Windows Media Player e então o minimize-o. Depois clique com o botão direito na barra de tarefas > Barra de Ferramentas > Windows Media Player.

7. E voilá!

Esta característica a Microsoft devia ter mantido nativamente, muita gente que conheço usa este recurso. Só lamentos uncle Bill!

23mar/102

Configurando acesso à internet via proxy em aplicações Java

Hoje tive um problema no meu trabalho onde um client, que roda via prompt de comando (Prompt do DOS), não conseguia acessar o servidor hospedado na internet, isso porque a empresa onde trabalho utiliza proxy.

Depois de algumas tentativas acabei achando duas soluções para resolver o problema de acesso: a primeira foi passar como parâmetros Java as configurações do proxy.

$ java -Dhttp.proxyHost=serv -Dhttp.proxyPort=porta -Dhttp.proxyUser=usu -Dhttp.proxyPassword=senha ClasseJava

-Dhttp.proxyHost = IP ou nome do servidor proxy
-Dhttp.proxyPort = Porta do proxy
-Dhttp.proxyUser = Usuário
-Dhttp.proxyPassword = Senha

Desta forma a classe ClasseJava terá acesso à internet através do proxy.

A outra forma foi inserir as configurações na própria classe:

public static void main(String[] args){
...
System.getProperties().put("proxySet", "true");
System.getProperties().put("http.proxyHost", "serv");
System.getProperties().put("http.proxyPort", "porta");
System.getProperties().put("http.proxyUser", "usuario");
System.getProperties().put("http.proxyPassword", "senha");
...
}

proxySet = Define se passará ou não por um servidor proxy
http.proxyHost = IP ou nome do servidor proxy
http.proxyPortt = Porta do proxy
http.proxyUse = Usuário
http.proxyPassword = Senha

Usando um destes recursos você poderá configurar sua aplicação para acessar à internet através de um proxy.

Espero ter ajudado. Até +! ;)

16mar/100

Playlist do Amarok pára após tocar uma música

Recentemente enfrentei um problema que vários outros usuários do Amarok 2.1.1 vêm enfrentando: O Amarok só toca uma música do playlist e depois pára.

Para resolver este problema: Feche o Amarok, delete o arquivo  ~/.kde/share/apps/amarok/current.xspf e então reinicie o Amarok.

Pelo menos comigo funcionou e espero que funcione com todos! ;)

Até +.

16mar/102

Criando janelas transparentes e com formas usando Java Swing/AWT

O AWT nos oferece uma gama de possibilidades quando falamos sobre manipulação de janelas. Hoje falarei sobre duas destas possibilidades com a classe AWTUtilities.

Deixando a janela transparente

Para deixar uma Window (JFrame, JDialog e etc) transparente,  você deve usar o método AWTUtilities.setWindowOpacity. Este método recebe como parâmetro a janela que deve ser alterada e o grau de transparência, que varia entre 0 (zero) e 1, sendo 0 (zero) invisível e 1 totalmente visível.

JFrame  window = new JFrame("Minha janela");

//70% de transparência
AWTUtilities.setWindowOpacity(window, .7f);
window.setSize(800,600);
window.setVisible(true);

O resultado será:

Alterando a forma da janela

Para alterar a forma da janela você deve usar o método AWTUtilities.setWindowShape. Este método recebe como parâmetro a janela que deve ser alterada e a forma (java.awt.Shape) que a janela deverá assumir.

A forma mais eficiente de usar este método é através do componentResized(), pois você poderá recalcular o tamanho da janela para não deforma-la ou não perder os componentes de vista.

Aqui deixaremos nossa janela com a forma de um triângulo com 70% de transparência.

final JFrame  window = new JFrame("Minha janela");

try {
	//Adicionando o ComponentListener responsável pelo componentResized
	window.addComponentListener(new ComponentAdapter(){
		@Override
		//implementando o método componentResized
		public void componentResized(ComponentEvent e) {
			int[] x = {0,400,800}; //Pontos X do polígono
			int[] y = {600,0,600}; //Pontos Y do polígono

			//Criaremos um triângulo de 800 x 600
			Shape shape = new Polygon(x, y, 3);

			AWTUtilities.setWindowShape(window, shape);

			//com transparência de 70%
			AWTUtilities.setWindowOpacity(window, 0.7f);
		}
	});
} catch (SecurityException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
} catch (IllegalArgumentException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

window.setUndecorated(true); //removendo barra de título
window.setSize(800,600);
window.setVisible(true);

Repare que invoquei o método setUndecorated( ) passando o valor true, este método é responsável por ocultar a barra de título (aquele com o ícone e os botões de maximizar, minimizar e fechar) que, se estiver visível, o método AWTUtilities.setWindowShape( ) não surtirá efeito.

O resultado:

Espero que tenham gostado e até a próxima!

//Pontos X do polígono
22fev/100

Inserindo arquivos em campos BLOB de uma base de dados

Para inserir um arquivo, seja ele de qualquer formato, é necessário utilizar o método setBinaryStream implementado pelo PreparedStatement.

PreparedStatemente.setBinaryStream(int índice, Inputstream is, int tamanho);

Para o exemplo definimos uma tabela chamada arquivo que contém um campo BLOB chamado ARQ.

//Conexão normal, como qualquer JDBC
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@<IP>:<PORTA>:<SID>","<USUARIO>","<SENHA>");

//Acessando o arquivo a ser enviado e recuperando um InputStream
File arquivo = new File("<CAMINHO_COMPLETO_DO_ARQUIVO>");
FileInputStream fis = new FileInputStream(arquivo);

//Preparando a chamada normalmente
PreparedStatement ps = conn.prepareStatement("INSERT INTO ARQUIVO (arq) VALUES(?)");

//Informando o inputstream e o tamanho do arquivo a ser enviado
ps.setBinaryStream(1, fis, (int)arquivo.length());

ps.execute();

ps.close();
conn.close();

No meu teste utilizei a base de dados Oracle 8i. Como não tenho à disposição uma base MySQL/PostgreSQL/MS SQL Server, deixo vocês encarregados de testar e me enviar os resultados, OK? ;)

[]'s e até a próxima!