Emule: Preferências – Parte 1

1 Estrela2 Estrela3 Estrela4 Estrela5 Estrela (1 votos, média: 5,00)
Loading ... Loading ...

Postado por Plinio Cruz em 27 de novembro de 2008 - Aplicativos, Tutorial | Seja o primeiro a comentar

Agora sim em Preferências :

     

  • Nome do usuário: é aconselhável você indicar em seu nome de usuário que é do Brasil, colocando um BRA, ou como achar melhor. Mais para auto-conhecimento dos outros usuários que estão te enviando e recebendo dados.

  • Habilitar MiniMule: com essa opção ativada, quando o eMule for minimizado, ou seja, ir para a barra de tarefas (ao lado do relógio), ao clicar apenas uma vez no ícone do eMule vai aparecer uma pequena janela com alguns dados básicos, como a sua velocidade de Download, Upload, etc. Eu não uso isso, mas se você usa, então ative essa opção.

  • Exibir porcentagem de Download na Barra de Progresso: bem útil.

  • Preservar Uso de CPU e Memória: é recomendável deixar todas as opções habilitadas, para fazer com que o eMule consuma menos memória.

  •  

    O botão Limpar serve para apagar o histórico de pesquisas que você já fez no eMule. De vez em quando é bom limpar, para não acumular muito.

  • Limites – Upload Máximo: não é recomendável deixar o limite do Upload no máximo, pois algumas conexões ficam instáveis usando todo o Upload, prejudicando o Download. Procure deixar o Upload sempre um pouco abaixo do limite, com uma folga. Upload é a velocidade que você envia arquivos para outros usuários. Já o Download é a velocidade que você baixa dos outros usuários.

  • Porta do Cliente: se você é usuário antigo do eMule, talvez suas portas em TCP e UDP estejam, respectivamente, 4662 e 4672. Nessa última versão do eMule, quando se roda pela primeira vez, ele agora determina portas aleatórias. Isso está sendo usado por causa de provedores de internet que bloqueavam o eMule pela porta, já que todos sabiam a porta que era usada. Desse modo, fica mais difícil bloquear o eMule. Por isso, se estiverem essas portas antigas, mude para valores aleatórios (aconselho números entre 30000 e 55000 no máximo).

  • Configurar Portas usando UPnP: ative essa opção apenas se você possui ID Baixa (mais informações no decorrer do tutorial).

  • Limites de Conexão/Max.Conexões: não altere esse valor, a não ser que você tenha certeza do que está fazendo. Deixe o valor que o eMule determinar. Pois, se colocado um valor errado, o eMule pode fazer a internet cair ou ficar muito lenta.

  •  

    É recomendável deixar correto a velocidade de sua internet no eMule, assim ele pode gerenciar melhor as transferências. Utilize o botão Assistente para definir sua velocidade de conexão.
    OBS: não coloque uma velocidade de conexão extremamente maior da qual você realmente possui. Se você fizer isso, seu eMule pode fazer sua internet cair, pois ele vai tentar abrir muitas conexões para os outros usuários, e sua internet não vai aguentar. Sua velocidade de conexão não é aquela que aparece no Windows, ao lado do relógio. Algumas pessoas configuram o eMule baseadas naquilo, o que não é o correto. Aquela é apenas a velocidade máxima que sua placa de rede suporta.

  • Tipo de Conexão: caso você não encontre sua velocidade de conexão nessas pré-definidas, escolha a opção Customizável e coloque abaixo sua velocidade de Download e de Upload.

 

DICA: nem todo mundo sabe sua velocidade de Upload. A de Download geralmente já vem no nome do plano que você assina (ex: Velox 300, 300kbps de Download… Speedy 500, 500kbps de Download). Você pode procurar a taxa de Upload no site oficial do seu provedor de conexão, nas especificações dos planos. Mesmo assim, vou colocar aqui as taxas de Download e Upload mais conhecidas no Brasil:

Nome

Download

Upload

Velox 300

>300 kbps

150 kbps

Velox 1 Mega

1024 kbps

150 kbps

Velox 2 Mega

2048 kbps

150 kbps

Velox 4 Mega

4096 kbps

150 kbps

Speedy Fit ou Light (250)*

250 kbps

128 kbps

Speedy Power (500)

500 kbps

128 kbps

Speedy Turbo (1MB)

1024 kbps

128 kbps

Speedy Start

500 kbps

200 kbps

Speedy Mega 1.0

1024 kbps

300 kbps

Speedy Mega 2.0

2048 kbps

300 kbps

Speedy Mega 4.0

4096 kbps

600 kbps

Virtua 200 kbps

200 kbps

200 kbps

Virtua 2 Mega

2048 kbps

300 kbps

Virtua 4 Mega

4096 kbps

600 kbps

Turbo 600

600 kbps

300 kbps

Turbo 2 Mega

2000 kbps

400 kbps

Turbo 4 Mega

4000 kbps

400 kbps

* Não esqueça que esses planos da Speedy tem limite de transferência (somente para download) mensal de 4GB para o Light e apenas 200MB para o Fit. Então, não exagere nos downloads.

OBS: Esses números não serão a velocidade visualizada em downloads pelo eMule ou qualquer outro programa. Para chegar na sua taxa real de Download/Upload, você deve dividir o número de kbps (kbits por segundo) por 8, tornando-se assim kBps (kBytes por segundo). Exemplo: 200kbps / 8 = 25 kB/s.

OBS IMPORTANTE: as operadoras Net Virtua e BrasilTelecom, pelo que sei, limitam a velocidade de programas P2P (eMule, Torrent, Limewire etc) usando uma tecnologia chamada Traffic Shaping. Portanto, se seu eMule continuar lento mesmo após as modificações desse site, não estranhe: é assim mesmo. Você pode tentar reclamar, ligando para o suporte técnico. Bem… só posso lhe desejar boa sorte.

 

  • Remover servidor inativo após X tentativas: melhor colocar mais do que 1, caso o servidor esteja apenas com um rápido problema de conexão ou lotado. 10 é um valor bom.

  • Atualizar lista de servidores ao conectar a um servidor: deixe Desativado.

  • Atualizar lista de servidores ao conectar a um usuário: deixe Desativado.

  • Conexão segura: é importante que essa opção esteja Desativada. Caso contrário, talvez você pegue ID Baixa nos servidores, o que vai abaixar consideravelmente a sua velocidade de download.

  • Autoconectar somente nos Servidores Estáticos: deixe Desativado.

  • Arquivos Completos: não é necessário, mas você pode colocar seus downloads, quando forem terminados, para irem para sua pasta pessoal, para maior facilidade de localização posteriormente. Note que, ao fazer essa alteração e você já tiver arquivos baixados na pasta Incoming padrão, os arquivos irão “sumir” do eMule. Você vai ter que ir até a pasta (C:\Arquivos de programas\eMule\Incoming) e transferir os arquivos lá contidos para a sua nova pasta. Assim, nada é perdido.

  • Diretórios compartilhados: Selecione aqui seus arquivos para compartilhar. O melhor não é adicionar tudo o que você tem, mas sim somente seus arquivos que você considera mais importantes, como músicas, vídeos, algumas imagens ou imagens de CDs de jogos e programas. Desse modo, as chances de você compartilhar seus arquivos aumentam.

 

Não compartilhe milhares de arquivos, senão há uma chance do seu eMule sobrecarregar e ficar lento para fazer downloads e uploads. Isso porque toda vez que você adiciona um arquivo novo para compartilhar, o eMule faz uma checagem e define certos atributos para esse arquivo, e por isso que se você colocar arquivos demais para compartilhar, seu eMule pode travar ou ficar lento. Prefira então compartilhar algumas centenas de arquivos, no máximo. O que importa é qualidade, e não quantidade.

DICA: Se você quiser compartilhar uma pasta toda, incluindo suas subpastas, segure o botão CTRL e clique pasta desejada.

DICA: Se você não sabe aonde fica a sua pasta Meus Documentos, provavelmente ela vai estar em “C:\Documents and settings\usuario\Meus documentos“.

Vitor ‘Shigutso’ Gatti

 

 

IdeaPad Y510, da Lenovo, combina desempenho e boa capacidade

1 Estrela2 Estrela3 Estrela4 Estrela5 Estrela (Sem votos, vote agora!)
Loading ... Loading ...

Postado por Plinio Cruz em 14 de novembro de 2008 - Hardware, Notícias | Seja o primeiro a comentar

A linha ThinkPad da Lenovo é voltada para o mercado corporativo, mas a nova série IdeaPad da marca tenta ir além. Na verdade, O IdeaPad Y510, por menos de mil dólares, atinge o topo da lista dos laptops multifuncionais mais recentes.

O teclado firme e compreensivo não cede à pressão dos dedos – o que é algo bom, já que você não vai querer que suas teclas afundem enquanto você digita.

O gabinete muito bem projetado tem diversas dobradiças para que você possa posicionar a tela no melhor ângulo de visão. A estrutura sólida do laptop se estende à “capa” em que fica a tela. E parece ser tão durável quanto seu irmão mais velho, o ThinkPad.

A Lenovo inclui uma série de recursos extras neste notebook de 900 dólares: uma eficiente webcam localizada em cima da tela, que funciona bem com o software já incluso de reconhecimento facial.

Os alto-falantes da Dolby proporcionam uma boa qualidade de tons agudos e médios, e um subwoofer integrado emite fortes baixos pela parte inferior da unidade.

Um monte de botões de atalho sensíveis a toque delineiam o largo teclado, e um prático botão ‘Novo’ serve como uma ferramenta para gerenciamento de energia. Este botão Novo não é tão prático como o botão/software Think Vantage utilizado em modelos como o Lenovo ThinkPad X300, mas também não é mau. O enorme HD de 250GB do aparelho é outro ponto positivo.

No mais, seu processador Intel Core 2 Duo T5450, de 1,66GHz, ofereceu um desempenho apenas mediano, obtendo uma pontuação de 70 no WorldBench 6. O Y510 vai lidar com tarefas básicas de computação, mas não é nenhum monstro da velocidade.

O Y510 também atingiu um resultado médio em relação à duração da bateria, que sobreviveu por 3 horas e 42 minutos com uma carga simples – o mesmo do Acer Aspire 5920-6954, mas custa 100 dólares a menos.

A resolução de vídeo de 1200 pixels por 800 pixels do Y510 é estragada por uma tela que parece mais com um espelho do que com um monitor. Mesmo após colocar a função brilho no máximo, ainda é possível ver o reflexo de quem está sentado em sua frente.

Apesar deste dilema da tela, esse modelo representa uma boa tentativa da Lenovo de agradar um público mais consumista. O Y510 oferece um grande conjunto de recursos multimídia por um bom preço.

PC WORLD/EUA

Entrada e Saída em Arquivos – Parte Final

1 Estrela2 Estrela3 Estrela4 Estrela5 Estrela (Sem votos, vote agora!)
Loading ... Loading ...

Postado por Plinio Cruz em 12 de novembro de 2008 - Visual Basic | Seja o primeiro a comentar

Eliminando Registros

O modelo lógico desse aplicativo é eficiente e relativamente simples de entender. Porém, essa simplicidade tem o seu preço: você não tem uma forma simples de eliminar registros.

Suponha que o arquivo de banco de dados DONINHAS.DAT contenha quatro registros, para as doninhas chamadas hipoteticamente de A, B, C e D, conforme mostrado na Figura 10.21. A criação desses registros produziu um arquivo que contém 280 Bytes (4 x 70).

Figura 10.21 Um arquivo com quatro registros para o banco de dados Doninhas.

Não é possível simplesmente remover bytes do meio do arquivo e compô-lo novamente. Por exemplo, se deseja eliminar o registro da doninha B, você tem apenas duas opções: copiar todos os registros, exceto aquele a eliminar, para um novo arquivo ou então sobrepor o registro B com algum dado novo. Se você fizer a cópia, poderá então remover o arquivo original e renomear o arquivo copiado com o nome do arquivo original. Essa solução está ilustrada na Figura 10.22.

 
Figura 10.22 Copiando registros e renomeando o arquivo.

Se você sobrepuser o registro B com outros dados – por exemplo, um registro contendo apenas espaços em branco -, a caixa de lista eventualmente conterá uma série de entradas em branco. Você pode pensar em fazer com que a rotina de inicialização simplesmente omita qualquer registro com o nome da doninha em branco. Porém, caso isso seja feito, esse aplicativo não será capaz de compatibilizar as entradas da caixa de lista com os registros correspondentes no arquivo. A Figura 10.23 ilustra esse problema.

Esse aplicativo, como está atualmente, requer uma associação de um para um entre os nomes na caixa de lista e os registros no arquivo. (Acidentalmente, esse requisito significa que a propriedade Sorted da caixa de lista não pode ser configurada para True, uma vez que a classificação destruiria o relacionamento entre os valores de índices da caixa de lista e a posição dos registros no arquivo.) É possível contornar esse problema criando-se um mapeamento separado.entre o índice da caixa de lista e as posições no arquivo. A Figura 10.24 contém um exemplo.

 
Figura 10.23 Sobrepondo um registro com espaços brancos.

 


Figura 10.24 Mapeando os índices da caixa de lista.

Qual é a melhor solução? Se você sabe que os arquivos de dados para o seu aplicativo serão sempre pequenos, o método de copiar e renomear pode ser melhor. Ele pode ser implementado sem qualquer modificação no código que já foi escrito, e o aplicativo permanecerá simples e fácil de entender. Entretanto, em se tratando de arquivos volumosos, a cópia demanda tempo e considerável espaço em disco. É preciso ter em mente que tanto a cópia quanto o arquivo original terão de existir ao mesmo tempo, e se o espaço em disco não for suficiente, o programa poderá falhar. A criação de um mapeamento permite que o seu programa seja executado mais eficientemente, algo muito apreciado pelos usuários finais. No entanto, essa solução envolve complexidade adicional (e possivelmente bugs) e a reescrita de algumas partes do código existente.

Como programador, você será constantemente chamado a tomar decisões desse tipo. É muito importante compreender a tarefa do seu programa e a natureza dos dados antes de tomar uma decisão. Não importa o quão livre de bugs esteja o seu código, ele será inútil se os usuários não puderem conviver com as decisões que você toma durante a fase de projeto.

Vejamos mais de perto as alternativas de eliminação de registros do banco de dados Doninhas. A solução copiar e renomear não requer modificações no código existente. Basta incluir o procedimento mostrado na Figura 10.25.

Figura 10.25 O procedimento btnEliminar_Click para o aplicativo Doninha.

O procedimento btnEliminar_Click abre um novo arquivo e copia todos os registros, menos o atual, para ele. Os dois arquivos são então fechados. A instrução Kill recebe o nome original do arquivo como um parâmetro e este arquivo é excluído. A instrução Name renomeia o arquivo criado por meio da cópia. Quando acaba o tratamento dos arquivos, a caixa de lista é limpa e o programa chama o procedimento DoninhaInicia novamente, para recarregar os nomes na caixa de lista.

A segunda alternativa, usando uma matriz como um mapa, é mais complexa, pois envolve modificações no código existente. A Figura 10.26 contém apenas as rotinas que devem ser modificadas para produzir a nova versão; linhas que foram adicionadas ou alteradas encontram-se em destaque.

 
Figura 10.26A  A parte revisada do código do aplicativo Doninha para implementar a matriz de mapeamento.

 


Figura 10.26B A parte revisada do código do aplicativo Doninha para implementar a matriz de mapeamento. (Continuação)

O programa alterado usa a propriedade chamada ItemData, que é uma característica interna de caixas de lista. ItemData é uma matriz de elementos do tipo Long Integer, com uma entrada para cada item da caixa de lista. Essa matriz é usada para armazenar o mapeamento, isto é, ela conterá o número de registro no arquivo para cada entrada da lista. Na versão original, a variável DoninhaAtualIx refere-se apenas ao índice na caixa de lista; a posição do registro no arquivo deve ser obtida a partir da expressão cboNome.ltemData(DoninhaAtuaIIx).

As alterações feitas nos procedimentos NovaDoninha, MostrarDoninha e AtualizarDoninhaAtual são triviais, simplesmente asseguram que o mapeamento seja usado e atualizado corretamente. As modificações em DoninhaInicia são relativamente diretas: à medida que cada registro é lido, verifica-se se a primeira posição do nome está em branco; se estiver, significa que o registro deve ser ignorado. Além disso, durante a leitura dos registros, é armazenado o valor apropriado na matriz ItemData. A propriedade NewIndex contém o valor do índice da lista para o item incluído mais recentemente. Uma vez que não é mais necessária uma relação biunívoca entre os registros no disco e na caixa de lista, você pode configurar a propriedade Sorted da caixa de lista para True.

Finalmente, o procedimento btnEliminar_Click é completamente diferente na nova versão. Para eliminar o registro atual, o programa irá sobrepô-lo com um registro em branco. Depois, o nome é removido da caixa de lista.

Permanece um pequeno problema nessa nova versão: os registros eliminados ocupam espaço e os novos registros são incluídos sempre no final do arquivo. Seria ideal se o procedimento NovaDoninha reutilizasse o espaço dos registros excluídos, em vez de estender automaticamente o arquivo. Essa modificação impediria que o arquivo crescesse indefinidamente. A implementação desse exercício é deixada a cargo do leitor. (Eu sempre desejei dizer algo semelhante a isso.)

Configuração

Freqüentemente, você pode desejar salvar um ou dois valores importantes de uma seção do aplicativo para outra – talvez uma configuração tal como o modo analógico ou digital para o seu programa de relógio. As variáveis padrões não funcionam, pois o valor armazenado nelas se perde quando o programa acaba. Você poderia criar um arquivo de dados, porém isso exigiria um grande esforço para quantidades mínimas de informações. A solução padrão adotada por aplicativos para o Windows 95 e NT é armazenar os valores no Registro do Sistema. O Registro do Sistema é um conjunto de arquivos que o Windows utiliza para armazenar informações sobre hardware, software do sistema e configuração de aplicações. Cada aplicativo pode criar informações e armazená-las no Registro do Sistema. Você não precisa se preocupar em como estas informações estão organizadas internamente no Registro, basta saber que o Registro do Sistema está organizado na forma de uma árvore de itens onde cada item constitui o que chamamos uma chave do Registro. Nas chaves ficam armazenadas as informações. O Visual Basic possui funções que lhe dão acesso ao Registro para criação, leitura, gravação e exclusão de informações.

O Visual Basic provê uma localização padrão no Registro para o armazenamento de informações de aplicações criadas em Visual Basic:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\NomeAplicação\seção\chave

Observe que NomeAplicação, seção e chave são subchaves de HKEY_CURRENT_USER\Software\VB and VBA Program Settings. Sua aplicação poderá utilizar estas três subchaves para armazenar informações de configuração que permaneçam de uma execução para outra.

As funções de manipulação das informações armazenadas pela sua aplicação no registro são:

 


Figura 10.27 Funções de acesso ao Registro

Nota Para examinar entradas no registro, use a aplicação Regedit, que acompanha o Windows 95 e Windows NT.

Criando e Salvando Configurações da Aplicação

Você pode usar a instrução SaveSetting para salvar um novo valor para uma chave do registro armazenada na localização do registro destinada à sua aplicação. Por exemplo, você poderia adicionar código ao evento Form_Unload no formulário principal da aplicação no sentido de preservar as configurações no momento de encerramento, ou no evento de Form_Unload de uma caixa de diálogo de Opções para atualizar as preferências do usuário.

Use a seguinte sintaxe para a instrução SaveSetting:

SaveSetting NomeAplicação, seção, chave, valor

O código seguinte salva novos valores para as chaves Backup e LastEntry na seção Setup do registro para uma aplicação chamada “RegCust”. Este código assume que as variáveis strDate e intLastEntry contêm os novos valores.
Private Sub Form_Unload(Cancel As Integer)

SaveSetting “RegCust”, “Startup”, “Backup”, strDate

SaveSetting “RegCust”, “Startup”, “LastEntry”, _

intLastEntry

End Sub
Se uma entrada para a aplicação “RegCust” ou alguma dessas seções ou chaves não existir na seção Software\Microsoft do registro, este código irá criá-la.

Para mais informações veja “SaveSetting Statement” no Language Reference do Books Online.

Recuperando Configurações da Aplicação

Você pode usar as funções GetSetting e GetAllSettings para obter os valores armazenados no localização do registro usada pela sua aplicação. Por exemplo, sua aplicação pode obter as informações do registro para recriar as condições presentes no momento do seu último encerramento.

Uma Informação por Vez

Para recuperar uma única informação do registro, use a seguinte sintaxe para a função GetSetting:

GetSetting(NomeAplicação, seção, chave, [padrão])

O código seguinte recupera o valor da chave LastEntry na seção Startup da aplicação “RegCust” e exibe o valor na janela Immediate.
Private Sub Form_Load()

Dim intLastEntry As Integer

intLastEntry = GetSetting(“RegCust”, “Startup”, _

“LastEntry”, “0″)

Debug.Print intLastEntry

End Sub
Note que você pode usar um parâmetro opcional, padrão, para determinar o valor retornado pelo Visual Basic quando nenhum valor estiver presente no registro para a chave especificada.

Múltiplas Informações

Para retornar uma lista das chaves e seus valores, use a seguinte sintaxe para a função GetAllSettings:

GetAllSettings(NomeAplicação, seção)

O código seguinte recupera uma lista de duas colunas de chaves do registro e seus valores na seção Startup da aplicação “RegCust”, e exibe os resultados na janela Immediate.
Private Sub Form_Load()

Dim avntSettings As Variant

Dim intX As Integer

avntSettings = GetAllSettings(“RegCust”, “Startup”)

For intX = 0 To UBound(avntSettings, 1)

Debug.Print avntSettings(intX, 0), _

avntSettings(intX, 1)

Next intX

End Sub
Para mais informações veja “GetSetting Function” e “GetAllSettings Function” no Language Reference do Books Online.

Excluíndo Configurações da Aplicação

Você pode usar a instrução DeleteSetting para excluir uma chave , seção ou localização de aplicação do registro. Por exemplo, você pode querer excluir todas as informações do registro para uma aplicação quando ela for desinstalada.

Use a sintaxe seguinte para a instrução DeleteSetting:
DeleteSetting(NomeAplicação, seção, chave)
O código seguinte exclui a chave LastEntry na seção Startup da aplicação “RegCust”.
Private Sub cmdDelKey_Click()

DeleteSetting “RegCust”, “StartUp”, “LastEntry”

End Sub
O código seguinte exclui totalmente do registro a seção Startup da aplicação “RegCust”.
Private Sub cmdDelSection_Click()

DeleteSetting “RegCust”, “StartUp”

End Sub
O código seguinte exclui por inteiro do registro a localização para a aplicação “RegCust”.
Private Sub cmdUnInstall_Click()

DeleteSetting “RegCust”

End Subm
Para mais informações veja “DeleteSetting Statement” no Language Reference do Books Online.

Bibliotecas de Ligação Dinâmica

Você pode acessar funções internas do Windows ou internas aos aplicativos desenvolvidos para Windows se as funções fizerem parte de uma biblioteca de ligação dinâmica (Dynamic-link library, uma DLL). Se você pesquisar o diretório SYSTEM do Windows, verá arquivos com a extensão DLL no nome. Alguns desses arquivos acompanham o Windows; outros (tais como VBRUN500.DLL) vêm com os aplicativos que você comprou. Se você souber a definição das funções contidas nesses arquivos, poderá chamar quase todas elas em seus aplicativos Visual Basic.

Para chamar essas funções a partir do Visual Basic, é necessário conhecer algumas informações técnicas a respeito de tipos de dados, passagem de parâmetros e assim por diante. Para ter uma visão detalhada sobre isto consulte no Books Online “Acessing DLL’s and the Windows API”. Informações especificas sobre as funções que podem ser chamados em cada DLL devem ser buscadas nos manuais de programação dos produtos que contêm as DLL’s.

Resumidamente, a instrução Declare possui a seguinte sintaxe:

Sintaxe 1

[Public | Private] Declare Sub Nome Lib “NomeBiblioteca” [Alias "NomeApelido"] [([Lista de argumentos])]

Sintaxe 2

[Public | Private] Declare Function Nome Lib “NomeBiblioteca” [Alias "NomeApelido"] [([Lista de argumentos]
)] [As TipoRetorno]

Public ou Private: declara se o procedimento pode ser chamado em todos os módulos (Public) ou apenas no módulo onde esta instrução aparece (Private).

Explicações

  • Function ou Sub: se retorna valor, Function; caso contrário, Sub.
  • Nome: o nome dado ao procedimento que está sendo declarado para referenciá-lo dentro do Visual Basic.
  • NomeBiblioteca: o nome da biblioteca de ligação dinâmica onde reside o código do procedimento.
  • NomeApelido: o nome do procedimento como é reconhecido dentro da DLL que o contém. Usado quando, por alguma razão, não seja conveniente ou possível usar o nome do procedimento como é reconhecido internamente à DLL.
  • Lista de argumentos: os argumentos a serem passados para o procedimento.
  • TipoRetorno: o tipo dos dados retornados pelo procedimento.

Aviso: A instrução Declare é muito poderosa. Ela lhe permite acessar qualquer função do sistema Windows. Entretanto, você deve usá-la cuidadosamente. Por fazer chamadas diretas ao sistema, você não desfrutará dos benefícios de verificação de erros do Visual Basic. Há o perigo potencial de você provocar uma queda do sistema, se for cometido um engano na declaração ou chamar uma função do sistema com valores inválidos.

Um Exemplo de Uso das Funções em DLLs do Windows

Uma tarefa comum no uso de caixas de lista e caixas de combinação é verificar a existência de um item na lista. Usando somente os recursos do Visual Basic, você teria que criar um loop para verificar item por item até localizar o item procurado. No entanto, o Windows disponibiliza uma função chamada SendMessage, que pode ser usada para solicitar diretamente essa pesquisa ao objeto caixa de lista ou caixa combinada. O trabalho de codificação diminui e o desempenho é melhor. Antes que você possa usar SendMessage em uma aplicação, no entanto, é preciso declará-la no seu programa. Abaixo está a instrução de declaração de SendMessage.

Declare Function SendMessage Lib “user32″ Alias “SendMessageA” (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Esta função envia uma mensagem à janela identificada pelo argumento hwnd solicitando alguma informação ou ação. A mensagem é identificada pelo argumento wMsg, uma constante, que também precisaremos declarar antes de fazer a chamada a SendMessage. Os dois últimos argumentos têm significados variados dependendo da mensagem que está sendo enviada. No exemplo que daremos a seguir o parâmetro lParam será usado para conter uma string pesquisada numa caixa de lista. Mudemos, portanto, o seu tipo de dados para String na instrução Declare.

Além da declaração de SendMessage, devemos declarar também a constante que identifica a mensagem para a caixa de lista ou caixa combinada. No caso de a mensagem que solicita a pesquisa de uma string ser destinada a uma caixa de lista a declaração da constante é:

Public Const LB_FINDSTRINGEXACT = &H1A2

Declararemos também uma constante usada para verificação do valor de retorno da função: LB_ERR. Caso LB_ERR seja retornado, é sinal de que nenhum item com o texto exatamente igual ao pesquisado existe na lista.

Public Const LB_ERR = (-1)

Uma vez que as declarações estejam feitas, o código abaixo exemplifica a chamada a SendMessage para pesquisar pelo item “Paulo” a partir do inicio da lista de lstNomes. No caso do item ser localizado é dada uma mensagem que exibe o seu índice na lista; caso nada seja encontrado, é dada uma mensagem de aviso.

 
Figura 10.28 Exemplo de uso de SendMessage para pesquisar listas

Neste exemplo, o terceiro argumento é -1, o que significa, para esta mensagem, que a pesquisa deve começar pelo primeiro item da lista.

Repare no prefixo LB no nome da constante que identifica a mensagem. Este prefixo é abreviatura de ListBox (Caixa de Lista). Se a mensagem fosse para uma caixa combinada, a constante seria declarada como abaixo:

Public Const CB_FINDSTRINGEXACT = &H158

No restante tudo seria feito da mesma forma.

Agora veja abaixo duas outras constantes identificadoras de mensagens para pesquisas em caixas de lista e caixas combinadas:

Public Const LB_FINDSTRING = &H18F

Public Const CB_FINDSTRING = &H14C

Estas constantes identificam mensagens que também fazem pesquisa em listas, mas com uma diferença: retornam o primeiro item que inicie com o texto pesquisado. O modo de chamar é o mesmo que o usado em LB_FINDSTRINGEXACT e CB_FINDSTRINGEXACT.

Há duas formas de você obter as informações necessárias para criar estas declarações sempre que precisar usar as funções das DLLs do Windows. Uma é consultar alguma documentação do Windows sobre o procedimento e fazer por sua própria conta as conversões de tipos de dados da linguagem “C” para os seus correlatos no Visual Basic. Outra é carregar a aplicação API Text Viewer, que acompanha o Visual Basic, e abrir o arquivo de texto Win32API.TXT que contém as declarações prontas para você copiar e colar no seu código. Foi o que fizemos para obter as declarações acima.

Nota: o conjunto de funções que o Windows coloca à disposição dos programadores para serem chamadas de dentro de qualquer aplicação para Windows é conhecido como Windows’ Application Programming Interface ou Windows’ API. Uma excelente fonte de informação detalhada sobre a API do Windows é o livro “Visual Basic 5.0 – Programmer’s Guide to the Win32 API” de Dan Appleman.

Artigo gentilmente cedido por CodeLines

O Que São Active Server Pages?

1 Estrela2 Estrela3 Estrela4 Estrela5 Estrela (2 votos, média: 3,50)
Loading ... Loading ...

Postado por Plinio Cruz em 6 de novembro de 2008 - ASP, Internet, Programação | Seja o primeiro a comentar

Active Server Pages (ASPs) são páginas Web que contêm scripts executáveis no servidor em adição à mistura usual de texto e elementos de HTML (Hypertext Markup Language). Scripts executáveis no servidor – ou de servidor, como chamaremos aqui – são comandos especiais que você adiciona a páginas Web que são processados antes que as páginas sejam enviadas do servidor ao navegador de alguém que esteja visitando o seu site. Quando você digita uma URL na caixa de endereço do navegador ou clica sobre um link em uma página Web, você está solicitando a um servidor Web localizado em alguma parte para que envie um arquivo para o navegador ( às vêzes chamado um ‘cliente’) no seu computador. Se o arquivo é do tipo HTML normal, ao recebê-lo em seu computador, ele se parecerá exatamente com aquilo que está no servidor. Após o recebimento do arquivo, o seu navegador exibe seu conteúdo como uma combinação de texto, imagens e sons. No caso de um arquivo do tipo Active Server Page, o processo é parecido, exceto que há um processamento extra que ocorre antes de o servidor enviar o arquivo. Antes de fazer o envio do arquivo, o servidor Web executa todos os scripts de servidor contidos na página. Alguns desses scripts exibem a data atual, hora e outras informações. Outros processam informação que o usuário digitou em um formulário, como numa página de livro de visitas do site. Para serem distinguidas de páginas HTML normais, Active Server Pages recebem a extensão “.asp”.

O Que é Necessário Para Usar ASP

Para trabalhar com ASP você precisa ter o Personal Web Server que vem com o Windows NT Workstation e Windows 98 ou – melhor ainda – o Internet Information Server 4 (IIS) instalado no Windows NT Server. O IIS é preferível por permitir a plena utilização dos recursos de ASP, enquanto o PSW lhe oferecerá menores possibilidades de desenvolvimento. Para instalar o Personal Web Server no Windows 98, veja aqui como fazê-lo.

O que você pode fazer com Active Server Pages?

Há muitas coisas que você pode fazer com Active Server Pages. Por exemplo:

  • Você pode exibir data, hora e outras informações de variadas formas.
  • Você pode criar um formulário de pesquisa e solicitar às pessoas que visitam o seu site para preenchê-lo, enviar e-mails, salvar informações em um arquivo, etc

Com o que se parecem Active Server Pages?

A aparência de uma Active Server Page depende de quem ou o que a está examinando. Para o navegador Web que a recebe, uma Active Server Page parece-se tal qual uma página HTML normal. Se um visitante do seu site exibir o código fonte de uma página gerada a partir de uma Active Server Page, eis o que ele verá: uma página HTML normal. Contudo, o arquivo residente no servidor é muito diferente. Em adição ao código HTML normal, você vê scripts de servidor. Isto é o que Active Server Pages são para o servidor antes de serem processadas e remetidas em resposta uma requisição.

Com o que se parecem os scripts de servidor?

Scripts de servidor parecem-se muito com elementos da linguagem HTML. Contudo, ao invés de iniciarem e terminarem com um sinal de menor-que (<) e maior-que (>), eles costumam iniciar com <% e terminar com %>. O sinal <% é chamado de código de abertura e o sinal %> de código de fechamento. Entre estes sinais ficam os scripts de servidor. Você pode inserir scripts de servidor em qualquer parte da sua página Web – mesmo dentro de elementos HTML.

Você necessita ser um programador para entender scripts de servidor?

Há muito que você pode fazer com scripts de servidor mesmo sem saber como programar. Por esta razão, muito do que há de ajuda online sobre Active Server Pages é escrito para pessoas que estão familiarizadas com HTML, mas não são programadores de computador.

Artigo gentilmente cedido por CodeLines

Financiamento com prestações fixas

1 Estrela2 Estrela3 Estrela4 Estrela5 Estrela (Sem votos, vote agora!)
Loading ... Loading ...

Postado por Plinio Cruz em 2 de novembro de 2008 - Excel, Soluções | Seja o primeiro a comentar

O Banco Central disponibiliza no seu site, entre outra coisas, serviços muito bons e úteis ao cidadão. Digo isso, pois no site do Clube da Informática um dos artigos mais visitados é o Como Calcular Juros no Excel, além disso a participação dos visitantes nesse artigo é intensa, são pessoas que precisam calcular juros, prestações e taxas. Esse necessidade faz com que a equipe do Clube busque as melhores soluções.

A solução abaixo está no site do Banco Central e por causa de uma diagramação deficiente, ou pela quantidade de informação a ser disponibilizada está praticamente escondida do usuário menos experiente, então sem cliques e links disponiblizamos diretamente para você a calculadora e as explicações e exemplos do próprio site sobre sua utilização. Aproveite!

Clique aqui e utilize a ferramenta gratuitamente

Exemplos:
1) Um cidadão está devendo R$ 2000,00, tendo ficado acertado que o tomador irá pagar juros de 1% ao mês. Sabendo que as parcelas serão de R$ 261,50, em quanto tempo o empréstimo será quitado?
Taxa de juros mensal = 1%
Valor da prestação = 261,50
Valor financiado = 2000
Clique em ‘Calcular’ para obter o nº de meses.

2) Um cidadão está pensando em comprar um bem que custa à vista R$ 750,00. O vendedor oferece a opção de pagar em 10 parcelas fixas de R$ 86,00, sem entrada. Qual a taxa de juros embutido no financiamento?
Nº de meses = 10
Valor da prestação = 86
Valor financiado = 750
Clique em ‘Calcular’ para obter a taxa de juros mensal.

3) A um cidadão é oferecido um bem no valor de R$ 1290,00. Para esse pacote, existe a opção de pagar em 4 prestações mensais fixas sem entrada, com taxa de juros de 1,99% ao mês. Qual o valor da prestação?
Nº de meses = 4
Taxa de juros mensal = 1,99
Valor financiado = 1290
Clique em ‘Calcular’ para obter o valor da prestação.

4) Um bem está sendo vendido em 24 parcelas fixas R$ 935,00. Sabendo que a taxas de juros anunciada é de 1,99% ao mês, qual o valor do bem?
Nº de meses = 24
Taxa de juros mensal = 1,99
Valor da prestação = 935
Clique em ‘Calcular’ para obter o valor financiado.

Fonte:  Site do Banco Central