Chamar calculadora do Windows, Como Faço?
Olá!!
Gostaria de saber como faco para chamar a calculadora do Windows
a partir da versao 98 atraves do meu aplicativo.
Grato.
Gostaria de saber como faco para chamar a calculadora do Windows
a partir da versao 98 atraves do meu aplicativo.
Grato.
Developerb
Curtidas 0
Mais Respostas
Paullsoftware
20/03/2006
WinExc(´C:\Windows\Calc.exe´,SW_NORMAL);
acho que isso resolve! :wink:
GOSTEI 0
Paulocesar1301
20/03/2006
Declare ShellAPI no seu Uses e:
ShellExecute(0, nil, PChar(´CALC.EXE´), nil, nil, SW_ShowNORMAL);
GOSTEI 0
Developerb
20/03/2006
Gostaria de saber como faco para chamar a calculadora somente um VEZ e
definir o local onde ela devera aparecer.
Tipo a minha ideia seria na frente do Aplicativo estila( ShowModal ) e centralizado na tela.
definir o local onde ela devera aparecer.
Tipo a minha ideia seria na frente do Aplicativo estila( ShowModal ) e centralizado na tela.
GOSTEI 0
Martins
20/03/2006
Gostaria de saber como faco para chamar a calculadora somente um VEZ e
definir o local onde ela devera aparecer.
Tipo a minha ideia seria na frente do Aplicativo estila( ShowModal ) e centralizado na tela.
Trabalhe com o Handle da Janela da Calculadora.
GOSTEI 0
Adriano Santos
20/03/2006
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;
GOSTEI 0
Adriano Santos
20/03/2006
Você ainda pode fazer algo mais legal, posicionar a calculadora perto do mouse, veja um exemplo simples:
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;
GOSTEI 0
Developerb
20/03/2006
Esta dando erro de Execucao na seguinte linha....
var H: HWND; >>Erro: CONSTANT or Type Indetifier Expected
GOSTEI 0
Martins
20/03/2006
Esta dando erro de Execucao na seguinte linha....
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!!!
GOSTEI 0
Adriano Santos
20/03/2006
[quote:44a26fab80=´DeveloperB´]Esta dando erro de Execucao na seguinte linha....
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.
GOSTEI 0
Developerb
20/03/2006
Acertei o problema referente ao tipo da variavel declarada....
Coloquei o seguinte >>
Funcionou corretamente, fica agradecido pela ajuda de todos...
Coloquei o seguinte >>
var H : THandle
Funcionou corretamente, fica agradecido pela ajuda de todos...
GOSTEI 0
Adriano Santos
20/03/2006
Acertei o problema referente ao tipo da variavel declarada....
Coloquei o seguinte >>
Funcionou corretamente, fica agradecido pela ajuda de todos...
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
GOSTEI 0
Martins
20/03/2006
[quote:5f61936e8d=´Adriano Santos´]
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.
Acertei o problema referente ao tipo da variavel declarada....
Coloquei o seguinte >>
Funcionou corretamente, fica agradecido pela ajuda de todos...
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.
GOSTEI 0
Carlos_tedex
20/03/2006
Caro Adriano Santos,
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...
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...
GOSTEI 0
Adriano Santos
20/03/2006
Caro Adriano Santos,
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...
Que isso, é um prazer ajudar os camaradas...
As ordens sempre.
GOSTEI 0