Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Eintrag in Context Menu (https://www.delphipraxis.net/7236-eintrag-context-menu.html)

wb32 6. Aug 2003 20:31

Re: Eintrag in Context Menu
 
jetzt willste mich aber rollen oder ???

Das sehe ich in der Registry auch aber ich weiß nicht wie man den Schlüssel dort anlegt und was genau dort drinstehen muss...

Man man man nu macht es doch nicht so schwer, Ihr wisst doch offensichtlich wie es geht was ist so schwer daran den Source rauszurücken ???

Ich sitze den ganzen Tag schon an dem Mist und komm nicht weiter...

wb32 6. Aug 2003 20:41

Re: Eintrag in Context Menu
 
ok ich habs... danke trotzdem für eure hilfe ...

für alle die es mal suchen:

Code:
procedure TForm1.addClick(Sender: TObject);
var
  Reg:TRegistry;
begin
  reg:=tregistry.create();
  Reg.RootKey:=HKEY_CLASSES_ROOT;

-> Reg.OpenKey('*\shell',true); // wird das benötigt ???
-> Reg.CloseKey;

  Reg.OpenKey('*\shell\'+Name,true);
  Reg.WriteString('',Title);//optional
  Reg.CloseKey;

  Reg.OpenKey('*\shell\'+Name+'\command',true);
  Reg.WriteString('',Adress); // adress="c:\test\meinprogramm.exe %1"
  Reg.CloseKey;

  reg.free;
end;

2 Fragen hab ich aber noch :)

1. die oben gezeigt stelle mit -> wird die benötigt ?
2. wie kann ich den eintrag wieder löschen ?

sakura 6. Aug 2003 20:50

Re: Eintrag in Context Menu
 
Immer mit der Ruhe. Ich wusste ja nicht, wo Dein Problem lag. Ich hatte vermutet, das die Regsitry zu nutzen nicht das Probem sei ;-)

1. Ist nicht nötig.

2. Den übergeordneten Reg-Pfad öffnen und mit DeleteKey den gewünschten Eintrag entfernen.

...:cat:...

wb32 6. Aug 2003 20:59

Re: Eintrag in Context Menu
 
ok das geht ...

Code:
begin
  reg:=tregistry.create();
  Reg.RootKey:=HKEY_CLASSES_ROOT;
  Reg.DeleteKey('*\shell\');
  reg.free;
end;
ich wusste nicht mehr ob shell vorher da war oder nicht...

ok für einzelne datein funktioniert es jetzt aber wie kann ich es in der registry eintragen das ich auch ordner damit aufrufen kann ?

sakura 6. Aug 2003 21:04

Re: Eintrag in Context Menu
 
Du solltest nicht gerade den Shell Eintrag löschen, da auch andere Apps (WinZIP; ICQ, ...) dort registriert sind.

Betreffs der Folder kann ich leider momentan nicht helfen, aber bei MSDN wirst Du bestimmt den Tipp finden.

...:cat:...

wb32 6. Aug 2003 21:08

Re: Eintrag in Context Menu
 
hmm ich hab auf beiden pcs WIN XP und hab jetzt gearde ma auf meinem anderen rechner geschaut der hat den shell ordner dort auch nicht, da ist und war auf meinem PC auch nichts weiter drin ...

also den drin lassen oder wie ists am besten ?

sakura 6. Aug 2003 21:17

Re: Eintrag in Context Menu
 
Auf jeden Fall nur dann löschen, wenn nichts drinne ist. Bei mir sind 5 Einträge drin. Wäre schade, wenn die weg wären ;-)

...:cat:...

Luckie 6. Aug 2003 21:20

Re: Eintrag in Context Menu
 
Zitat:

Zitat von sakura
Auf jeden Fall nur dann löschen, wenn nichts drinne ist. Bei mir sind 5 Einträge drin. Wäre schade, wenn die weg wären ;-)

Das fällt dann unter collateral damage. :mrgreen:

wb32 6. Aug 2003 21:36

Re: Eintrag in Context Menu
 
ok ich habs so geändert:

Code:
begin
  reg:=tregistry.create();
  Reg.RootKey:=HKEY_CLASSES_ROOT;
  if Reg.OpenKey('*\shell',false) then begin
    Reg.DeleteKey(Name);
     Reg.CloseKey;
    end;
  reg.free;
end;

und gleich das nächste problem, wenn ich mehr als eine datei aufrufe sollen diese natürlich auch von meinem programm geööfnet werden paramstr(0) und paramstr(1) enthalten die daten

mein programm startet aber bei 3 dateien dann 3x :( ???

es soll aber nur 1x starten und die anderen dateien ebanfalls bearbeiten...

Alexander 7. Aug 2003 09:50

Re: Eintrag in Context Menu
 
neue FRage neuer Thread ;-)

PS: Such mal in der code-Library, da steht irgendwo wie man es hinbekommt, dass die Anwendung nur einmal gestartet werden kann, dann musst du halt noch eine Message an dein Programm schicken (also praktisch von deinem Programm, das wieder beendet wird, zu deinem Programm, was weiter laufen soll.., um die Dateien zu übergeben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz