Ir para conteúdo
Fórum Script Brasil

Fabiomiojo

Membros
  • Total de itens

    16
  • Registro em

  • Última visita

Posts postados por Fabiomiojo

  1. <script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

    é possivel que alguns HDs não tenham numero fisico ( mas todas as BIOS tem )

    mas no prompt do DOS .. iniciar > executar > cmd.exe > vol

    esse comando exibe um rotulo e numero de serie do HD caso exista

    Olá Jhonas,

    esse parâmetro do cmd.exe retorna o Serial do Volume do hd.

    ou seja, é o serial atribuído no momento da formatação sendo este, vulnerável a copias e alterações por programas.

    Nesse caso em que se basta utilizar do Serial do Volume, pode ser usado a função

    GetVolumeInformation
    

    O proposito em se colher o Serial Físico do HD é para que realmente não exista o uso indevido do sistema em autorização.

    acredito que seria viável receber o serial de outro hardware ao invés do HD devido essa falha dos fabricantes.

    Você conhece funções que pode fazer isso? como pegar serial da placa mãe por exemplo?ou da BIOS?

  2. Olá Jhonas,

    Também Utilizo seu código pois como eu havia falado, em alguns momentos não é possível obter o Serial do HD. :ninja:

    Acredito que exista uma relação ao Fabricante do HD, pois pelo que li, alguns não fornecem o numero de serie fisicamente, ou seja, não colocam dentro do HD tal numero.

    Será que procede?? :unsure:

    Testei com HDs Sata e IDE das marcas SEAGATE e SAMSUNG nas versões do windows XP, na Versão 7 foi necessário rodar o aplicativo com privilegio de adm.

    quem testar mais posta aqui os teste pra gente poder definir melhor. :D

    Abraços.

  3. Olá Amigos,

    Desculpe voltar com esses post sobre pegar serial físico de hd mas estou precisando de ajuda e os últimos posts que pesquisei aqui são de 2009!

    vamos lá.

    Estou utilizando o seguinte código

    unit Unit2;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls,WbemScripting_TLB,ActiveX;
    
    type
      TForm4 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form4: TForm4;
    
    implementation
    
    {$R *.dfm}
    
    function GetWMIstring (wmiHost, wmiClass, wmiProperty : string):string;
    var  // These are all needed for the WMI querying process
      Locator:  ISWbemLocator;
      Services: ISWbemServices;
      SObject:  ISWbemObject;
      ObjSet:   ISWbemObjectSet;
      SProp:    ISWbemProperty;
      Enum:     IEnumVariant;
      Value:    Cardinal;
      TempObj:  OleVariant;
      SN: string;
    begin
      try
      Locator := CoSWbemLocator.Create;  // Create the Location object
      // Connect to the WMI service, with the root\cimv2 namespace
       Services :=  Locator.ConnectServer(wmiHost, 'root\cimv2', '', '', '','', 0, nil);
      ObjSet := Services.ExecQuery('SELECT * FROM '+wmiClass, 'WQL',
        wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
      Enum :=  (ObjSet._NewEnum) as IEnumVariant;
      while (Enum.Next(1, TempObj, Value) = S_OK) do
      begin
        SObject := IUnknown(tempObj) as ISWBemObject;
        SProp := SObject.Properties_.Item(wmiProperty, 0);
        if VarIsNull(SProp.Get_Value) then
          result := ''
        else
        begin
          SN := SProp.Get_Value;
          result :=  SN;
        end;
      end;
      except // Trap any exceptions (Not having WMI installed will cause one!)
       on exception do
        result := '';
       end;
    end;
    
    procedure TForm4.Button1Click(Sender: TObject);
    var
    Y:string;
    
    begin
    
    
        Y:=GetWMIstring('','Win32_DiskDrive','SerialNumber')     ;
    
        ShowMessage('Serial fisico hd: ' + y);
    end;
    
    end.
    

    gostaria da ajuda de vocês pra identificar o porque que em determinado sistema operacional e hd não retorna serial.

    testei em XP/7 - x32 com HDs IDE/SATA

    alguém sabe me ajudar com esse problema??

    não testei em versão x64, acredito que também funcione.

    Gostaria também de identificar sobre qual ou quias dll esse código trabalha!

    aguardo ajudas :blink:

  4. Jhonas, Analisei o que você me mandou e cosegui chegar a um codigo aqui que funcionou corretamente!

    <code>

    function StringBetween(const Str, Str1, Str2: String): String;

    var

    Inicio, Fim : String;

    begin

    Inicio := Copy(Str, Pos(Str1, Str) + Length(Str1));

    // Pega o Texto Restante, iniciando ao final da variavel Str1;

    Fim := Copy(Inicio, 0, Pos(str2,Inicio) - 1);

    // Copia o Texto da posição inicial '0' até o Final, que é determinado pela posição inicial da variavel str2 menos '1' para corrigir;

    Result := Fim;

    end;

    procedure TForm1.Button1Click(Sender: TObject);

    var

    HTML: String;

    begin

    HTML := IdHTTP1.Get('http://elite-global.servegame.com/?subtopic=characters&name=' + Edit1.Text);

    memo1.Text := 'Nível: ' + StringBetween(HTML, '>Level:</TD><TD>', '</TD></TR>');

    end;

    </code>

    No que pesquisei, a Função Copy, pode ser determinada com 3 variaveis (texto, posição inicial, posição final);

    Funcionou o codigo!

    Obrigado! :lol:

  5. Ola a todos,

    Eu estou utilizando o IDHTTP para pegar o codigo html de um site!

    eu gostaria de pegar algumas informações na pagina e não estou conseguindo, axo que é por que o texto é muito grande e as chaves são repetidas!

    estou usando esse codigo:

    function StringBetween(const Str, Str1, Str2: String): String;

    begin

    Result := Copy(Str, Pos(Str1, Str) + Length(Str1), Pos(Str2, Copy(Str, Pos(Str1, Str) + Length(Str1), Length(Str))) - 1);

    end;

    procedure TForm1.Button1Click(Sender: TObject);

    var

    HTML: String;

    begin

    HTML := IdHTTP1.Get('http://elite-global.servegame.com/?subtopic=characters&name=' + Edit1.Text);

    memo1.Text := 'Nível: ' + StringBetween(HTML, 'Level:</td><td>', '</td>');

    end;

    mas minha função para pegar o texto entre as tags acredito não estar funcionando muito bem!

    me ajudem amigos! :blush:

  6. ah consegui arumar aqui jhonas!

    o que eu tinha feito de errado era que quando eu escrevia algo no teclado o foco do memo saia e ia para o botão

    só coloquei assim e funciono

    procedure TForm1.Button1Click(Sender: TObject);
    var
      KeyState: TKeyboardState;
    begin
    memo1.SetFocus; // coloquei para setar o foco ai funciono
    GetKeyboardState(KeyState);   // testar o estado do teclado
    
    
      if(KeyState[VK_BACK ] = 0) then
        begin
          Keybd_Event(VK_BACK , 1, KEYEVENTF_EXTENDEDKEY or 0, 0);
          Keybd_Event(VK_BACK , 1, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
        end
      else
        begin
          Keybd_Event(VK_BACK , 0, KEYEVENTF_EXTENDEDKEY or 0, 0);
          Keybd_Event(VK_BACK , 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
        end;
    end;

    obrigado jhonas valeu pela ajuda :D

  7. Para saber se a tecla BackSpace foi pressionada

    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
      if Key = VK_BACK then
        ShowMessage('A tecla Backspace foi pressionada');
    end;
    Simular o pressionamento da tecla BackSpace
    procedure TForm1.Button1Click(Sender: TObject);
    var
      KeyState: TKeyboardState; 
    begin
      GetKeyboardState(KeyState);   // testar o estado do teclado
    
    
      if(KeyState[VK_BACK ] = 0) then
        begin
          Keybd_Event(VK_BACK , 1, KEYEVENTF_EXTENDEDKEY or 0, 0);
          Keybd_Event(VK_BACK , 1, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
        end
      else
        begin
          Keybd_Event(VK_BACK , 0, KEYEVENTF_EXTENDEDKEY or 0, 0);
          Keybd_Event(VK_BACK , 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
        end;
    end;

    OBS: Veja se funciona

    não funciono ! :blush:

  8. opa tudo bem gente!!

    to vindo aqui mais uma vez pra pedir socorro pra v6!

    bom to criando um programa que sera utilizado em um computador touch screen para adminstrar residencias

    e nesse programa o usuario ira utilizar um teclado virtual que montei para digitar dados.

    estou com duvida, como faço a tecla de BackSpace no meu teclado virtual apagar as letras.(como a tecla normal faz no pc).

    as demais teclas estão funcionando certinho! so não sei como faço o botão backspace. ah esse teclado é integrado ao programa, ou seja, o usuario não tera de abrir o teclado virtual do windows ok.

    onde os dados estão sendo inseridos é um MEMO.

    se alguém poder me dar uma ajuda nisso! :D

    grato.

  9. opa boa tarde a todos!!

    bom, estou montando um webbrowser pelo delphi 7, segui o tutorial (link.)

    duvida:

    quero entrar no site do orkut pelo meu webbrowser.

    digito o site e ele entra na pagina do login normal, so que quando eu escrevo o username e a senha e do enter ele tenta direciona para a home do meu orkut e da esse erro:

    Invalid Floating point operation

    depois desse erro ele para de funcionar . (não abre mais nem um site diferente).

    oque esta acontecendo? e como aruma isso???

    grato.. :blink:

  10. Obrigado Jhonas pelos links!!

    ---

    marcos ps09

    não entendi como funciona o code q você me passou!!

    me da um exemplo uzando os campos q necessito uzar!

    ao axar a palavra ele pega o texto seguinte e o adiciona em um campo pre determinada

    ex:

    procura:= 'vantagens:'

    axou no texto

    vantagens:

    texto sobre vantagens

    final de vantagens.(palavra q encera ate onde devese pegar o texto)

    coloca esse texto em um memo.

    procura:= "Nome:'

    axa no texto

    Nome:

    fabiomiojo

    Final de Nome.(palavra q encera ate onde devese pegar o texto)

    coloca esse texto em um Edit.text.

    me desculpem se dou muito trabalho + so novato no delphi e não to conseguindo monta isso direito...

  11. alguém ??

    ah se v6 tiverem me mandem um totorial pra aprender a mexer com BD(so novato xD)!

    o programa q estou qerendo montar vai ter muitos dados e axo que fica mais facil se eu utilizar uma tabela onde os dados serão escritos em campos diferentes depois adicionados na tabela e depois ao clicar em abrir são estraidos para seus lugares de origem

    fazendo com arquivo txt vai fica muito grande!!

  12. Bom dia a todos!

    Estou criando um programa no qual ah varios campos a serem escritos.

    esses campos depois deveraum serem salvos em um arquivo.txt

    determinei que esses campos seraum add em um memo ao se clicar em salvar!

    agora o meu problema!

    quando o cliente clica em salvar os campos seraum adicionados no memo1 em ordem e para separar um campo do outro ele adiciona palavras chaves. <--(ate aqui é deboa)

    (agora q ta o bixo)

    quando o cliente clica em abrir o opendialog vai procurar no arquivo.txt salvo as palavraschaves e ira abrir em campos especificos o texto seguinte da palavrachave!

    ex:ao salvar;

    edit1.text entre palavra1 e 2

    ao abrir

    Procura palavra1 pega o texto entre a palavra 1 e 2, abri esse texto no edit1.text.

    ---

    tentei um code mais não sei se é o correto a se fazer nesse caso! e ta dando um erro q não tenho a minima de como arumar!(sou iniciante em delphi xD)

    segue code!

    procedure TForm1.Abrir1Click(Sender: TObject);
    Var
    NomeDoArquivo:String;
    v, x: integer;
    begin
    if OpenDialog1.Execute Then
    begin
    NomeDoArquivo:=OpenDialog1.FileName;
    begin
    for v:=Length('Vantagens') to x do
    x:=Length ('Historia');
    Memo1.Lines.LoadFromFile(NomeDoarquivo);
    end;
    begin
    for v:=Length('Nome:') + 1 to x do
    x:=Length ('Final');
    Edit1.text.LoadFromFile(NomeDoarquivo);
    end;
    
    End;
    end;

    o erro:

    [Error] fichadet.pas(196): Record, object or class type required

    me ajudem plx!!

×
×
  • Criar Novo...