Autor Beitrag
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 24.07.05 16:47 
Wie kann man einen Ordner öffnen und dabei gleich eine Datei anwählen ohne die zu öffnen? Bei ShellExecute scheint es nicht zu gehen, oder etwa doch?


Moderiert von user profile iconChristian S.: Topic aus CLX / Delphi Language (Object-Pascal) verschoben am So 24.07.2005 um 19:37
hallo
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 450

WIN XP, SuSE 9.3
D3 Prof, D6 Pers, 2005 Pers
BeitragVerfasst: So 24.07.05 16:53 
Was meinst du mit anwählen? Focus drauf setzen?

_________________
Der beste je Programmierte Trojaner: Windows XP
Wäre es nicht adequat, den Usus heterogener Termini zu minimieren?
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 24.07.05 16:57 
Ja
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: So 24.07.05 17:15 
mit shellexecute den ordner öffnen und den dateinamen der ausgewählt werden soll per sendkeys an das neue fenster schicken
dann markiert der explorer die datei automatisch

ne sendkeys unit findest du im Suche in: Delphi-Forum, Delphi-Library SMILEMASTER 2005 source

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 24.07.05 18:37 
Ich habe es jetzt so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var h: hwnd;
begin
 h:=ShellExecute(Form1.Handle, 'explore'nilnil, PChar(ExtractFileDir(Form1.SpeicherortEdit.Text)), SHOW_OPENWINDOW);
 sendmessage(h,WM_SETFOCUS,0,0); //dürfte sogar unnötig sein, da es automatisch den focus bekommen müsste
 keysend.SendKeys(Form1.SpeicherortEdit.Text);


Allerdings funktioniert das nicht. Was muss ich noch machen?
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: So 24.07.05 19:35 
ausblenden Delphi-Quelltext
1:
keysend.SendKeys(extractfilename(Form1.SpeicherortEdit.Text));					

statt 'explore' kannste auch mal 'open' versuchen
und statt WM_SETFOCUS evtl setforegroundwindow

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 24.07.05 20:41 
Also so hier:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.ZielSuchenButtonClick(Sender: TObject);
var h: hwnd;
begin
 h:=ShellExecute(Form1.Handle, 'open'nilnil, PChar(ExtractFileDir(Form1.SpeicherortEdit.Text)), SHOW_OPENWINDOW);
 sendmessage(h,WM_SETFOCUS,0,0);
 keysend.SendKeys(ExtractFileName(Form1.SpeicherortEdit.Text));
end;


Wie du das mit setforegroundwindow weiß ich allerdings nicht, denn das anstatt WM_SETFOCUS funktioniert nicht, das Delphi da rummeckert.
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Fr 29.07.05 15:46 
Oder funktioniert das vlt. auch irgendwie mit Parametern bei ShellExecute?
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Fr 29.07.05 16:56 
user profile iconHeiko hat folgendes geschrieben:
Also so hier:
ja.
user profile iconHeiko hat folgendes geschrieben:
Oder funktioniert das vlt. auch irgendwie mit Parametern bei ShellExecute?
nein.

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 29.07.05 23:34 
Hallo,

wenn ich das richtig verstanden habe, willst Du den Explorer starten und eine Datei soll entsprechend deiner Vorgabe markiert sein.
z.B.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
var Datei : String;
begin
  Datei := 'C:\Temp\DieseDateiMarkieren.txt';
  ShellExecute(Form1.Handle, 'open','explorer.exe',Pchar('/e,/select,'+Datei), '', SW_SHOWNORMAL);

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 31.07.05 14:42 
thx, das funktioniert so wie ich es will.

Allerdings würde mich noch interessieren, was das /e bei den Parametern bedeutet (/select ist ja das selektieren bestimmt).


Zuletzt bearbeitet von Heiko am So 31.07.05 15:44, insgesamt 1-mal bearbeitet
Sprint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 849



BeitragVerfasst: So 31.07.05 14:54 
user profile iconHeiko hat folgendes geschrieben:
Allerdings würde mich noch interessieren, was das /e bei den Parametern bedeutet (/select ist ja das selektieren bestimmt).

Auszug aus der Datei TIPS.TXT (Microsoft Windows 98SE):
Zitat:
Schalter für den Windows-Explorer
---------------------------------

Schalter für den Windows-Explorer sind nützlich beim Erstellen von
Ordnern, die als Stammverzeichnis dienen sollen:

Explorer [/e,][/root,<objekt>,] [[<ordner>]| [/select,
<unterobjekt>]]

/e Explorer-Ansicht verwenden (Ansicht "Alle Ordner" in
der Explorerleiste).
Standardeinstellung ist Ansicht "Keine" in der
Explorerleiste.

/root,<objekt> Geben Sie das Objekt im "normalen" Namespace an,
das als Stammverzeichnis (oberste Ebene) für den
Windows-Explorer dient. Standardeinstellung ist der
Ordner Desktop.

/select Der übergeordnete Ordner wird geöffnet, und das
angegebene Objekt wird ausgewählt.

<unterobjekt> Der Ordner oder die Datei, der bzw. die im Windows-
Explorer geöffnet wird. Wenn der Schalter /select
verwendet wird, ist das Unterobjekt hervorgehoben.
Andernfalls wird der Ordner oder die Datei im Explorer
geöffnet. Standardeinstellung ist root<objekt>.

Beispiele: Explorer /e, /root, \\Berichte
Öffnet ein Explorer-Fenster in \\Berichte.

Explorer /select, C:\Windows\Calc.exe
Öffnet einen Ordner in C:\Windows (oder aktiviert einen
Ordner, der gegenwärtig geöffnet ist) und wählt Calc.exe
aus.

Explorer /e, /root,
\Source\Intern\Design\Benutzer\Thomas\Archiv
Öffnet im angegebenen Archivordner einen Ordner. Dies
ist eine gute Methode, einen dedizierten Remote-
Archivordner für Dokumente zu erstellen. Dadurch können
Sie eine Verknüpfung zu den Ordnern
\\Source\Intern\Design\Benutzer\Thomas\Archiv in den
Ordner SendTo platzieren und so Dokumente rasch
übertragen.

_________________
Ciao, Sprint.
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 31.07.05 15:59 
k, thx Sprint

Die Datei existiert nicht unter XP. Ich habe gerade die gesamte Festplatte durchsuchen lassen ohne Erfolg.
Sprint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 849



BeitragVerfasst: So 31.07.05 16:13 
Ich weiß. Darum habe ich auch Windows 98 SE dahinter geschrieben.

_________________
Ciao, Sprint.
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Do 11.05.06 17:03 
Mhm, ich wollte jetzt bei dem Problem auch Multiselect einführen. Nur irgendwie bekomme ich das nicht gebacken, dass er mehr als eine Datei markiert.

Ich habs bisher auf folgende 2 Varianten probiert, die beide nicht funktionieren :(:
ausblenden Delphi-Quelltext
1:
2:
  ShellExecute(Handle, 'open','explorer.exe', PChar('/e,/select,' +
    'C:\flashplayer.xpt,C:\PDOXUSRS.NET'), nil , SW_SHOWNORMAL);

ausblenden Delphi-Quelltext
1:
2:
  ShellExecute(Handle, 'open','explorer.exe', PChar('/e,/select,' +
    'C:\flashplayer.xpt,/select,C:\PDOXUSRS.NET'), nil , SW_SHOWNORMAL);


Und mit Leerzeichen, statt dem Komma, zw. den Pfaden nimmt er auch nicht an :(.