AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) "Calc.exe" starten oder wenn bereits aktiv: SW_Restore schicken
Thema durchsuchen
Ansicht
Themen-Optionen

"Calc.exe" starten oder wenn bereits aktiv: SW_Restore schicken

Ein Thema von erich.wanker · begonnen am 24. Mai 2012 · letzter Beitrag vom 24. Mai 2012
Antwort Antwort
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#1

AW: "Calc.exe" starten oder wenn bereits aktiv: SW_Restore schicken

  Alt 24. Mai 2012, 14:56
Auf einem deutschen Windows, ja.
Geht auch nur mit der Klasse ohne Titel.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#2

AW: "Calc.exe" starten oder wenn bereits aktiv: SW_Restore schicken

  Alt 24. Mai 2012, 15:01
Das weiß ich auch. Nur denke ich mir, dass es zuverlässiger wäre, das Fenster über den Pfad zu ermitteln, es wird ja wohl kaum einer die calc.exe im System32-Ordner überschrieben haben. Problematisch wird das nur, wenn man sie in ein anderes Verzeichnis kopiert und daraus gestartet hat (aber wer macht denn sowas?).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#3

AW: "Calc.exe" starten oder wenn bereits aktiv: SW_Restore schicken

  Alt 24. Mai 2012, 15:10
Das weiß ich auch.
Hab ich auch nicht angezweifelt

Letzten Endes wird man immer ein Szenario konstruieren können, und sei es noch so unwahrscheinlich, in dem die aufwändigste Lösung nicht funktioniert.

Gruß, teebee
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#4

AW: "Calc.exe" starten oder wenn bereits aktiv: SW_Restore schicken

  Alt 24. Mai 2012, 15:16
Das ist leider so, man kann die möglichen Fehlerquellen allenfalls minimieren, aber nicht ausschließen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.630 Beiträge
 
Delphi 12 Athens
 
#5

AW: "Calc.exe" starten oder wenn bereits aktiv: SW_Restore schicken

  Alt 24. Mai 2012, 18:36
Also ich löse exakt dieses Problem mit Hilfe von madExcept, genauer gesagt mit madKernel:

Delphi-Quellcode:
const
  SSciCalc = 'SciCalc';
  SCalcExe = 'calc.exe';
var
  prc: IProcess;
  win: IWindow;
  I: Integer;
begin
  prc := Process(SCalcExe);
  if not prc.IsValid then begin
    prc := NewProcess(SCalcExe);
    prc.WaitForInputIdle();
  end
  else begin
    prc.TaskbarWindows.Restore();
    prc.Restore();
    for I := 0 to prc.Windows_.ItemCount - 1 do begin
      win := prc.Windows_.Items[I];
      if SameText(win.ClassName, SSciCalc) then begin
        win.BringToTop();
        win.BringToForeground();
        Break;
      end;
    end;
  end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz