Chamar calculadora do Windows, Como Faço?
20/03/2006
0
Gostaria de saber como faco para chamar a calculadora do Windows
a partir da versao 98 atraves do meu aplicativo.
Grato.
Developerb
Posts
20/03/2006
Paullsoftware
WinExc(´C:\Windows\Calc.exe´,SW_NORMAL);
acho que isso resolve! :wink:
20/03/2006
Paulocesar1301
ShellExecute(0, nil, PChar(´CALC.EXE´), nil, nil, SW_ShowNORMAL);
20/03/2006
Developerb
definir o local onde ela devera aparecer.
Tipo a minha ideia seria na frente do Aplicativo estila( ShowModal ) e centralizado na tela.
20/03/2006
Martins
Trabalhe com o Handle da Janela da Calculadora.
20/03/2006
Adriano Santos
procedure TForm1.Button1Click(Sender: TObject); var H : HWND; begin H := FindWindow(nIl, ´Calculadora´); if H > 0 then //Calculadora jah aberta SetForegroundWindow(H) else begin WinExec(´C:\WINNT\SYSTEM32\CALC.EXE´, SW_SHOWNORMAL); SetForegroundWindow(h); end; end;
20/03/2006
Adriano Santos
procedure TForm1.Button1Click(Sender: TObject); var H : HWND; Pt: TPoint; rRect : TRect; begin GetCursorPos(Pt); H := FindWindow(nil, ´Calculadora´); if H > 0 then //Calculadora jah aberta begin //pega o retângulo da janela GetWindowRect(h, rRect); //move a janela para a posição do mouse MoveWindow(H, Pt.X, Pt.Y, rRect.Right - rRect.Left, rRect.Bottom - rRect.Top, True); //puxa pra frente a calculadora SetForegroundWindow(h); end else begin //Abre WinExec(´C:\WINNT\SYSTEM32\CALC.EXE´, SW_SHOWNORMAL); //Atualiza a variaval H com o handle da janela (agora aberta) H := FindWindow(nil, ´Calculadora´); //pega o retângulo da janela GetWindowRect(h, rRect); //move a janela para a posição do mouse MoveWindow(H, Pt.X, Pt.Y, rRect.Right - rRect.Left, rRect.Bottom - rRect.Top, True); //puxa pra frente a calculadora SetForegroundWindow(h); end; end;
20/03/2006
Developerb
var H: HWND; >>Erro: CONSTANT or Type Indetifier Expected
20/03/2006
Martins
var H: HWND; >>Erro: CONSTANT or Type Indetifier Expected
Mas deveria dar erro algum, verifique se vc tem a unit [b:c37ed0a432]Windows[/b:c37ed0a432] declarada no [b:c37ed0a432]uses[/b:c37ed0a432]
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; .... procedure TForm1.Button1Click(Sender: TObject); var H : HWND; Pt: TPoint; rRect : TRect; begin GetCursorPos(Pt); H := FindWindow(nil, ´Calculadora´); if H > 0 then //Calculadora jah aberta begin //pega o retângulo da janela GetWindowRect(h, rRect); //move a janela para a posição do mouse MoveWindow(H, Pt.X, Pt.Y, rRect.Right - rRect.Left, rRect.Bottom - rRect.Top, True); //puxa pra frente a calculadora SetForegroundWindow(h); end else begin //Abre a Calculadora sem precisar do caminho, ela já está no path do windows. WinExec(´CALC.EXE´, SW_SHOWNORMAL); //Atualiza a variaval H com o handle da janela (agora aberta) H := FindWindow(nil, ´Calculadora´); //pega o retângulo da janela GetWindowRect(h, rRect); //move a janela para a posição do mouse MoveWindow(H, Pt.X, Pt.Y, rRect.Right - rRect.Left, rRect.Bottom - rRect.Top, True); //puxa pra frente a calculadora SetForegroundWindow(h); end; end;
Boa sorte!!!
20/03/2006
Adriano Santos
var H: HWND; >>Erro: CONSTANT or Type Indetifier Expected
Mas deveria dar erro algum, verifique se vc tem a unit [b:44a26fab80]Windows[/b:44a26fab80] declarada no [b:44a26fab80]uses[/b:44a26fab80]
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; .... procedure TForm1.Button1Click(Sender: TObject); var H : HWND; Pt: TPoint; rRect : TRect; begin GetCursorPos(Pt); H := FindWindow(nil, ´Calculadora´); if H > 0 then //Calculadora jah aberta begin //pega o retângulo da janela GetWindowRect(h, rRect); //move a janela para a posição do mouse MoveWindow(H, Pt.X, Pt.Y, rRect.Right - rRect.Left, rRect.Bottom - rRect.Top, True); //puxa pra frente a calculadora SetForegroundWindow(h); end else begin //Abre a Calculadora sem precisar do caminho, ela já está no path do windows. WinExec(´CALC.EXE´, SW_SHOWNORMAL); //Atualiza a variaval H com o handle da janela (agora aberta) H := FindWindow(nil, ´Calculadora´); //pega o retângulo da janela GetWindowRect(h, rRect); //move a janela para a posição do mouse MoveWindow(H, Pt.X, Pt.Y, rRect.Right - rRect.Left, rRect.Bottom - rRect.Top, True); //puxa pra frente a calculadora SetForegroundWindow(h); end; end;
Boa sorte!!![/quote:44a26fab80]
É isso mesmo Martins, precisa da unit Windows, só isso.
20/03/2006
Developerb
Coloquei o seguinte >>
var H : THandle
Funcionou corretamente, fica agradecido pela ajuda de todos...
20/03/2006
Adriano Santos
var H : THandle
Tranquilo, ambos os tipos estão declarados em Windows, com uma particularidade:
[quote:0c111734ad=´Declaração de THandle na unit Windows´]
THandle = System.THandle;
{Note que o THandle está vindo da unit System}
[quote:0c111734ad=´Declaração do THandle na unit System´]
THandle = LongWord;
[/quote:0c111734ad]
[/quote:0c111734ad]
Já HWND é declarada desta forma também na Unit Windows:
[quote:0c111734ad=´Declaração de HWND na unit Windows´]
HWND = type LongWord;
[/quote:0c111734ad]
É isso ai :D
20/03/2006
Martins
var H : THandle
Tranquilo, ambos os tipos estão declarados em Windows, com uma particularidade:
[quote:5f61936e8d=´Declaração de THandle na unit Windows´]
THandle = System.THandle;
{Note que o THandle está vindo da unit System}
[quote:5f61936e8d=´Declaração do THandle na unit System´]
THandle = LongWord;
[/quote:5f61936e8d]
[/quote:5f61936e8d]
Já HWND é declarada desta forma também na Unit Windows:
[quote:5f61936e8d=´Declaração de HWND na unit Windows´]
HWND = type LongWord;
[/quote:5f61936e8d]
É isso ai :D[/quote:5f61936e8d]
É isso aí Adriano, informação é sempre bem vinda, ainda mais para a galera q está iniciando.
Valew.
04/05/2006
Carlos_tedex
Essa dica sobre ´posicionar a calculadora perto do mouse´ me ajudou p/ posicionar a calculadora em um ponto XY da tela que eu precisava... valew...
04/05/2006
Adriano Santos
Que isso, é um prazer ajudar os camaradas...
As ordens sempre.
Clique aqui para fazer login e interagir na Comunidade :)