Autor Beitrag
TheUnknown
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Fr 16.05.03 11:12 
Hallo

mit dem Befehl EXPLORER.EXE /e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D} kann man den Windowsexplorer so öffnen, dass er den "Arbeitsplatz" voreingestellt hat. Es geht, je nach CLSID auch mit dem Papierkorb oder den Eigenen Dateien. Nur mit der Systemsteuerung klappt das einfach nicht. Die CLSID für die Systemsteuerung lautet meinen Recherchen nach {21EC2020-3AEA-1069-A2DD-08002B30309D}, doch wenn ich diese ID einsetze, kommt nur Laufwerk C:. Ich weiss, es geht mit diversen Verknüpfungen, aber ich will es unbedingt über ShellExecute so aufrufen, dass die Systemsteuerung per explorer.exe aufgerufen wird. Es geht auch über rundll32.exe, aber das ist nicht des selbe...

Habt Ihr eine Peile, wie ich die Systemsteuerung im Explorer über einen Parameter an explorer.exe öffnen kann?
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Fr 16.05.03 11:15 
Na dann starte einfach das Programm control.exe.

_________________
Ist Zeit wirklich Geld?
Lui
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 84

Win XP, Win 2000, Linux
D7
BeitragVerfasst: Fr 16.05.03 11:31 
Titel: FindWindow ist auch eine Möglichkeit
Es besteht die Möglichkeit mit findWindow den Arbeitsplatz im Explorer zu öffnen. Die genaue Syntax hab ich jetzt aber nicht parat.

Aber ich denke hier gibts bestimmt einige die wissen was ich meine und die Syntax nachtragen.

Ich glaub ungefähr so:
 FindWindow(nil, 'Arbeitsplatz',show) IST ABER BESTIMMT VOLLER BUGGS! Auf jedenfall so ungefähr. Kompatibilität auf anders sprachigen rechnern ist aufgrund des deutschen Strings nicht möglich. Sorry das ich dir keine genaueren Angaben geben kann.

Aber wie gesagt, wäre nett wenn jemand meinen 'code' von oben aktuallisiert und die Syntax korrigiert.

Und auch sorry wenn ich vollkommen am Thema vorbei geschrieben hab. :lol:

MfG

Lui

_________________
Während der C Progga sich fragt wie er es machen soll, fragt der Delphi Progga sich was soll ich machen...
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.05.03 12:16 
Die Alternative zu
AndyB hat folgendes geschrieben:
Na dann starte einfach das Programm control.exe.

:wink:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
uses
  ShlObj, ShellAPI;

procedure OpenFolder(iGUID: integer);
var
  sei      : TShellExecuteInfo;
  lpItemId : PItemIdList;
begin
  if(SHGetSpecialFolderLocation(0,iGUID,lpItemId)
    = NO_ERROR) then
  begin
    ZeroMemory(@sei,sizeof(TShellExecuteInfo));
    sei.cbsize   := sizeof(TShellExecuteInfo);
    sei.nShow    := SW_SHOWNORMAL;
    sei.lpVerb   := 'open';
    sei.fMask    := SEE_MASK_IDLIST;
    sei.lpIDList := lpItemId;

    ShellExecuteEx(@sei);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenFolder(CSIDL_CONTROLS);

  // CSIDL_CONTROLS          = Systemsteuerung
  // CSIDL_BITBUCKET         = Papierkorb
  // CSIDL_DRIVES            = Arbeitsplatz
  // CSIDL_FAVORITES         = Favoriten-Ordner
  // CSIDL_NETHOOD           = Netzwerkumgebung
  // ...
end;

Weitere CSIDL-Werte findet man online im MSDN bzw. im PSDK von Microsoft. Ich habe das vor einiger Zeit schon mal im EF gepostet, aber vielleicht wär´s auch was für die hiesigen FAQs?

Gruß.
foxy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Fr 16.05.03 12:20 
jo mathias mach ma faq mich würde das auch interessieren

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
TheUnknown Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Fr 16.05.03 13:18 
Hmm, dankeschön an alle, aber so ist's immer noch nicht so, wie ich es meinte.

Ich möchte (wahlweise, per Parameter oder per IF-Befehl) noch die Baumstruktur auf der linken Seite haben...
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.05.03 16:53 
Dann ersetze bitte die Zeile
ausblenden Delphi-Quelltext
1:
sei.lpVerb   := 'open';					

durch
ausblenden Delphi-Quelltext
1:
sei.lpVerb   := 'explore';					

Damit startet der Explorer wie gewohnt mit dem Baum auf der linken Seite, zeigt dir aber das zuvor gewählte Verzeichnis an.
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.