Ir para conteúdo
Fórum Script Brasil

Paulo Nobre

Membros
  • Total de itens

    717
  • Registro em

  • Última visita

Tudo que Paulo Nobre postou

  1. Por qual motivo quando abrimos um projeto pela primeira vez o nome que aparece na barra de título é project1(ou o nome que foi dado na hora de salvar o projeto) e não form1 como o do caption do form? Afinal, quando clicamos na barra de tarefas, em cima do nome, não estamos clicando indiretamente no form1? Sei que é possivel mudar para form1, fazendo Application.Title:=Form1.caption, por exemplo no evento OnShow do form1.
  2. Olá,s3c, O número que aparece é o 4294967295
  3. Churc Deu para entender sim!! Valeu e muito obrigado.
  4. s3c Para abrir está funcionando normalmente!! Para fechar, não. O código do button4click é: procedure TForm1.Button4Click(Sender: TObject); const IOCTL_Storage_Eject_Media = $002D4808; IOCTL_Storage_Load_Media = $002D480C; var hDevice:THandle; dRet:DWord; begin HDevice := CreateFile(PChar('\\.\g:'), Generic_Read or Generic_Write, 0, nil, Open_Existing, 0, 0); //DeviceIoControl(hDevice, IOCTL_Storage_Eject_Media, nil, 0, nil, 0, dRet, nil); // Ejeta DeviceIoControl(hDevice, IOCTL_Storage_Load_Media, nil, 0, nil, 0, dRet, nil); // Fecha CloseHandle(hDevice); end;
  5. .... S:THandle ..... S := FindWindow(nil, 'Semelhança de triângulos'); ...... If S>0 Then SendMessage(S,WM_CLOSE,0,0); Uso a idéia do código acima para fechar uma janela. Gostaria de saber o seguinte: 1) O significado da variável nil do findexist, naquela posição. 2) Quais seriam outros parâmetros que teria para o lugar ocupado por nil, com algum exemplo se possível? 3) Quando se usa a função FindWindowsEx, e qual diferença para a anterior ,FindWindow? 4) Na função SendMessage, o que significam os parâmetros (dois últimos)0,0? 5) Quais outros valores poderiam ocupar o lugar deles, se possível com algum exemplo? Abusei? :P
  6. Olá, s3c Sim Abaixo do Meu Computador no mesmo nível do CDROM Unidade de DVD-RAM(G:) Mas, eu já havia dito, s3c,no post acima do seu(#16), que funcionou para mim. O que eu disse foi o seguinte: Tem como? Não havendo, a única coisa que me vem a cabeça é fazer uso do velho e amigo registro. Na primeira vez que usar o comando , abre uma tela para o usuário dizer qual a letra correspondente ao seu DVD, grava no registro e sempre que abrir o programa trás ela para o lugar ocupado pelo 'E" no código acima. Alguém tem outra idéia melhor? Testei DeviceIoControl(hDevice, IOCTL_Storage_Load_Media, nil, 0, nil, 0, dRet, nil); // Fecha Aqui não funciona. O compilador esta mandando também as mensagens de que: [Hint] Unit1.pas(91): Value assigned to 'hDevice' never used [Hint] Unit1.pas(89): Variable 'dRet' is declared but never used in 'TForm1.Button4Click'
  7. s3c, usando SA.NameSpace(17).ParseName('G:\').InvokeVerb('E&jetar'); funciona!! Pena que não teria um análogo para fechar!! Mas, como eu faço para descobrir. via código, qual a letra do DVD. Tem algum código, tipo daqueles ,que descobrem onde está instalado o windows?
  8. s3c, testei, mas não funcionou. Tenho os dois dispositivos e não funcionou. Será que é porque tem os dois? A propósito, como poderia descobrir qual o diretório que está instalado o DVD?(Via código é claro?) Porque com esse abaixo : mciSendString('Set cdaudio door open wait', nil, 0, handle); ele abre o dispositivo sempre do cd quando tem os dois e abre o do dvd quando so tem ele. Para fechar é só trocar o opem pelo close. Ou seja, ele não precisa saber qual é a letra onde está o CD.
  9. Paulo Nobre

    Regedit

    s3c, realmente seu código é muito mais simples e direto.
  10. Paulo Nobre

    Regedit

    Realmente s3c,com esta unit os erros pararam de ocorrer, se bem que acho que não estou sabendo onde colocar o código do Micheus. Mas, como seria isso em cima do seu código, s3c?
  11. Paulo Nobre

    Regedit

    Micheus Tentei testar seu código, mas estou recebendo as seguintes mensagens de erro: undeclared identifier HTREEITEM. undeclared identifier TTVITEM. undeclared identifier TVM_GETITEM.
  12. Paulo Nobre

    Regedit

    Micheus, realmente, quando postei o objetivo era acessar a chave a partir de uma string já conhecida como existente. Pois ela estaria disponivel num listbox proveniente do registro. Porém, depois cheguei a conclusão que poderia usar para uma pesquisa, tipo digitar o caminho num edit e mandar abrir. Existem chaves que todos sabem de cabeça, como exemplo a do RUN. É claro que neste caso qualquer um de nós poderia digitar algo semelhante ao verdadeiro ou digitar errado. Neste caso não saberia como fazer, até ler o seu post que tira esta dúvida. Bem interessante este código, Micheus. Essa idéia surgiu observando o programa RegAlyzer, do mesmo autor do programa Spybot (esse todos devem conhecer). O link é o seguinte: http://www.spybot.info/pt/regalyzer/index.html Neste programa, muito interessante para quem precisa acessar determinadas chaves do registro com rapidez o autor não fornece esta possibilidade(pelo menos que eu tenha percebido), a de abrir com foco numa string. Já no também famoso RegMon 7.03 isso já é possível. http://superdownloads.uol.com.br/download/10/regmon-(nt-xp)/ Aí fiquei pensando se um faz e o outro não é porque não deve ser tão simples, mas é possível, aí postei a pergunta!! Eu é que agradeço a todos vocês por essa oportunidade de aprender um pouco mais.
  13. Paulo Nobre

    Regedit

    s3c, deu para ter uma boa idéia geral. Obrigado por mais esta ajuda. Graymalkin, obrigado por seu link, pois ele é que deu origem a série.
  14. Paulo Nobre

    Regedit

    s3c, obrigado, funcionou perfeitamente. Você poderia, quando tiver tempo, dar uma explicada no código, seguindo sua sequência. Não entendo bem, principalmente: Os FindWindow e os SendMessage. Não o que as funções fazem, mas sim porque aqueles parâmetros; SysTreeView32, SysListView32, WM_KeyDown, VK_Left, Ord(sKey)...
  15. Paulo Nobre

    Regedit

    Não entendi o post sugerido pelo GrayMalkin, mas me lembrei ter lido que era necessário um tempo para atualizar o listView e lá tinha // have to wait for Regedit to update the listview Sleep(1000); Aí na pura intuição coloquei sleep(1000) entre ShellExecute (0,'open',C:\Windows\System32\Regedt32.exe,nil,nil,SW_SHOWNORMAL); e o seu código e funcionou. Não sei se esta é a melhor maneira mas, funcionou. Inclusive o efeito é interessante pois você vê o programa ir abrindo as chaves até chegar a chave requerida. É isso mesmo ou tem algo mais inteligente??
  16. Paulo Nobre

    Regedit

    Coloquei a procedure que você criou no evento OnClick de um botão. Se abro o regedit manualmente e depois clico no botão o código é executado corretamente. Se abro o regedit via código não funciona. Tentei: 1)Colocar logo depois do begin no seu código ShellExecute (0,'open',C:\Windows\System32\Regedt32.exe,nil,nil,SW_SHOWNORMAL); Não funcionou. 2) Limpar a chave antes de chamar o regedit:(logo depois do begin do seu código) reg.RootKey:= HKEY_CURRENT_USER; reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit',False); reg.WriteString('LastKey','Meu Computador'); ShellExecute (0,'open',C:\Windows\System32\Regedt32.exe,nil,nil,SW_SHOWNORMAL); Não funcionou. O que pode estar havendo?
  17. Paulo Nobre

    Regedit

    Qualquer exemplo serviria. Fazendo com um acho que serviria para qualquer outro, não? Por exemplo: HKEY_LOCAL_MACHINE\SOFTWARE\Borland\BLW32\BLAPIPATH A minha idéia para implementar o código seria o usuário clicar num caminho num listbox, que contém caminhos do regedit e ao clicar num botão ele abrir o regedit na chave e numa string ou outro tipo de valor qualquer. O código acima seria um exemplo. Mas tendo o código para abrir com foco na string, a parte do listbox acho que seria fácil.
  18. Paulo Nobre

    Regedit

    Olá, s3c, obrigado pela tradução. Parece que é bem trabalhoso, né? A idéia parece que é bem inteligente!! Não é a toa que poucos programas usam isto. Se um dia você tiver tempo e quiser, e puder escreve o código prá mim.
  19. Paulo Nobre

    Regedit

    Realmente não entendi. Não conheço nada de C++.
  20. Paulo Nobre

    Regedit

    Obrigado Graymalkin, embora não entenda nada de c++ vou baixar e dar uma olhada.
  21. Paulo Nobre

    Regedit

    Abrir o regedit não é o problema. ShellExecute (0,'open',C:\Windows\System32\Regedt32.exe,nil,nil,SW_SHOWNORMAL); Abrir numa determinada chave também não é o problema. reg.RootKey:= HKEY_CURRENT_USER; reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit',False); reg.WriteString('LastKey','Coloque aqui o caminho que deseja mostrar quando abrir o regedit'); Coloque o código acima e em seguida o shellexecute que o regedit abrirá no caminho especificado. E a dúvida? A dúvida é o seguinte: Quero abrir o regedit numa chave com foco numa string de uma chave. Suponha a chave HKEY_LOCAL_MACHINE\SOFTWARE\Borland\BLW32 Nesta chave existe a string 'BLAPIPATH'. Quero abrir o regedit nesta chave(isto consigo com o descrito acima), só que com foco na string 'BLAPIPATH'.Isto não consigo Colocando HKEY_LOCAL_MACHINE\SOFTWARE\Borland\BLW32\BLAPIPATH. Nada acontece. Alguém tem alguma idéia?
  22. Churc Realmente parece que existiriam muitos cuidados a serem tomados!! Thales O que você quer dizer com as outras aplicações tomarem as devidas providências? No caso de mandar a mensagem WM_TIMECHANGE, o que você está mensionando seria usar: { Private declarations } procedure WMTIMECHANGE(var Message: TWMTIMECHANGE); message WM_TIMECHANGE; // e depois: procedure TForm1.WMTIMECHANGE(var Message: TWMTIMECHANGE); begin //Código end; Você teria algum exemplo para isto, ou é meio chato de criar um exemplo com código??
  23. Num outro fórum alguém perguntou: Como Acertar O Relógio Do Sistema? A resposta foi a seguinte: procedure AjustaDataHoraSistema(Data, Hora: TDateTime); var DataHora: TSystemTime; Ano, mês, Dia, H, M, S, Mil: word; begin Data := StrToDate(Edit1.Text); Hora := StrToTime(Edit2.Text); DecodeDate(Data, Ano, mês, Dia); DecodeTime(Hora, H, M, S, Mil); with DataHora do begin wYear := Ano; wMonth := mês; wDay := Dia; wHour := H; wMinute := M; wSecond := S; wMilliseconds := Mil; end; SetLocalTime(DataHora); end; Quer dizer que todos aqueles programas do passado que baseavam o seu tempo de uso em data e hora estariam ferrados com este código acima? Teria como desabilitar o acesso ao relógio do sistema?
  24. Paulo Nobre

    Checkbox

    CheckBox1.OnClick:=nil; //Faça o que você quiser, meu filho. CheckBox1.OnClick:=CheckBox1Click; Thales, Funcionou perfeitamente.
×
×
  • Criar Novo...