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. descobri que se faz da seguinte maneira: ShellExecute(handle,'open','mailto: email@provedor.com.br,nil,nil,SW_SHOW) Paulo Nobre
  2. Prezados colegas Winexec('C:\arquivos de programas\outlook express\msimn.exe',SW_ShowNormal);é um código para abrir o outlook pelo delphi. Mas estou precisando de um código que abra o outlook, já na janela de escrita da mensagem com o email alobrasil@ig.com.br, já digitado. Dois outros problemas que tenho são os seguintes: 1)o local onde se encontra o outlook no windows 98 não é o mesmo onde se encontra no XP.Como resolveria o problema, num único código? 2) Em relação ao código acima como faria no sistema operacional em inglês que usa Program files ao invés de arquivos de programas Obrigado a quem se dispuser a ajudar Paulo Nobre
  3. Obrigado a você, William, pela gentileza de sua atenção. Paulo Nobre
  4. Para todos que se dispuseram a ler ou tentar ajudar, consegui através de um colaborador(T@Z) de um outro forum este código: esta função foi retirada do programa "API-Guide" disponivel para download em "http://www.allapi.net"(palavras dele) 'Insira isto em um módulo Private Const EWX_LOGOFF = 0 Private Const EWX_SHUTDOWN = 1 Private Const EWX_REBOOT = 2 Private Const EWX_FORCE = 4 Private Const TOKEN_ADJUST_PRIVILEGES = &H20 Private Const TOKEN_QUERY = &H8 Private Const SE_PRIVILEGE_ENABLED = &H2 Private Const ANYSIZE_ARRAY = 1 Private Const VER_PLATFORM_WIN32_NT = 2 Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 End Type Type LUID LowPart As Long HighPart As Long End Type Type LUID_AND_ATTRIBUTES pLuid As LUID Attributes As Long End Type Type TOKEN_PRIVILEGES PrivilegeCount As Long Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES End Type Private Declare Function GetCurrentProcess Lib "kernel32" () As Long Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long Private Declare Function LookupPrivilegeValue Lib "advapi32" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long 'Detect if the program is running under Windows NT Public Function IsWinNT() As Boolean Dim myOS As OSVERSIONINFO myOS.dwOSVersionInfoSize = Len(myOS) GetVersionEx myOS IsWinNT = (myOS.dwPlatformId = VER_PLATFORM_WIN32_NT) End Function 'set the shut down privilege for the current application Private Sub EnableShutDown() Dim hProc As Long Dim hToken As Long Dim mLUID As LUID Dim mPriv As TOKEN_PRIVILEGES Dim mNewPriv As TOKEN_PRIVILEGES hProc = GetCurrentProcess() OpenProcessToken hProc, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken LookupPrivilegeValue "", "SeShutdownPrivilege", mLUID mPriv.PrivilegeCount = 1 mPriv.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED mPriv.Privileges(0).pLuid = mLUID ' enable shutdown privilege for the current application AdjustTokenPrivileges hToken, False, mPriv, 4 + (12 * mPriv.PrivilegeCount), mNewPriv, 4 + (12 * mNewPriv.PrivilegeCount) End Sub ' Shut Down NT Public Sub ShutDownNT(Force As Boolean) Dim ret As Long Dim Flags As Long Flags = EWX_SHUTDOWN If Force Then Flags = Flags + EWX_FORCE If IsWinNT Then EnableShutDown ExitWindowsEx Flags, 0 End Sub 'Restart NT Public Sub RebootNT(Force As Boolean) Dim ret As Long Dim Flags As Long Flags = EWX_REBOOT If Force Then Flags = Flags + EWX_FORCE If IsWinNT Then EnableShutDown ExitWindowsEx Flags, 0 End Sub 'Log off the current user Public Sub LogOffNT(Force As Boolean) Dim ret As Long Dim Flags As Long Flags = EWX_LOGOFF If Force Then Flags = Flags + EWX_FORCE ExitWindowsEx Flags, 0 End Sub crie um formulário com 3 botões Private Sub Command1_Click() LogOffNT True End Sub Private Sub Command2_Click() RebootNT True End Sub Private Sub Command3_Click() ShutDownNT True End Sub Private Sub Form_Load() 'KPD-Team 2000 'URL: http://www.allapi.net/ 'E-Mail: KPDTeam@Allapi.net Command1.Caption = "Log Off NT" Command2.Caption = "Reboot NT" Command3.Caption = "Shutdown NT" End Sub tive que adaptar o código no shutdown, colocando flag = EWX_POWEROFF e incluindo const = EWX_POWEROFF = 8, pois se não fizesse isto não desligava direto e sim aparecia aquela tela final dizendo que agora o computador já pode ser desligado. Por outro lado veja como programação tem detalhes e é dificil(pra mim que sou leigo-sou professor de matemática e uso prá brincar) nos computadores "caseiros"(sem senha) tudo bem,mas, levei para testar na escola onde trabalho que tem Windows 98, pois estava cabreiro com o fato do código fazer o teste em cima do NT.Como os computadores tem senha (acho que este é o problema), na hora programada do alarme para desligar, ao invés de desligar,aparecia a caixa da senha para entrar no sitema, mas não desligava e ainda para piorar o programa desaparecia da tela e ficava em segundo plano. ou seja o problema continua obrigado a quem se dispuser a ajudar Paulo Nobre
  5. Valeu pela explicação s3c, deu pelo menos para ter uma noção do que está acontecendo e não simplesmente estar copiando e colando código. Paulo Nobre
  6. Valeu s3c, desta vez funcionou! Muito obrigado, embora não tenha entendido o código. Paulo Nobre
  7. s3c, tentei todas as combinações possíveis e a única coisa que consegui como já havia mencionado foi ao usar: ExitWindowsEx(EWX_FORCE, 0); fazer aparecer a tela de logon com o meu nome para eu bootar de novo. Desligar mesmo não consigo nem a pau. É muito estranho isto!!! De qualquer forma muito obrigado. Paulo Nobre
  8. s3c, obrigado se der certo postarei aqui. Paulo Nobre
  9. Alguém saberia dizer por que, pelo menos no meu XP home a função da API ExitWindowsEx com o parâmetro 1 não funciona. ExitWindowsEx (EWX_FORCE,0) funciona, mas aparecendo tela para fazer logon ExitWindowsEx (1,0) que seria para desligar não funciona. Alguém tem alguma idéia. Uso isto num programa simples de alarme que funcionava normalmente no Win9x e Me. Obrigado pela ajuda Paulo Nobre
  10. Tentei usar ExitWindowsEx(EWX_Force,0), mas desta forma ele não desliga, apenas aparece a tela para reiniciar com logon. Foi tentada também uma sugestão de um colega de outro forum, que seria combinar 1 + EWX_Force mas nada acontece. Alguém poderia ajudar? Existe alguma outra API para desligar? Obrigado Paulo Nobre
  11. Tenho um alarme simples que usa a função API do windows ExitWindowsEx Para desligar o computador na hora estabelecida uso a constante EWX_SHUTDOWN = 1, da seguinte maneira Dim Dummy as long Dummy = ExitWindowsEx(1,0) A função API é: Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long declarada no option explicit do form que faz sua chamada. O problema é que funciona no Win98 e Me, mas não funciona no XP. Alguém saberia dizer por que? Obrigado pela atenção Paulo Nobre
  12. Desculpe, ter disperdiçado o seu tempo s3c, mas embora eu tenha escrito aqui no forum com letra minúscula, na tabela está tudo com letra maiúscula. Quando chegar em casa, vou estudar as sugestões coloadas por vocês. Paulo Nobre
  13. s3c, desculpe, mas não entendi nada. Você poderia dar uma explicação prática para quem não entende quase nada de banco de dados como eu? Obrigado PS. Desta forma que você está falando eu conseguiria usar os mais de cem dados já digitados? Paulo Nobre
  14. O que é este tal de dbisam? A propósito, quando se usa o access não existe este problema de acento na ordem alfabética.
  15. Paulo Nobre

    #22

    Não testei, pois estou tentando resolver o pepino da outra dúvida que postei.
  16. Paulo Nobre

    #22

    valeu, Paulo Nobre
  17. Paulo Nobre

    #22

    Estes que não têm nada do lado correspondem ao que? O s3c usou #22 para ctrl+v. Por exemplo ctrl+C seria como? obrigado corposemalma Paulo Nobre
  18. Paulo Nobre

    #22

    Numa resposta dada pelo colaborador s3c ele usou #22 como key para ctrl+v. Apergunta é onde consigo todos os outros códigos como este para usar em key. Alguém saberia qual é a palavra chave para digitar no help do delphi7 ou poderia coloar todos eles aqui no forum. Obrigado Paulo Nobre
  19. Prezados colegas Fiz um pequeno banco de dados, tabela paradox7.0 onde tenho três campos(em tdbedits): país, capital e continente. Não entendi a ordem alfabética como ele foi tratado, pois no campo país digitei:áfrica do sul, angola, argélia, gâmbia e guiné. mas, ele faz questão em deixar na seguinte ordem: angola, argélia, guiné, gâmbia e áfrica do sul. Me parece que o acento do a da áfrica e o acento do a de gâmbia fazem isto. Por que? como faço para endireitar isto. Gostaria mesmo da ordem alfabética, conforme fosse digitando no tdbedit. Onde está a propriedade sort? Paulo Nobre
  20. s3c, muito obrigado de novo, aprendi bastante com este tópico. Paulo Nobre
  21. Obrigados3c funcionou. Essas APIs que você fala são as API internas do windows? por que não e necessário declará-las? Elas já estão em alguma USES? Esse @ significa o quê? Se em algum momento, sem querer abusar, você puder explicar um pouquinho o código, agradeceria. MUITO OBRIGADO Paulo Nobre
  22. Via explorer através de ctrl+c
  23. s3c, fiz de novo,os testes que você falou e ficou o seguinte: -Criando uma imagem com o paint, selecionando tudo e fazendo CTRL+C FUNCIONA. -mandando um bpm por ctrl+ c, via explorer, NÃO funciona. -Abrindo a figura no paint, mandando selecionar tudo, copiando, FUNCIONA. -fazendo print screen FUNCIONA. Ou seja, funciona da maneira que não interessa. Não estou entendendo o que está acontecendo. O programa é simplíssimo. Coloquei o código como você falou. Só tem uma UNIT Veja abaixo: unit UAgenda; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls, DB, DBTables,clipBrd; type TfrmAgenda = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; txtNome: TDBEdit; txtEndereco: TDBEdit; txtTelConvencional: TDBEdit; txtTelCelular: TDBEdit; txtEmail: TDBEdit; Label6: TLabel; txtComentarios: TDBMemo; cmdSair: TSpeedButton; DBNavigator1: TDBNavigator; Table1: TTable; DataSource1: TDataSource; DBImage1: TDBImage; procedure cmdSairClick(Sender: TObject); procedure DBImage1KeyPress(Sender: TObject; var Key: Char); { Private declarations } public { Public declarations } end; var frmAgenda: TfrmAgenda; implementation //Uses //clipbrd;tinha colocado aqui achando que o erro poderia ser este. {$R *.dfm} procedure TfrmAgenda.cmdSairClick(Sender: TObject); begin Close; end; procedure TfrmAgenda.DBImage1KeyPress(Sender: TObject; var Key: Char); begin If (key =#22) and clipboard.HasFormat(CF_Picture) Then begin DBImage1.Picture.Assign(Clipboard); DBImage1.Stretch := True; DBImage1.Refresh; end; end; end. De qualquer forma muito obrigado Paulo Nobre
×
×
  • Criar Novo...