Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Parameter SCHNELL an Hauptprog weiterleiten (https://www.delphipraxis.net/35710-parameter-schnell-hauptprog-weiterleiten.html)

Nogge 13. Dez 2004 16:52

Re: Parameter SCHNELL an Hauptprog weiterleiten
 
ich will doch gar nicht die dateien auf mein fomular ZIEHEN, sondern per RECHTSKLICK: (z.B. mit dem eintrag) "add to player" in meine liste hinzufügen.
Zitat:

In der Prozedur in der die WM_DROPFILES Messages (in dem Beispiel AcceptFiles) abgefangen wird, wird dann einfach, statt der Ausgabe mit MessageBox die Dateien deiner Liste hinzugefügt.
mir ist schon klar, wie ich mit abgefangegene messages umgehen kann ;-)

mumu 13. Dez 2004 17:25

Re: Parameter SCHNELL an Hauptprog weiterleiten
 
poste mal die funktion die aufgerufen wird, wenn der parameter wm_copydata message in deinem Programm ankommt. ggfs liest du hier schon mp3 tag usw... aus, dann kann es nämlich sein, dass es deswegen so lange dauert, bis alle dateien in deinem player erscheinen.

Nogge 13. Dez 2004 18:14

Re: Parameter SCHNELL an Hauptprog weiterleiten
 
drück ich mich sooo undeutlich aus? jeder, der mein problem nicht versteht, sollte mal selber schnell ne COPYDATA procedure bzw. programm erstellen und mehrere dateien gleichzeitig öffnen. dabei werden dann so viele instanzen meines programms geöffnet und wieder geschlossen wie ich an dateien so geöffnet habe. selbst wenn ich meine parameter vor dem erstellen der form an die hauptinstanz sende und die instanz gleich wieder schließe, dauert es sehr lange, bis alle instanzen geschlossen werden. bei 2 oder 3 dateien bemerkt man die verzögerung auch nicht, aber bei 30,40,50,100 usw. dateien gleichzeitig dauert es eine ganze weile.
@jim_raynor noch mal: ich habe schon lange ne procedure für "drag&drop vom explorer in meine playlist" in meinem programm integriert. möchte jetzt aber noch (wie ich dauernd erwähne) eine andere möglichkeit bzw. ne schnellere möglichkeit sehr viele dateinamenpfade in eine liste zu senden. vllt versteh ich dich jetzt ja nur falsch...

Nogge 14. Dez 2004 18:56

Re: Parameter SCHNELL an Hauptprog weiterleiten
 
es hat zwar nichts damit zu tun, aber ok...hier mein source code fürs empfangen (so wird diese Thread wenigstens in der übersicht wieder nach oben geschoben^^):
Delphi-Quellcode:
procedure TForm1.WMCopyData(var Msg: TWMCopyData);
var sText: Array of Char; Item: String; ForegroundThreadID,ThisThreadID:Cardinal;
begin
case Msg.CopyDataStruct.dwData of
  MY_SENTPARAM: begin                      
    SetLength(sText,Msg.CopyDataStruct.cbData);
    StrLCopy(PChar(sText),Msg.CopyDataStruct.lpData,Msg.CopyDataStruct.cbData);
    Item:=PChar(sText);
    Listbox1.Items.Add(Item);
  MY_SHOWAPP: begin
    ForegroundThreadID:=GetWindowThreadProcessID(GetForegroundWindow);
    ThisThreadID:=GetWindowThreadProcessId(Handle);
    if AttachThreadInput(ThisThreadID,ForegroundThreadID,True) then begin
    BringWindowToTop(Handle);
    SetForegroundWindow(Handle);
    AttachThreadInput(ThisThreadID,ForegroundThreadID,False);
    end; end;
end;
ist mein problem wirklich so schwer zu lösen oder möchte mir hier einfach niemand ne lösung schreiben?^^

jim_raynor 14. Dez 2004 19:27

Re: Parameter SCHNELL an Hauptprog weiterleiten
 
Ich habs jetzt nochmal getestet. Also mehrere Dateien markiert und auf eine Exe gezogen. Hat wunderbar nur das prog nur einmal gestartet.

Wenn ich die Dateien markiere und über das Kontextmenü dann an Winamp schicke wird auch bei Winamp für jede Datei eine Anwendung geöffnet. Ich glaube einfach, dafür gibt es keine Lösung.

dadu 14. Dez 2004 19:54

Re: Parameter SCHNELL an Hauptprog weiterleiten
 
Muss es aber doch!
Die "profi"-Player können das ja auch! Wenn ich mehrere mp3-Dateien im Windows-Explorer markiert habe und ENTER drücke sind die sofort in der Playliste!
Kann es vielleicht sein, dass Windows beim öffnen einer Datei eine Message rausschickt(zb: wm_beforeopen(filename)), die Winamp abfängt, prüft ob die Datei mit Winamp abgespielt werden soll und den "Windows-öffnen-Vorgang" abbricht??? Würde die Geschwindigkeit erklären.

DaDu

jim_raynor 14. Dez 2004 19:58

Re: Parameter SCHNELL an Hauptprog weiterleiten
 
Okay, hast Recht. Was ich jetzt rausgefunden, wenn du in den Dialog zum Bearbeiten der Dateitypen offen hast, kannst du eine Option DDE aktivieren benutzen. Dann funktioniert das allerdings. Allerdings frag mich nicht wie das Programm aussehen muss, damit es soetwas unterstützt. Das ne Windows-message gesendet wird bezweifel ich stark, da er ja garnicht weiss an welches Prog und wenn doch könnte man so schöne Viren und Trojaner basteln ;)

Nogge 14. Dez 2004 21:26

Re: Parameter SCHNELL an Hauptprog weiterleiten
 
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? ;_;

jim_raynor 14. Dez 2004 21:34

Re: Parameter SCHNELL an Hauptprog weiterleiten
 
Versuchen wir es noch mal auf Deutsch und etwas umfangreicher. :oops:

Im Explorer unter Extras->Ordneroptionen bekommst du ja eine Übersicht mit den Dateitypen. Wenn du dann deinen entsprechenden Dateityp auswählst und dann auf erweitert gehst, kannst du ja die Aktionen bearbeiten, die zu diesem Dateitypen im Kontextmenü angezeigt werden. Wenn du dann eine Aktion bearbeitest, kannst du die Option "DDE verwenden" aktivieren. (am besten du schaust dir das mal bei MP3 an).

Ist "DDE verwenden" aktiviert, kommt diese Meldung ("Das gleichzeitige öffnen ...") nicht mehr. Allerdings weiss ich nicht, wie dein Programm aussehen muss, um die Daten richtig zu verarbeiten.

Nogge 15. Dez 2004 09:43

Re: Parameter SCHNELL an Hauptprog weiterleiten
 
ich habe jetzt herausgefunden, dass man mit IICONTEXTMENU die markierten dateien im explorer ermitteln kann. da das aber unbekanntest gebiet für mich ist, bräuchte ich einen link für nen tutorial bzw. jemand erklärt mir, wie ich mein problem mit dieser neuen erkenntnis lösen kann.
wenn ich nämlich mit nur einer neuen (2.) instanz alle dateinamen auf einmal an meine hauptinstanz schicken kann, muss sich nur die neue (2.) instanz schließen und das geht so schnell, dass man es nicht mehr bemerkt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.
Seite 3 von 6     123 45     Letzte »    

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