AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Parameter SCHNELL an Hauptprog weiterleiten

Parameter SCHNELL an Hauptprog weiterleiten

Ein Thema von Nogge · begonnen am 11. Dez 2004 · letzter Beitrag vom 30. Okt 2005
Antwort Antwort
Seite 4 von 6   « Erste     234 56   
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#31

Re: Parameter SCHNELL an Hauptprog weiterleiten

  Alt 21. Dez 2004, 13:09
ich habe hier mal etwas gefunden, was bestimmt das ist, was ich brauche. allerdings bin ich beim erstellen eines IDataObjectshängen geblieben ;_; kann mir jemand helfen?

Delphi-Quellcode:
function TDFKontextMenuShellExt.SEInitialize(pidlFolder: PItemIDList;
  lpdobj: IDataObject; hKeyProgID: HKEY): HResult;
var
  StgMedium: TStgMedium;
  FormatEtc: TFormatEtc;
  Idx: Integer;
begin
  if (lpdobj = nil) then
  begin
    Result := E_INVALIDARG;
    Exit;
  end;

  with FormatEtc do
  begin
    cfFormat := CF_HDROP;
    ptd := nil;
    dwAspect := DVASPECT_CONTENT;
    lindex := -1;
    tymed := TYMED_HGLOBAL;
  end;

  Result := lpdobj.GetData(FormatEtc, StgMedium);
  if Failed(Result) then
    Exit;

  // alle ausgew�hlten Dateien ermitteln
  for Idx := 0 to DragQueryFile(StgMedium.hGlobal, $FFFFFFFF, nil, 0) - 1 do
  begin
    DragQueryFile(StgMedium.hGlobal, Idx, FFileName, SizeOf(FFileName));
    // hier k�nnen die Dateinamen eingesammelt werden, z. B.
    // StringListe.Add(FFileName);
  end;

  ReleaseStgMedium(StgMedium);
  Result := NOERROR;
end;
  Mit Zitat antworten Zitat
Tempel

Registriert seit: 15. Jul 2004
6 Beiträge
 
#32

Re: Parameter SCHNELL an Hauptprog weiterleiten

  Alt 21. Dez 2004, 17:23
Zitat von Nogge:
also ist es mit dem wissen der Community aus Delphi-Praxis nicht möglich, meinen willen zu realisieren? verstehe deine sätze nicht immer so genau, da du sie nicht wirklich komplett ausschreibst, jim_raynor^^ genauere tipps bzw. irgendwelche kleinen hilfen kann mir niemand geben? ;_;
Die zweite Antwort (von moritz bzgl DDE Tutorial) auf deine Frage gibt doch eine Detaillierte Anleitung. Auch wenn andere es hier als Veraltet abtun (und zum schluß wieder auf DDE kommen).

Thomas
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#33

Re: Parameter SCHNELL an Hauptprog weiterleiten

  Alt 22. Dez 2004, 00:11
so, ich habe jetzt mal in mein programm die DDE Komponenten eingebaut, aber ich erhalte jedesmal die Fehlermeldung: "Die Datei Filename.ext konnte nicht gefunden werden". Dabei ist es total egal, welche Datei ich öffne. Hab mir natürlich das Tut durchgelesen und fürn Anfang alles übernommen. Doch selbst in dem Tut gibt es mind. einen Fehler:

Zitat:
// Hier die Parameter zum Öffnen eintragen
regist.OpenKey(ext+'file\shell\Programmname\comman d', True);
// Paramstr(0) enthält Pfad- und Dateinamen unserer Applikation,
// %1 ist der als Parameter übergebene Dateiname
regist.WriteString('', Paramstr(0)+' %1');
regist.CloseKey;
ParamStr(0) enthält NUR den Dateipfad und nicht noch den Dateinamen! Richtig wäre ParamStr(0)+'Name.ext'. Daher zweifel ich jetzt auch nach mehreren Fehlversuchen an der Glaubwürdigkeit des gesamten Tuts. Kann mir nicht jemand sein eigenes Beispiel dafür posten?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#34

Re: Parameter SCHNELL an Hauptprog weiterleiten

  Alt 22. Dez 2004, 00:55
Moin Nogge,

Zitat von Nogge:
ParamStr(0) enthält NUR den Dateipfad und nicht noch den Dateinamen!


Wie hast Du denn das hinbekommen.

Also bei mir enthält paramstr(0) den gesamten Pfad meiner Anwendung inclusive des Dateinamens.

Nicht richtig falsch () aber unsauber:
regist.WriteString('', Paramstr(0)+' %1'); besser:
Code:
regist.WriteString('',[color=red][b]'"'+[/b][/color] Paramstr(0)+'[color=red][b]"[/b][/color] [color=red][b]"[/b][/color]%1[color=red][b]"[/b][/color]');
Ansonsten bekommt man ein Problem, wenn entweder das Programm, oder aber der Übergebene Parameter ein oder mehrere Leerzeichen enthalten.
Falls es nicht deutlich zu lesen ist: Der Programmpfad und der Parameter werden jeweils in doppelte Anführungsstriche eingefasst.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#35

Re: Parameter SCHNELL an Hauptprog weiterleiten

  Alt 22. Dez 2004, 11:36
peinlich
Ich habe bisher nur ParamStr(0) in Verbindung mit ExtractFilePath benutzt und irgendwie beim Lesen diesen Teil einfach hinzugefügt, obwohl es im Tut nicht steht => Gewohnheit^^

Die Anführungsstriche habe ich sowieso schon in meinen Code hinzugefügt, jedoch bleibt das alte Problem. Ich habe nun herausgefunden, dass die Fehermeldung nur erscheint, wenn ich EINE Datei mit meinem Prog aufrufe. Wenn ich mehr als eine Datei öffne, startet mein Prog ohne Fehlermeldung. Selbst nachdem ich die Komponenten + Uses aus dem Quellcode entfernt hatte, blieb dieses eigenartige Verhalten. Erst nach dem Entfernen des Keys "..\ddeexec" aus der Registry, verschwand jegliche Fehlermeldung beim Start.

Hoffe, dass euch diese Beschreibung für eine Lösung hilft.
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#36

Re: Parameter SCHNELL an Hauptprog weiterleiten

  Alt 26. Dez 2004, 12:27
Frohe Weihnachten Community^^
Tja, nun hab ich wieder Zeit, mich meinem Problem zu widmen und ihr hfftl auch ;-) Mein Problem mit den DDE Koponenten bestehen weiterhin. Kann aber auch sehr schnell Neues lernen, d.h. könnte mir nicht irgendjemand die ganz oben aufgeführte Methode erklären? Hab noch nirgends einen Ansatz an Hilfe in Form von Kommentaren bzw. Tutorials hier im Forum gefunden. Ist das wirklich soo schwer???
Naja, wäre sonst auch mit den DDE Kopmponenten zufrieden, wenn diese mehrere Dateien gleichzeitig und somit schnell weiterleiten können.
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#37

Re: Parameter SCHNELL an Hauptprog weiterleiten

  Alt 31. Dez 2004, 01:09
So, ich habe jetzt mal die DDE Komponenten richtig in mein Programm implementieren können, jedoch hat die Methode immer noch nicht die gewünschte Geschwindigkeit. Außerdem ist das Programm während der Übertragung der Dateinamen ständig im Vordergrund und es erscheint immer noch eine Warnung, dass der Computer vllt nicht mehr reagieren könne, wenn ich so viele Dateien gleichzeitig öffne. Deshalb bin ich ebenfalls der Meinung, dass die Methode veraltet und somit zu langsam ist. Ich brauche daher nun wirklich mal einen netten Helfer bzw. Lehrer, welcher mir bei der letzten und somit hoffentlich schnellen Methode helfen kann.

Zitat:
Es gibt 3 Wege wie man unter Windows eine Anwendung programieren muß damit sie aus der Shell auf multiple Dateien reagieren kann.

1.) Interprozesskommunikation: dabei überträgt eine eventuelle 2. Instance der eigenen Anwendung seinen ParamStr an die schon 1. laufende Instance der selben Anwendung. Danch terminiert die 2. Instance.

2.) Die Anwendung richtet einen DDE Server ein, registriert diesen bei der Shell über die Registry und empfängt dann nacheinander von der Shell die ausgewählten Dateien und Ordner

3.) Es wird eine DLL benutzt die sich als Shell Extension über die Registry veröffentlicht. Dieser Weg geht über COM Interfaces. Die ShellExt implementiert einen IContextMenu Handler der dann bei registrierten Dateitypen als neuer Menueintrag im PopupMenu des Explorers sichtbar wird.
(Ich habe diesen Teil in einem Thread aus dem Delphi-Praxis Forum gefunden.)
Da ich nun Variante 1 und 2 ausprobiert habe und diese nicht die erwünschte Leistung gebracht haben, hoffe ich auf die letze Chance.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#38

Re: Parameter SCHNELL an Hauptprog weiterleiten

  Alt 31. Dez 2004, 13:01
Zitat:
Ich brauche daher nun wirklich mal einen netten Helfer bzw. Lehrer

Boah !! .. und ansonsten kommst Du gut klar mit Deinen Mitmenschen ?
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#39

Re: Parameter SCHNELL an Hauptprog weiterleiten

  Alt 31. Dez 2004, 13:12
tolle Antwort o_O
Das "wirklich" war auf den Helfer bzw. Lehrer bezogen, da mir hier noch niemand richtig weiterhelfen konnte. Außerdem wollen wir hier doch jetzt nicht wirklich eine Beziehung mit Liebe und Hass aufbauen, oder? ;-))
Also kannste mir auch nicht weiterhelfen, stoxx? ...schade
  Mit Zitat antworten Zitat
starY

Registriert seit: 8. Mai 2004
18 Beiträge
 
#40

Re: Parameter SCHNELL an Hauptprog weiterleiten

  Alt 2. Mär 2005, 15:39
das gleich Problem habe ich auch weiß denn keiner eine Lösung?
Florian
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19: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