Solved

Using Windows calculator

Posted on 2002-05-05
8
186 Views
Last Modified: 2010-04-04
Hi there,

To use the calculator from Windows, I use the following line:

ShellExecute(0,nil,pchar('C:\WINDOWS\CALC.EXE'),nil,nil,sw_shownormal);

This is working fine...

Now I have the following question: Before I execute this calculator I want to check if there is already an instance active. And if there is already a calculator active then I would like to set the focus on that one. In other words: not opening a new instance anymore. If minimized then (of course) I would like to maximize before setting the focus on the calculator.

Please provide me with a complete example.

Thank you very much!

RoosieDB
0
Comment
Question by:roosiedb
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 8

Accepted Solution

by:
Cesario earned 50 total points
ID: 6990574
Hi RoosieDb,

procedure TForm1.Button1Click(Sender: TObject);
VAR
  hCalc : THandle;
begin
  // In Germany is the Caption of Calculator Window is "Rechner" so
  // you have to change it to Calculator
  HCalc := FindWindow ( NIL,'Rechner');
  IF HCalc <> 0 Then
  Begin
    Windows.SetForegroundWindow (hCalc);
    Windows.ShowWindow (hCalc,sw_normal);
  End
  Else ShellExecute(Handle,'OPEN','C:\Windows\CALC.EXE',nil,nil,sw_shownormal);
end;


Good Luck

Cesario
0
 
LVL 17

Expert Comment

by:inthe
ID: 6990588
or use classname instead of caption as this should be same for all languages:

HCalc := FindWindow( SciCalc,nil);

0
 
LVL 8

Expert Comment

by:Cesario
ID: 6990589
inthe, did you recieved any mail Notifications form ExEx last 3 days?
0
 
LVL 44

Expert Comment

by:CrazyOne
ID: 6990688
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 17

Expert Comment

by:inthe
ID: 6990717
hi Cesario,
was just wondering same thing myself.
well i guess Crazyone answered us :)
0
 

Author Comment

by:roosiedb
ID: 7065411
Hi Cesario,

Your solution is working fine, however, I would like to implement your example in my application without changing it everytime when my users are using different languages.

So, if you can send me a solution to solve that issue I would be very happy. But it's not required, because this is already working for me.

Your colleague wrote something like HCalc := FindWindow(SciCalc,nil), but this is not working (error message).

Thank you anyway.
RoosieDB
0
 
LVL 8

Expert Comment

by:Cesario
ID: 7066751
Hi RossieDB,

I will try to find a solution today....

Best Regrads

Cesario
0
 

Author Comment

by:roosiedb
ID: 7067135
Hi Cesario,

I would be very grateful...
:-)

In other words: Danke sehr !!

RoosieDB
0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
This video discusses moving either the default database or any database to a new volume.
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now