AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

anderes .exe programm mittels OnClick beenden

Ein Thema von marco1204 · begonnen am 24. Jan 2011 · letzter Beitrag vom 25. Jan 2011
Antwort Antwort
marco1204

Registriert seit: 24. Jan 2011
20 Beiträge
 
#1

anderes .exe programm mittels OnClick beenden

  Alt 24. Jan 2011, 22:09
Hallo alle zusammen.
Ich bin ein rellativer Delphi anfänger.
Ich will ein Programm, bei dem ich auf "blabla.exe starten" drücke, und somit dieses programm startet. Ich will es nutzen als zusammenstellung von Keybindern.
da hat mir google schon geholfen, das funktioniert auch
es erscheint ein Panel auf dem ich dann Informationen schreibe zu den Keybindern.
auf diesem Panel soll dann wieder ein Button sein mit dem ich dieses Programm "blabla.exe" wieder schließe.
aber wie mache ich das? google hat mich irgendwie nicht schlau gemacht.

Hier mein bissheriger Quelltext mit Rechner als Beispielprogramm:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellApi, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Panel1: TPanel;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Application.Handle,'open','calc.exe',''{Parameter},'c:\WinNT\System32',SW_SHOW);
  Panel1.Visible:=true
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
?
?
?
?
end;

end.
Die Fragezeichen sind halt das wo ich nicht weiter weiß.
hoffe ihr könnt helfen
danke im Vorraus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: anderes .exe programm mittels OnClick beenden

  Alt 24. Jan 2011, 22:35
Das Programm, bzw. dessen Hauptfenster suchen und über dessen Handle das der Anwendungsagen es sollsich beenden.

PS: Hier im Forum suchenProgramm beenden / Hier im Forum suchenfremdes Programm beenden


Optimaler wäre es aber, wenn du MSDN-Library durchsuchenShellExecuteEx oder MSDN-Library durchsuchenCreateProcess verwendest, denn diese liefern dir ein Handle zur Anwendung.
(es könnte ja sein, daß die blabla.exe mehrmals aktiv ist ... welche soll dann beendet werden)
$2B or not $2B
  Mit Zitat antworten Zitat
marco1204

Registriert seit: 24. Jan 2011
20 Beiträge
 
#3

AW: anderes .exe programm mittels OnClick beenden

  Alt 25. Jan 2011, 15:12
hm irgendwie werde ich nicht fündig.
also ich finde nur so riesen lange quelltexte?! und wenn ich die benutze funkt es auch nicht.
gibt es nicht irgendwie nen befehl den ich in OnClick einfüge, also nur so eine zeile oder so? also genauso wie ich das programm auch starte?!
also zumbeispiel so
close ('calc.exe') oder so ähnlich?!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: anderes .exe programm mittels OnClick beenden

  Alt 25. Jan 2011, 15:28
Klar, Du musst Dir nur eine entsprechende Routine schreiben.
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
marco1204

Registriert seit: 24. Jan 2011
20 Beiträge
 
#5

AW: anderes .exe programm mittels OnClick beenden

  Alt 25. Jan 2011, 15:31
wie meinst du das ich soll eine routine schreiben?!

Mein Motto: Überlasst alle das denken den Pferden, die haben nen größeren Kopf
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: anderes .exe programm mittels OnClick beenden

  Alt 25. Jan 2011, 15:34
Mit der Einstellung wirst Du hier aber nicht weit kommen. Und mit Routine meine ich sowas:
Delphi-Quellcode:
procedure MachIrgendwasGanzTolles;
begin
  //ganz viel Quelltext
end;

procedure TFormTest.ButtonSuperClick(Sender: TObject);
begin
  MachIrgendwasGanzTolles; //nur eine Zeile nötig
end;
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
marco1204

Registriert seit: 24. Jan 2011
20 Beiträge
 
#7

AW: anderes .exe programm mittels OnClick beenden

  Alt 25. Jan 2011, 16:04
nein der staz war ja bloß spaß
ja ich hab schon verschiedenes ausprobiert. bloß auf keinen grünen zweig gestoßen
  Mit Zitat antworten Zitat
marco1204

Registriert seit: 24. Jan 2011
20 Beiträge
 
#8

AW: anderes .exe programm mittels OnClick beenden

  Alt 25. Jan 2011, 16:53
okay ich habe es jetzt hinbekommen. mittels:
SendMessage(FindWindow(nil,'Rechner'),WM_CLOSE,0,0 );

danke trotzdem für hilfe
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: anderes .exe programm mittels OnClick beenden

  Alt 25. Jan 2011, 16:54
Einen Ansatz findest Du z.B. hier. Du müsstest lediglich die EnumWindowsProc dahingehend anpassen, dass sie das Fenster nicht nach vorn holt, sondern ihm ein WM_CLOSE schickt. Außerdem sollte Result in jedem Fall auf true gesetzt werden.

[edit] Mit Deiner Lösung schließt Du irgendein Fenster mit dem Titel "Rechner". Ob das aber das richtige ist, kannst Du nicht wissen. [/edit]
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

Geändert von DeddyH (25. Jan 2011 um 16:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: anderes .exe programm mittels OnClick beenden

  Alt 25. Jan 2011, 17:54
[edit] Mit Deiner Lösung schließt Du irgendein Fenster mit dem Titel "Rechner". Ob das aber das richtige ist, kannst Du nicht wissen. [/edit]
Darum ja auch der Hinweis
Optimaler wäre es aber, wenn du MSDN-Library durchsuchenShellExecuteEx oder MSDN-Library durchsuchenCreateProcess verwendest, denn diese liefern dir ein Handle zur Anwendung.
(es könnte ja sein, daß die blabla.exe mehrmals aktiv ist ... welche soll dann beendet werden)
Wenn man sich das Fenster/Program gleich merkt, dann muß man es nicht suchen und es gibt keine Probleme, da man nichts Falsches finden kann.
$2B or not $2B
  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 22:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz