Details:
Owner: Slockz
OS: Windows Seven (Modified)
Toke Date: 12/04/2011
Site: http://slockz.ath.cx
* Re-taking this section of screenshot, so you guys can see my new desktop with multi-monitors.
Slockz.
Bom, retomando a parte de códigos que recentemente não tenho escrito muito, dessa vez eu tive de vir para postar isto aqui..
A meses atraz eu fiz diversos tipos de procuras por esse código e não o encontrei, quando eu via qualquer link que dizia “aqui tem”. ou era pago, ou precisava de registro, ou era fake..
E como eu acho que é uma função realmente útil, resolvi posta-lá.
Quem já não quis fazer um programa com áudio? ou melhor, quem já não quis que seu programa te dissesse tudo o que vc precisa?
ex. Acesso permitido. ou Acesso negado.
e qualquer outra frase, sem ter que ir grava-lá e mandar um componente executar o áudio.
Bom.. Eu precisei deste código! e depois de procurar quinem doido, finalmente consegui montar o quebra cabeça, e fazer o esquema funcionar (nem acreditei no quão simples era).
Utilizando o “Text to Speech/Speaker/Fala” do windows.
Antes de mais nada, adicionar na uses: ComObj.
A atribuição da função à uma váriavel é simples:
var
voz : OleVariant;
begin
voz:=CreateOleObject(‘SAPI.SpVoice’);
Com isso, a váriavel voz, passa a obedeçer como a “engine” do programa de fala do windows, passando assim a receber atributos ex.
voz.Rate:=10; -> para deixar a voz falando super rápido.
voz.Rate:=-10; -> para deixar a voz falando super lento.
E dando o procedimento de execução:
voz.Speak(‘SPEAK THIS THING‘);
Vi em diversos lugares também comandos como:
voz.Pause;
voz.Resume;
dos quais não tive muito interesse (sendo assim nem os testei).
De qualquer maneira, agora você pode fazer seu programa falar o que vc quizér e/ou até mesmo (para grandes empresas (se necessário)) adicionar uma opção para que cégos possam utilizar seu programa, fora todo o esquema de automação em que este código pode te incluir.
Para os preguiçosos:
procedure Falar(texto:string);
var fala:olevariant;
begin
fala:=CreateOleObject(‘SAPI.SpVoice’);
fala.Speak(texto);
end;
só usar: Falar(‘Seu texto.‘);
Abraço!
;D
Download do Teamspeak clique aqui.
Endereço do servidor: sserver.ath.cx
Versão do servidor: 2.0.24.01
-
Download link Cstrike 1.6 Full Non Steam click here.
Download link Cstrike 1.6 Full Patch v23 click here.
-
Servers:
* [ sserver.ath.cx:27015 ] (Slockz)
* [ 189.19.10.168:27015 ] (CSRegente)
-
Any problem contact me or post a comment.
-
Terminal website: http://www.slockz.kit.net
Formspring.me: http://formspring.me/slockz
Funny movie: http://en.tackfilm.se?id=1263580269605RA95
Useful links for me.
Depois de tanto procurar quinem loco, eu consegui finalmente achar um emulador que funcionasse para jogos do Playstation 2, inclusive com os plugins e bios funcionando.
Percebi depois de muito tempo mechendo, que tudo também é uma questão de configuração, embora este sejá o único que realmente funcionou!
Porisso vou disponibilizar o download do mesmo, mas a configuração é por conta de vocês. Qualquer duvida tamos ae!
Emulador Playstation 1: Link (versão: pSX Fin 1.12)
Emulador Playstation 2: Link (versão: Pcsx2 0.9.2)
obs: Pelo amor de deus, (no 2) só lembrem de descompactar a pasta de plugins, e das bios lá na pasta do jogo heim…
Boa sorte!
Nesse post vou fazer um label1 receber as informações completas da fonte do computador.
Primeiramente ponha dentro de implementation os valores:
const
AC_OFFLINE = 0;
AC_ONLINE = 1;
AC_DESCONHECIDO = 255;
BAT_CARGA_CHEIA = 1;
BAT_CHARGA_BAIXA = 2;
BAT_CRITICO = 4;
BAT_CARREGANDO = 8;
BAT_AUSENTE = 128;
BAT_DESCONHECIDO = 255;
Em seguida insira uma procedure comum como a de um TTimer1
procedure TForm1.Timer1Timer(Sender: TObject);
var
EstadoDaFonte: _SYSTEM_POWER_STATUS;
status,flag,nivel,tempor,tempot:string;
begin
GetSystemPowerStatus(EstadoDaFonte);
case EstadoDaFonte.ACLineStatus of
AC_OFFLINE: status := ‘Usando a bateria’;
AC_ONLINE: status := ‘Ligado na tomada’;
AC_DESCONHECIDO: status := ‘Estado da fonte desconhecido’;
end;
case EstadoDaFonte.BatteryFlag of
BAT_CARGA_CHEIA: flag := ‘Bateria com carga cheia’;
BAT_CHARGA_BAIXA: flag := ‘Bateria com carga baixa’;
BAT_CRITICO: flag := ‘Bateria com carga baixa em nível crítico’;
BAT_CARREGANDO OR 9: flag := ‘Bateria carregando…’;
BAT_AUSENTE: flag := ‘Sem bateria instalada’;
BAT_DESCONHECIDO: flag := ‘Estado desconhecido’;
else
if status = ‘Usando a bateria’ then flag:=’Descarregando…’;
if status = ‘Ligado na tomada’ then flag:=’Carregando…’;
end;
if EstadoDaFonte.BatteryLifePercent <= 100 then
nivel := ‘Nível: ‘+IntToStr(EstadoDaFonte.BatteryLifePercent)+’%’
else if EstadoDaFonte.BatteryLifePercent = HIGH(BYTE) then
nivel := ‘Nível: Desconhecido’;
if EstadoDaFonte.BatteryLifeTime < HIGH(DWORD) then
tempor := ‘Tempo restante de uso: ‘ + IntToStr(EstadoDaFonte.BatteryLifeTime div 60) + ‘ minutos’
else tempor := ‘Tempo restante de uso: Desconhecido’;
if EstadoDaFonte.BatteryFullLifeTime < HIGH(DWORD) then
tempot:=’Duração total da bateria: ‘ + IntToStr(EstadoDaFonte.BatteryFullLifeTime div 60) + ‘ minutos’
else tempot:=’Duração total da bateria: Desconhecido’;
label1.caption:=status+#13+flag+#13+nivel+#13+tempor+#13+tempot;
end;

Screenshot 12
Details:
Owner: Slockz
Developer: Slockz
Theme: Windows Seven Based
Toke Date: 11/01/2009
Package: Aston Gladiators software 1.9.0
Site: http://www.aston.com
Credits:
-Slockz (Start button, icons, and full theme)
-Dmitry/UnderPI (from aston soft)
-Mozilla Firefox 3.0.3 Final
-Nullsoft for Winamp v5.531
-Google Desktop (Deskbar)
* Not yet available for public download, sorry.
Contact me by e-mail or postmessage if you want this version,
then i send it for you by e-mail.
Slockz.
Como ontem precisei deste código para solucionar um problema para “um amigo” e não encontrei nada, perdi algumas horinhas bolando um, então resolvi soltar o código ai ![]()
tá ai brother hehe..
Proposta:
Receber em modo texto para qualquer componente ou variável string o código HTML de uma página independente da configuração proxy especificada pelo internet explorer.
Solução:
Para que o site sempre fosse localizado eu desenvolvi duas maneiras para que o proxy fosse sempre detectado. Na primeira maneira, (e pelo jeito não a mais recomendada), eu desenvolvi um código (que funciona apenas no Delphi 5), para pegar o proxy no registro:
procedure (De um OnbuttonClick por exemplo);
var //variáveis
registro : TRegistry;
proxynoregistro : string;
proxy,p : string;
porta : integer;
i,pos : integer;
begin registro := TRegistry.Create;
registro.RootKey := HKEY_CURRENT_USER;
if registro.OpenKey(‘\Software\Microsoft\Windows\CurrentVersion\Internet Settings’, True) then
proxynoregistro:=Registro.ReadString(‘ProxyServer’);
registro.free;
proxy:=”; porta:=0; p:=”;
pos:=0; while proxynoregistro[pos] ‘:’ do inc(pos);
memo1.lines.add(”); memo1.lines.add(”); memo1.lines.add(”);
memo1.lines.strings[0]:=’['+INTTOSTR(pos)+'] Proxy identificado…’;
memo1.lines.Strings[1]:=”;
memo1.lines.Strings[2]:=”;
for i:=0 to pos-1 do
memo1.lines.strings[1]:=memo1.lines.strings[1]+proxynoregistro[i];
for i:=pos+1 to length(proxynoregistro) do
memo1.lines.strings[2]:=memo1.lines.strings[2]+proxynoregistro[i];
try proxy:=memo1.lines.strings[1];
p:=memo1.lines.strings[2];
porta:=STRTOINT(p);
if memo1.lines.Strings[1] = ” then proxy:=”;
if memo1.lines.Strings[2] = ” then porta:=0;
except end;
Componente.Proxy:=proxy;
Componente.ProxyPort:=porta;
Componente.Get(…
já validado para funcionar caso o proxy não esteja especificado. Porem, é uma das gambiarras mais locas que já fiz também.. e convenhamos, desnecessária.
Eu utilizei do TNMHttp1 disponível apenas para o Delphi 5.
Por outro lado,
Tive que abandonar e iniciar toda a função de uma mesma maneira com componentes compatíveis com o Delphi 5 e 7,
foi ai que encontrei o TWebBrowser1
Disponível nos Delphi’s 5 ou 7 > Internet > WebBrowser
Ok… Para que a function funcione, precisaremos declarar algumas coisas na uses como OleCtrls, SHDocVw, e ActiveX;
Depois insira o componente WebBrowser1, um Edit1, e um Memo1.
E em implementation insira a function:
function getHTMLcode(memo: TStrings): Boolean;
var
psi: IPersistStreamInit;
iss: TStringStream;
is: IStream;
s: string;
begin
psi := WebBrowser1.Document as IPersistStreamInit;
s := ”;
iss := TStringStream.Create(s);
try is := TStreamAdapter.Create(iss, soReference) as IStream;
result := Succeeded(ps.Save(is, True));
if result then memo.Add(iss.Datastring);
finally iss.Free;
end;
end;
//E o evento que perceberá quando a página foi carregada e seu código poderá ser retirado, é este!…
procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject);
begin
memo1.clear;
getHTMLcode(Memo1.Lines);
end;
//Depois a função de carregar a página pode ser facilmente chamada…
procedure (Exemplo de um OnButtonClick);
var
flag:olevariant;
begin
webbrowser1.navigate(edit1.text,flag,flag,flag,flag);
//função principal para chamar a página da web desejada
//especificada (no exemplo) pelo componente edit1.text.
end;
end.
Enjoy =]
Hoje eu vou ensinar a procedure em pascal que fica atenta às mensagens que o Windows envia as aplicações.. hoje em especifico, a mensagem de encerramento dos programas para o desligamento do computador.
O Windows para encerrar os processos envia uma mensagem aos programas uma única vez, e aguarda até que os programas respondam com confirmação está mensagem para que ele possa encerrar o Explorer e finalizar.
Obs: A mensagem que ele envia pode ser simulada no Delphi, com está função..
SendMessage(HWND, MESSAGE, 0, 0);
Agora vamos à inserção da procedure que identifica a mensagem de desligamento.
Antes de mais nada verifique a declaração de: Windows, nas uses.
Agora no public da unit.. cole está referencia de procedure:
procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message WM_QueryEndSession;
Ps: WM_QueryEndSession, é a mensagem que é enviada do windows para o seu programa, informando que o Windows está em processo de desligamento!
Declare uma variável global chamada: permitirdesligar como string;
Var permitirdesligar : string;
Agora cole na implementação a procedure:
procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
if uppercase(permitirdesligar) = ‘SIM’ then
begin
application.terminate;
Msg.Result := 1;
End
Else
Abort;
End;
Lembrando que, na verdade está variável global apenas vai armazenar as respostas SIM e NÃO, e identificar que quando a resposta for SIM, ele irá enviar a resposta de confirmação e encerrar o programa, caso contrario, ira abortar a mensagem.
Agora basta você digitar:
permitirdesligar:=’não’;
quando quiser que seu programa continue executando!.. e depois coloque como:
permitirdesligar:=’sim’;
para que ele continue o processo de desligamento normalmente.
Enjoy