Moin ihr 2,
war die ganze Nacht vor meiner Kiste. Der Eintrag und das löschen von meinem Prg. im Kontektmenü ist
mittlerweile kein Problem mehr, aber dieser verdammte Pfad von den Files....
Ich mach´s kurz hier mein Code....
Bitte helft mir
Delphi-Quellcode:
function RegisterFileTypeCommand(fileExtension, menuItemText, target:
string) : boolean;
var
reg: TRegistry;
fileType:
string;
begin
result := false;
reg := TRegistry.Create;
with reg
do
try
RootKey := HKEY_CLASSES_ROOT;
if OpenKey('
.' + fileExtension, True)
then
begin
fileType := ReadString('
') ;
if fileType = '
'
then
begin
fileType := fileExtension + '
file';
WriteString('
', fileType) ;
end;
CloseKey;
if OpenKey(fileType + '
\shell\' + menuItemText + '
\command', True)
then
begin
WriteString('
', target +) ;
CloseKey;
result := true;
end;
end;
finally
Free;
end;
end;
function UnRegisterFileTypeCommand(fileExtension, menuItemText:
string) : boolean;
var
reg: TRegistry;
fileType:
string;
begin
result := false;
reg := TRegistry.Create;
with reg
do
try
RootKey := HKEY_CLASSES_ROOT;
if OpenKey('
.' + fileExtension, True)
then
begin
fileType := ReadString('
') ;
CloseKey;
end;
if OpenKey(fileType + '
\shell', True)
then
begin
DeleteKey(menuItemText) ;
CloseKey;
result := true;
end;
finally
Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//Registierung im Kontextmenü
RegisterFileTypeCommand('
pas','
gMove ','
E:\......meinePrg.exe') ;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//Unregister
UnRegisterFileTypeCommand('
pas','
gMove') ;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Filename :
String;
begin
// Filepath bekommen... :)
if ParamCount = 1
then
begin
Filename := ParamStr(1);
if FileExists(Filename)
then
showmessage(Filename);
end;
end;
end.
Oder muß ich "GetModuleFileName"-Methode in einer
DLL benutzten....
Danke Speeeedfreak