Emulador p/ Playstation 2

Outubro 1, 2009

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! ;)


Notebook battery information

Fevereiro 4, 2009

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 (Windows 7 Based)

Janeiro 11, 2009
Screenshot 12

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.


Returning HTML Code (Delphi WebBrowser)

Dezembro 2, 2008

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 =]


Windows Query End Session

Novembro 14, 2008

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 ;)


Contar palavras (em c++)

Novembro 11, 2008

Este exercicio da faculdade vai para tirar uma dúvida de um amigo meu (Jynex),
e para mostrar que eu completei u desafio dele… ehhe.. abraço vei ;)

Inicializa o programa com as bibliotecas de string tbm:
#include(stdio.h)
#include(conio.h)
#include(string.h)
//Altere os parenteses por sinal de maior e menor =]

Define o tamanho do campo p/ digitar as palavras, e inicializa o programa (sem módulos):
#define c 100

int main(void) {
char palavra[c];
int count=0,i,j;
clrscr();
printf(“Entre com as palavras: “);

Agora, está função limpa a este setor da memória para que não aconteça casos
em que o gets passa direto:
fflush(stdin);
gets(palavra);
j=strlen(palavra)-1;

Agora vamos as validações tão desejadas ;)
1. Eliminar os espaços do final da frase:
while(palavra[j]==’ ‘) palavra[j--]=’/0′;

2. Passar contando os espaços, mas, espaços que não estejam seguidos de outros espaços:
for(i=0;i<=j;i++) if((palavra[i]==’ ‘) && (palavra[i-1]!=’ ‘)) count++;

3. Por fim contar a ultima palavra (que não tem espaço no final (graças a primeira validação))..
E exibir o numero de espaços que foram contados..
count++;
printf(“Numero de palavras: %d”,count);
getch();
return 0;
}

É isso ai ..
É tosco, mas é uma validação completa.. e simples de entender! =]
Até mais.


Informativo

Novembro 11, 2008

E ae galera… estou postando aqui agora apenas para dizer
que não darei continuidade ao meu sistema de grampiamento mais!

Nenhum código ou function será mais postado sobre captura de teclas ou de tela
e nem nenhuma informação que te leve a ter acesso a uma maquina remota será dada.

Ninguem saberá da existencia do skl ou do sik mais (nem eu),
indepentende do projeto do servidor continuar rodando ou não,
os clientes permaneceram parados. =P

Não quero saber de problemas pro meu lado..
nem a respeito de usar, nem a respeito de ensinar as ferramentas!

Também porque o que eu sei num é quase nada, e muito material útil pode ser
encontrado em blogs especificos para isso!

Até mais


Screenshot 011

Novembro 5, 2008
screenshot_011

screenshot_011

Details:
Owner: Slockz
Developer: Jerez Bain (Killuminati)
Theme: 08 Unleashed: Red Version
Toke Date: 03/11/2008
Package: Aston Gladiators software 1.9.0
Site: http://www.aston.com
Credits:
-Slockz (Start button and icons)
-Dmitry/UnderPI (from aston soft)
-Jerez Bain (Killuminati) for theme
-Mozilla Firefox 3.0.3 Final
-Nullsoft for Winamp v5.531
-Google Desktop (Deskbar)
-Instan-t multi IM connector 5.0
-Plus! Live for Vortex Messenger skin
-Malhação (Globo channel) (i ware watching on TVSet) ;)

* Download links:

Astonshell Download: http://www.astonshell.com/downloads.htm
(If you want ever have no problems about expiration, i really
recommend you to found the 1.9.0 version and his specify crack)

Mozilla Firefox: http://baixaki.ig.com.br/download/…firefox.htm

Google deskbar: http://desktop.google.com/pt/BR/

Instan-t 5.0: http://www.instan-t.com (Try it)

Things about messenger (BR): http://www.messbrasil.com.br


Screenshot 010

Novembro 5, 2008
screenshot_010

screenshot_010

Details:
Owner: Slockz
Developer: Jerez Bain (Killuminati)
Theme: 08 Unleashed: Blue Version
Toke Date: 22/10/2008
Package: Aston Gladiators software 1.9.0
Site: http://www.aston.com
Credits:
-Slockz (Start button and icons)
-Dmitry/UnderPI (from aston soft)
-Jerez Bain (Killuminati) for theme
-themerboy for wallpaper
-Nullsoft for Winamp v5.531
-Google Desktop (Deskbar)
-Flyakite for dosshell modify to terminal-bash
-Instan-t multi IM connector 5.0
-Microsoft for Remote Desktop tool
-Matt Holwood for MessengerDiscovery 2.0
-Plus! Live for Vortex Messenger skin
-977 Hitz channel (i ware hearing on TVSet) ;)

* Links:

Link 977 Radio Live: http://208.109.237.151:8001/live


Screenshot 008

Novembro 4, 2008
screenshot_008

screenshot_008

Details:
Owner: Slockz
Developer: Stardock (Think in green)
Toke Date: 13/10/2008
Package: Some kind of Stardock or WindowsBlind
Site: http://www.stardock.com
Credits:
Slockz (for Terminal (In green))
Stardock
Instan-t multi IM connector
Nullsoft for Winamp v5.531 (In green)