AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi shellexecute auf zweitem bildschirm ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

shellexecute auf zweitem bildschirm ausführen

Ein Thema von milchbrötchen · begonnen am 5. Feb 2009 · letzter Beitrag vom 5. Feb 2009
Antwort Antwort
milchbrötchen

Registriert seit: 3. Apr 2007
Ort: Konstanz
36 Beiträge
 
#1

shellexecute auf zweitem bildschirm ausführen

  Alt 5. Feb 2009, 12:29
hi,
ich möchte ein programm via shellexecute auf meinem zweiten monitor ausführen..

ich habs mal mit
ShellExecute(screen.Monitors[1].Handle,PChar('open'),PChar('c:\'),nil,nil,SW_MAXIMIZE); probiert, aber iwie funktioniert das nicht, das programm bzw in diesem fall der ordner wird auf dem hauptbildschirm geöffnet...
danke schonmal für eure beiträge..
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: shellexecute auf zweitem bildschirm ausführen

  Alt 5. Feb 2009, 12:31
IDEE:

Erstelle den Prozess mit CreateProzess, suche das Hauptfenster dieses Prozesses und setze per API-Befehle die Koordinaten neu.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#3

Re: shellexecute auf zweitem bildschirm ausführen

  Alt 5. Feb 2009, 14:11
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  self.left := Screen.monitors[1].left;
  self.top := Screen.monitors[1].top;
  self.Height := Screen.monitors[1].Height;
  self.Width := Screen.monitors[1].Width;
end;
Das sollte auf dem zweiten Monitor eine Form erzeugen, die den gesamten Monitor einnimmt.

Zu deinem Shellexecute müsstest du den Monitorindex als Parameter übergeben und im FormCreate auswerten.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
milchbrötchen

Registriert seit: 3. Apr 2007
Ort: Konstanz
36 Beiträge
 
#4

Re: shellexecute auf zweitem bildschirm ausführen

  Alt 5. Feb 2009, 14:29
Zitat von Tyrael Y.:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  self.left := Screen.monitors[1].left;
  self.top := Screen.monitors[1].top;
  self.Height := Screen.monitors[1].Height;
  self.Width := Screen.monitors[1].Width;
end;
mein programm läuft auch schon die ganze zeit auf dem zweiten bildschirm.. und sie nimmt auch den ganzen monitor ein... mit borderstyle=bsnone und so wie du es gemacht hast...

was genau meinst du mit Monitorindex als Parameter übergeben und im FormCreate auswerten?
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#5

Re: shellexecute auf zweitem bildschirm ausführen

  Alt 5. Feb 2009, 15:18
Worum geht es hier denn nun?
Mit ShellExecute() startet man vorzugsweise fremde Programme, daher der Hinweis von Bernhard Geyer, einen Prozess zu starten. Die Hinweise mit FormCreate() kann ich (in diesem Zusammenhang) nicht so recht nachvollziehen.
Ralph
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#6

Re: shellexecute auf zweitem bildschirm ausführen

  Alt 5. Feb 2009, 15:32
ShellExecute(nil,nil,PChar('c:\myProgram'),1,nil,SW_MAXIMIZE);
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var MonitorIndex: Integer;
begin
  if ParamCount > 1 then
  begin
    MonitorIndex = StrToIntDef(Params(1), 0);
    
    self.left := Screen.monitors[MonitorIndex].left;
    self.top := Screen.monitors[MonitorIndex].top;
    self.Height := Screen.monitors[MonitorIndex].Height;
    self.Width := Screen.monitors[MonitorIndex].Width;
  end;
end;
Mit dem vierten Parameter von Shellexecute kannst du zusätzliche Parameter an dein Programm mitgeben.
Im obigen Beispiel 1 für Monitor 2.
Im FormCreate von der MainForm guckst du, ob du einen Paramter zum Aufruf hattest und zeigst dann
deine Form auf dem Monitor auf dem die Anzeige gewünscht ist.

Edit:
Zitat von taaktaak:
Die Hinweise mit FormCreate() kann ich (in diesem Zusammenhang) nicht so recht nachvollziehen.
Nur weil er selbst das so gerne aufrufen wollte, hab ich für diesen Weg eine Lösung geschrieben.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  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 09:00 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