AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Ordner erstellen international korrekt
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner erstellen international korrekt

Offene Frage von "sieppl"
Ein Thema von sieppl · begonnen am 1. Okt 2004 · letzter Beitrag vom 2. Okt 2004
Antwort Antwort
Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#1

Ordner erstellen international korrekt

  Alt 1. Okt 2004, 01:30
Hallo,

mein ShellTreeView soll per KontextMenü Ordner erstellen können.
Das ganze soll international in der richtigen Sprache geschehen.
Also nicht á la Pfad + 'Neuer Ordner'.

Gibt es einen kanonischen Befehl für das IContextMenü?
(wie z.B. cut, copy, paste)

Falls nein, wo und wie kann ich die Bezeichnung für 'Neuer Ordner'
auslesen? Irgendwo wird Windows, dass ja auch machen..

Oder gibt es den supercoolen Befehl, der die Windows-Funktion
Ordner erstellen aufruft und dabei automatisch auf die Namensvergabe
achtet??

Grüße

Sebastian
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#2

Re: Ordner erstellen international korrekt

  Alt 1. Okt 2004, 18:24
Kann es sein, dass ich der Erste bin, der vor dem Problem steht?
Hat denn noch nie jemand auf irgendwelche Windows-Variablen zurückgegriffen um User-Menüs zu bauen?
Ich kann den Namen 'Neuer Ordner' leider nicht als ressourceString deklarieren, da er in einer Komponente benutzt wird.
Keine Ideen???
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Remote1
Remote1

Registriert seit: 22. Okt 2003
Ort: Dippoldiswalde
252 Beiträge
 
Delphi 6 Personal
 
#3

Re: Ordner erstellen international korrekt

  Alt 1. Okt 2004, 18:42
ja frag doch die system sprache ab und ändere entsprechend deine bezeichnungen
viele andere programme haben dazu auch entsprechende language dateien mit beiliegen
mach also im einfachsten fall ne ini wo du alle bezeichnungen in den entsprechenden sprache drin hast und lade dann die bezeichner

systemsprache abfragen:
Delphi-Quellcode:
function TForm1.GetOSLanguage: string;
var
  LanguageID : LangID;
  Language: array [0..100] of char;
begin
  LanguageID:=GetSystemDefaultLangID;
  VerLanguageName(LanguageID,Language,100);
  Result := String(Language);
end;
nachtrag:
neue posts erst nach 24-48h
(nicht bös gemeint)
  Mit Zitat antworten Zitat
Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#4

Re: Ordner erstellen international korrekt

  Alt 1. Okt 2004, 20:11
mmh, die idee hatte ich auch schon. einen localizer setze ich sowieso ein.
wie gesagt soll das eine komponente werden, die autark funktioniert.
und so eine lösung wäre nicht gerade elegant.
vielleicht kommt ja noch was..

Grüße

Sebastian
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Ordner erstellen international korrekt

  Alt 2. Okt 2004, 03:43
ich hab mal suchen lassen und "neuer Ordner" taucht mehrmals als Resource in irgendwelchen Dateien auf, aber leider nicht in der Regitry ... dass wäre ja das einfachste gewesen -.-

Aber ich vermute mal diese
F:\Programme\Gemeinsame Dateien\Microsoft Shared\Web Folders\MSOWS407.DLL
ist die vielversprechenste Datei, wo du dir das rausholen könntest.
Brauchst ja nur Anhand der aktuellen LanguageID dir die passende Datei in diesem Verzeichnis raussuchen und wenn's keine gibt (z.B. Win98), dann gehst du einfach auf die Sprachdatei vom Windwos
WINDOWS\SYSTEM\SHELL32.DLL
los (welche aber nicht immer mit der aktuellen Sprache übereinstimmen muß)

Ich vermute aber auch noch, das es bestimmt 'nen netten API-Befehl gibt, wo man bestimmtAnhand 'ner ID den gewünschten Sting bekommt.


Hier mal die alle möglichen Dateien XP:
Programme\Gemeinsame Dateien\Microsoft Shared\Web Folders\MSOWS407.DLL
Programme\MSN\MSNCoreFiles\mail.mar
Programme\MSN\MSNCoreFiles\ui.mar
Programme\Outlook Express\msoeres.dll
Programme\Windows NT\dialer.exe
Windows\PCHEALTH\HELPCTR\Indices\merged.hhk
Windows\Prefetch\WEB-INSTALL.EXE-05FBC1E6.pf
Windows\system32\appwiz.cpl
Windows\system32\avtapi.dll
Windows\system32\browselc.dll
Windows\system32\capesnpn.dll
Windows\system32\cdosys.dll
Windows\system32\config\system
Windows\system32\dllcache\appwiz.cpl
Windows\system32\dllcache\avtapi.dll
Windows\system32\dllcache\browselc.dll
Windows\system32\dllcache\capesnpn.dll
Windows\system32\dllcache\cdosys.dll
Windows\system32\dllcache\dialer.exe
Windows\system32\dllcache\dmdskres.dll
Windows\system32\dllcache\ieakui.dll
Windows\system32\dmdskres.dll
Windows\system32\ieakui.dll
Windows\system32\mmc.exe
Windows\system32\mmcbase.dll
Windows\system32\msieftp.dll
Windows\system32\mydocs.dll
Windows\system32\shdoclc.dll
Windows\system32\shell32.dll
Windows\system32\wmploc.dll

hier für 2K:
Programme\Gemeinsame Dateien\Microsoft Shared\Web Folders\MSOWS407.DLL
Programme\Outlook Express\msoeres.dll
Programme\Windows NT\dialer.exe
WINNT\system32\appwiz.cpl
WINNT\system32\avtapi.dll
WINNT\system32\browselc.dll
WINNT\system32\capesnpn.dll
WINNT\system32\dllcache\avtapi.dll
WINNT\system32\dllcache\browselc.dll
WINNT\system32\dllcache\capesnpn.dll
WINNT\system32\dllcache\dialer.exe
WINNT\system32\dllcache\dmdskres.dll
WINNT\system32\dllcache\ieakui.dll
WINNT\system32\dllcache\mmc.exe
WINNT\system32\dllcache\mmcndmgr.dll
WINNT\system32\dllcache\msieftp.dll
WINNT\system32\dllcache\msoeres.dll
WINNT\system32\dllcache\shdoclc.dll
WINNT\system32\dllcache\shell32.dll
WINNT\system32\dmdskres.dll
WINNT\system32\ieakui.dll
WINNT\system32\mmc.exe
WINNT\system32\mmcndmgr.dll
WINNT\system32\msieftp.dll
WINNT\system32\shdoclc.dll
WINNT\system32\shell32.dll

und 98:
WINDOWS\SYSTEM\APPWIZ.CPL
WINDOWS\SYSTEM\SHDOCVW.DLL
WINDOWS\SYSTEM\SHELL32.DLL
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Ordner erstellen international korrekt

  Alt 2. Okt 2004, 08:48
Zwei davon sind aber unsinnig !
[Edit]Naja, die dialer.exe nicht ganz (dachte, das wär'n dialer 8) )aber die Prefetch auf jeden Fall
Neue Liste:
Programme\Gemeinsame Dateien\Microsoft Shared\Web Folders\MSOWS407.DLL
Programme\MSN\MSNCoreFiles\mail.mar
Programme\MSN\MSNCoreFiles\ui.mar
Programme\Outlook Express\msoeres.dll
Programme\Windows NT\dialer.exe
Windows\PCHEALTH\HELPCTR\Indices\merged.hhk
Windows\Prefetch\WEB-INSTALL.EXE-05FBC1E6.pf
Windows\system32\appwiz.cpl
Windows\system32\avtapi.dll
Windows\system32\browselc.dll
Windows\system32\capesnpn.dll
Windows\system32\cdosys.dll
Windows\system32\config\system
Windows\system32\dllcache\appwiz.cpl
Windows\system32\dllcache\avtapi.dll
Windows\system32\dllcache\browselc.dll
Windows\system32\dllcache\capesnpn.dll
Windows\system32\dllcache\cdosys.dll
Windows\system32\dllcache\dialer.exe
Windows\system32\dllcache\dmdskres.dll
Windows\system32\dllcache\ieakui.dll
Windows\system32\dmdskres.dll
Windows\system32\ieakui.dll
Windows\system32\mmc.exe
Windows\system32\mmcbase.dll
Windows\system32\msieftp.dll
Windows\system32\mydocs.dll
Windows\system32\shdoclc.dll
Windows\system32\shell32.dll
Windows\system32\wmploc.dll
  Mit Zitat antworten Zitat
Alienhere
(Gast)

n/a Beiträge
 
#7

Re: Ordner erstellen international korrekt

  Alt 2. Okt 2004, 09:39
Wurde schon mal die Unit ShlObj oder ShellAPI angedacht?

Da steht der String garantiert auch nicht drin

Aber eine der beiden Units erzeugt M.M. den "Neuen Ordner" in der Landessprache.

mfg
  Mit Zitat antworten Zitat
Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#8

Re: Ordner erstellen international korrekt

  Alt 2. Okt 2004, 13:13
das mit den dll würde bestimmt zum erfolg führen, aber warum kompliziert machen wenn es auch einfacher geht? Vor allem weiß man nie, ob die DLLs nicht verändert wurden und dann noch verschiedende orte und versionen auf den plattformen.
schaut euch mal bitte MSDN-Library durchsuchenCMINVOKECOMMANDINFOEX an. dort gibt es ein CMDSTR_NEWFOLDER.
Habt ihr das schon benutzt? Lese ich richtig, dass CMDSTR_NEWFOLDER eine Befehls-Konstante ist, die eigentlich genau mein Ziel erreichen müsste?

Grüße

Sebastian

[Nachschlag:]

hier ist wohl das, was ich suche:
Google Groups

Die Sache ist die, dass man um Neu -> Neuer Ordner aufzurufen auch das Kontext-Menü des Hintergrunds benötigt. Das geht über IShellView.GetItemObject usw. Das wird ein hartes Stück Arbeit. Vor allem das ganze in Delphi hinzubekommen. Wenn es dann auf Win9x bis XP läuft wird erstmal gefeiert.

Grüße

Sebastian
Sebastian
  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 08:32 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