AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Problem mit Dateiaufruf per paramstr
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Dateiaufruf per paramstr

Ein Thema von wb32 · begonnen am 7. Aug 2003 · letzter Beitrag vom 23. Sep 2003
Antwort Antwort
Seite 3 von 5     123 45      
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#21

Re: Problem mit Dateiaufruf per paramstr

  Alt 8. Aug 2003, 11:05
Zitat:
@Hagen danke erstmal, mal schauen ob du es hinbekommst
Na, das ist doch keine Frage, die Frage ist ob ich 2 Wochen oder 3 Monate benötige

Gruß hagen
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#22

Re: Problem mit Dateiaufruf per paramstr

  Alt 8. Aug 2003, 14:21
also ich habe folgendes festgestellt:

Code:
procedure TForm1.addClick(Sender: TObject);
begin
 reg:=tregistry.create();
  // Dateien ins Context Menü
  Reg.RootKey:=HKEY_CLASSES_ROOT;
  Reg.OpenKey('*\shell',true);
  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.OpenKey('*\shell\'+Name+'\ddeexec\',true);
  Reg.WriteString('','[open("%1")]');
  Reg.CloseKey;

   // Ordner ins Context Menü
   Reg.OpenKey('Directory\shell',true);
   Reg.CloseKey;
   Reg.OpenKey('Directory\shell\'+Name,true);
   Reg.WriteString('',Title);//optional
   Reg.CloseKey;
   Reg.OpenKey('Directory\shell\'+Name+'\command',true);
   Reg.WriteString('',Adress);
   Reg.CloseKey;

  reg.free;
  del.enabled:=true;
  add.Enabled:=false;
end;


Dieser Code hier:

Code:
 
Reg.OpenKey('*\shell\'+Name+'\ddeexec\',true);
Reg.WriteString('','[open("%1")]');
Reg.CloseKey;
bewirkt das man multiple dateien auswählen kann, wenn ich mehr als eine Datei wähle funktioniert alles bestens, wenn ich nun aber nur eine wähle kommt eine Messagebox das die mit Rechtsklick gewählte Datei nicht gefunden wurde ????

der pfad zur datei wird aber wie programmiert in meine Listbox eingetragen...

es funktioniert also alles ausser das dann dieser hinweis kommt,
weiß jemand woran das liegt ?
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#23

Re: Problem mit Dateiaufruf per paramstr

  Alt 8. Aug 2003, 17:12
hat niemand eine Idee ?
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#24

Re: Problem mit Dateiaufruf per paramstr

  Alt 8. Aug 2003, 17:43
ich habe das mal mit dem deexec probiert, das klappt nicht bei mir öffnet er die exe trotzdem mehrmals und bringt zusätzlich nich merhmals eine Fehlermeldung. Natürlich habe ich keine DDE Komponente drauf

Gruß hagen
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#25

Re: Problem mit Dateiaufruf per paramstr

  Alt 8. Aug 2003, 18:11
man man man das ist doch zum verrückt werden

es gibt hunderte von programmen die mehr als eine datei mit einem rechtsklick öffnen können das kann doch nich so schwer sein...

zum beispiel beim dateien löschen kann man doch mehr als eine gleichzeitig markeiren und alle löschen...

hab hier mal nen link zum source von eraser einem Delete Tool

Download

der kann mehr als eine markierte datei auf einmal lsöchen vielleicht kann damit jemand was anfangen und da mal reinschauen.. is aber C glaube ich ...
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#26

Re: Problem mit Dateiaufruf per paramstr

  Alt 8. Aug 2003, 18:19
Also mit dem DDE ist das ziemlich einfach.
Als erstes in dein Formular eine TDDEServerConv rein, bei dieser den Namen auf "System" un das Event OnexecuteMacro etwa so:

Delphi-Quellcode:
procedure TForm1.SystemExecuteMacro(Sender: TObject; Msg: TStrings);
begin
  ListBox1.Items.AddStrings(Msg);
end;
Nun noch die Registry.

Zitat:

[HKEY_CLASSES_ROOT\.step]
@="stepfile"

[HKEY_CLASSES_ROOT\stepfile]

[HKEY_CLASSES_ROOT\stepfile\shell]
@=""

[HKEY_CLASSES_ROOT\stepfile\shell\open]

[HKEY_CLASSES_ROOT\stepfile\shell\open\command]
@="d:\\borland\\delphi5\\projects\\project11.exe "

[HKEY_CLASSES_ROOT\stepfile\shell\open\ddeexec]
@="%1"

[HKEY_CLASSES_ROOT\stepfile\shell\open\ddeexec\Appl ication]
@="project11"

[HKEY_CLASSES_ROOT\stepfile\shell\open\ddeexec\Topi c]
@="System"
D.h. alle Dateien mit Extension *.step werden durch die Anwendung "d:\borland\delphi5\projects\project11.exe" geöffnet. Dabei wird der TDDEServerConv mit Namen "System" das Makro gesendet das bei "\open\ddeexec" steht. Hier besteht das Makro nur aus dem Dateinamen der zu öffnenden Datei. Das war alles.

Über'n Explorer im Menu\Extras\Ordneroptionen...\Dateitypen kann man dies auch komfortabel editieren.

Ich schätze mal das wars dann

Gruß Hagen
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#27

Re: Problem mit Dateiaufruf per paramstr

  Alt 8. Aug 2003, 18:26
ich muss dich leider enttäuschen *gg*...

ich will ein programm bauen wie diesen eraser der dateien löscht, dazu ist es wie bereits beschrieben nötig alle möglichen dateiarten *.rtf oder *.doc oder *.txt zu markieren und dieses werte also den pfad der datei auf der platte (den ich ja zum löschen einer datei brauche) an meine exe zu senden...

es nützt mir also nichts wenn ich nur dateien die eine bestimmte endung haben damit öffnen kann ...

sorry
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#28

Re: Problem mit Dateiaufruf per paramstr

  Alt 8. Aug 2003, 18:53
oder ich trenne das auf in 2 exe dateien ?

den klick auf eine datei lenke ich auf die umleitung.exe die prüft ob die delete.exe schon gestartet ist, wenn nicht wird sie gestartet...

danach sendet die umleitung.exe die daten paramstr an die delete.exe und beendet sich selbst...

dbaei wäre es egal wie oft die umletiung exe gestartet wird da sie eh unsichtbar ist und sich selbst beendet...

ist doch besser so oder ?
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#29

Re: Problem mit Dateiaufruf per paramstr

  Alt 8. Aug 2003, 19:42
ok ich hab die DDE Kompos drauf, hab auch schon einbeispiel gefunden dazu


http://www.elsdoerfer.net/delphi/delphitut_dde.html


nur leider funktioniert es bei einem klick nur einmal und das mit der rückmeldung vom server geht nich so wie es da steht...

der text aus dem memo im client wird aber korrekt an den server gesendet...

hat jemand noch ein beispiel oder ähnliches dazu ?
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#30

Re: Problem mit Dateiaufruf per paramstr

  Alt 8. Aug 2003, 20:43
ich verstehe dein Problem nicht. Nun habe ich mal in hKey_Classes_Root den * Eintrag für alle Dateien erweitert

Zitat:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell]

[HKEY_CLASSES_ROOT\*\shell\open]

[HKEY_CLASSES_ROOT\*\shell\open\command]
@="d:\\borland\\delphi5\\projects\\project11.exe "

[HKEY_CLASSES_ROOT\*\shell\open\ddeexec]
@="%1"

[HKEY_CLASSES_ROOT\*\shell\open\ddeexec\application]
@="project11"

[HKEY_CLASSES_ROOT\*\shell\open\ddeexec\topic]
@="System"
Bei mir ruft er es absolut korrekt auf.
Mit nachfolgender Registry habe ich sogar für Verzeichnise einen neuen Eintrag im Contextmenu der "Suchen" heist. Wird er angeklickt so wird korrekterweise der Project11.exe der Verzeichnisname gesendet.

Zitat:

[HKEY_CLASSES_ROOT\Folder\shell\Suchen]

[HKEY_CLASSES_ROOT\Folder\shell\Suchen\command]
@="d:\\borland\\delphi5\\projects\\project11.exe "

[HKEY_CLASSES_ROOT\Folder\shell\Suchen\ddeexec]
@="%1"

[HKEY_CLASSES_ROOT\Folder\shell\Suchen\ddeexec\Appl ication]
@="project11"
Bei mir klappt also alles wie gewünscht.

Gruß Hagen
Angehängte Dateien
Dateityp: zip project11.zip (166,4 KB, 21x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


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 21:22 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