AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Probleme mit Bass_Vis
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Bass_Vis

Ein Thema von BassFan · begonnen am 5. Jul 2006 · letzter Beitrag vom 28. Dez 2006
Antwort Antwort
Seite 6 von 7   « Erste     456 7      
BassFan
(Gast)

n/a Beiträge
 
#51

Re: Probleme mit Bass_Vis

  Alt 14. Jul 2006, 12:06
Handle der DLL finden?

Finde das Handle von den Plugin's nicht.
Was bekannt ist, ist das ParentWindow

Hwnd
ClassenName = ('Winamp v1.x')
Titel (Caption)

Wie kann ich nun das Handle der DLL ermitteln?
ich meine nicht das Handle des Moduls sondern des Fensters.

GetWindow,FindWindow,FindWindowEx alles will nicht funktionieren.

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#52

Re: Probleme mit Bass_Vis

  Alt 14. Jul 2006, 18:17
Hm, das Problem ist das jeder ein Winamp Vis Fenster erstellen kann wie er will, das heisst es ist nichts festgelegt. Damit sind die Fenstersuchfunktionen wie FindWindow etc. ggf. ervfolglos.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
BassFan
(Gast)

n/a Beiträge
 
#53

Re: Probleme mit Bass_Vis

  Alt 14. Jul 2006, 19:52
Zitat von turboPASCAL:
Hm, das Problem ist das jeder ein Winamp Vis Fenster erstellen kann wie er will, das heisst es ist nichts festgelegt. Damit sind die Fenstersuchfunktionen wie FindWindow etc. ggf. ervfolglos.
Nein
Das PluginHandle hat nichts mit erstellen von Fenstern zu tun.
Es soll lediglich dem user ermöglichen diverse Funktionen mit dem Handle asuzuführen.

Nicht alle Plugins unterstützen Docking.

Wenn ich das Handle kenne kann mein Player wenn er verschoben wird sich automatisch an das Plugin Window
andocken und es mitziehen.

So wie bei Winamp wenn die Playliste oder EQ andockt!

Eine andere Frage ?

function BASS_WINAMPVIS_SetChanInfo(handle: HVIS; Title: PChar; FileName: PChar; pos, len: DWORD): boolean; stdcall; Hier werden Diverse Infos übermittelt.
Den Titel , Filename muss ich wenn er ankommt über SendMessage an die Winproc senden.

PostMessage(handle,WM_WA_IPC,VisInfo^.Title,IPC_GETPLAYLISTTITLE) Hier stimmt was nicht es wird ein Integer als übergabe verlangt.

Wie kann ich den Text 'VisInfo^.Title' senden als Integer das er trotzdem richtig ausgewertet wird.

Grüße
  Mit Zitat antworten Zitat
BassFan
(Gast)

n/a Beiträge
 
#54

Re: Probleme mit Bass_Vis

  Alt 14. Jul 2006, 23:05
Zitat:
Hier stimmt was nicht es wird ein Integer als übergabe verlangt.
Hat sich erledigt!

gruß
  Mit Zitat antworten Zitat
BassFan
(Gast)

n/a Beiträge
 
#55

Re: Probleme mit Bass_Vis

  Alt 15. Jul 2006, 09:52
Soweit läuft jetzt alles!

Siehe ScreenShot.

Einzige Problem ist das Dummy Window von Winamp.
Ich habe es mal auf Visible gestellt damit man da problem besser erkennen kann.

Wenn nun ein plugin ausgeführt wird hängt es sich an das Fenster an.
Das ist es aber was ich verhindern will .. es soll wie bei Winamp sich an mein fenster andocken.

Hier nochmal ein Schnipsel vom Source.

Delphi-Quellcode:
  // Erst wenn die Classe registriert ist kann das Window erstellt werden
  WinAtom := Windows.RegisterClassEx(wClass);

  if WinAtom <> 0 then
    Result := CreateWindowEx(0, AppClass, AppTitle,
      WS_VISIBLE, // Kein Frame, Unsichtbar
      0, 0, 275, 116, // x, y, width, height
      {parent} 0, 0, hInst, nil)
  else
    Result := 0;

     // AppParentHandle Hwnd von der ausführenden Anwendung
// if AppParentHandle <> 0 then
// begin
// VisPlgHandle := Result;
// SetParent(VisPlgHandle, AppParentHandle);
// SetWindowPos(VisPlgHandle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOSIZE);
// end
// else

// VisPlgHandle := Result;

  VisInfo^.WinHandle := VisPlgHandle;
  WinampVisExecute(Filename, Vismod, VismodCounter, VisPlgHandle);

  // ParentWindow der APPClass zuweisen
  VisInfo^.VisModule^.hwndParent := VisPlgHandle;
  VisInfo^.VisModule^.Init(VisInfo^.VisModule);
  PluginHandle := GetWindow(VisInfo^.VisModule^.hwndParent, GW_HWNDPREV);
Wenn die zeilen oben auskommentiert werden dann hängt sich das Programm auf..
bzw. verliert den Focus und läuft nicht weiter.

Was kann ich da sonst noch machen habs mit zwei WinProcs versucht und.. und.. und..
Weiss im moment nicht weiter.
Miniaturansicht angehängter Grafiken
test_138.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#56

Re: Probleme mit Bass_Vis

  Alt 15. Jul 2006, 11:51
Wie gesagt, du weist ja nicht wie der Programierer das Plugin gebaut hat. Ob es sich um eine Form wie in Delphi, VB etc. als Standalone, Dialog etc. dich darstellt.
Desswegen wird es auch schwehr mit FindWindow das Handle zu finden und sich dan die WndProc zu holen und oder umzubigen.


Du kontest aber versuchen das Pluginfenster auf dein Fenster zu kleben...
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
BassFan
(Gast)

n/a Beiträge
 
#57

Re: Probleme mit Bass_Vis

  Alt 15. Jul 2006, 12:12
Zitat von turboPASCAL:
Wie gesagt, du weist ja nicht wie der Programierer das Plugin gebaut hat. Ob es sich um eine Form wie in Delphi, VB etc. als Standalone, Dialog etc. dich darstellt.
Desswegen wird es auch schwehr mit FindWindow das Handle zu finden und sich dan die WndProc zu holen und oder umzubigen.


Du kontest aber versuchen das Pluginfenster auf dein Fenster zu kleben...
Es gibt ja nur 2 möglichkeiten
entweder ich bekomme das HWND über PluginHandle := GetWindow(VisInfo^.VisModule^.hwndParent, GW_HWNDPREV); oder es wird ein wert 0 zurückgegeben.

In 90% aller fälle ist das handle vorhanden.
Die anderen 10 sind meistens plugins welche sich selbst andocken.
Mein problem ist das hier erstellte 'Winamp v1.x' in das Window meiner Anwendung einzufügen.
Das Handle ist immer bekannt da es ja im Thread selbst erstellt wird.

Nur es verliert den Focus sobald ich es in meine Form verschiebe.
dann läuft die routine nicht mehr durch weil sich die reihenfolge kindfenster,Parentfenster,Child-fenster
geändert hat.

wenn alle stricke reißen werd ich es wohl mit GetwindowRec machen müssen.
Nur das ist extrem CPU lastig da es mein Window immer verfolgen muss
sobald es verschoben wird.

grüße
  Mit Zitat antworten Zitat
BassFan
(Gast)

n/a Beiträge
 
#58

Re: Probleme mit Bass_Vis

  Alt 16. Jul 2006, 11:08
[quote]Desswegen wird es auch schwehr mit FindWindow das Handle zu finden und sich dan die WndProc zu holen und oder umzubigen. [delphi]

wir reden irgendwie aneinander vorbei.
Das Handle finde ich immer. Notfalls Enumeriere ich alle Fenster und vergleiche sie über ein vorher angelegtes array
in dem sich alle Window Handle befinden.

Wie kann ich die Kontrolle über das von mir erstellte
Fenster zurückbekommen sobald dieses als ParentWindow in
das Anwendungs Fenster verschoben wurde.

grüße
  Mit Zitat antworten Zitat
BassFan
(Gast)

n/a Beiträge
 
#59

Re: Probleme mit Bass_Vis

  Alt 16. Jul 2006, 14:11
Da niemand antwortet.

Zitat:
Wie kann ich die Kontrolle über das von mir erstellte
Fenster zurückbekommen sobald dieses als ParentWindow in
das Anwendungs Fenster verschoben wurde.
beantworte ich es selber!

Hat sich erledigt es geht.
Schaut auf das kleine Visualisierungs Window unter der Zeitanzeige
Miniaturansicht angehängter Grafiken
esgeht_152.jpg  
  Mit Zitat antworten Zitat
BassFan
(Gast)

n/a Beiträge
 
#60

Re: Probleme mit Bass_Vis

  Alt 16. Jul 2006, 16:17
So hier ist das Projekt mit Quelltext der Exe
welche die Bass_Vis als visualisierung für Winamp Plugins bis 2.9 verwendet.

Habe einen exeption-Handler mit eingebaut.
Ihr könnt aber auch Fehler hier melden wenn ihr wollt.
Oder Fragen stellen bzgl. PlayStatus, Text anzeige usw....

gruß

EDIT: Ihr müßt eine Quelle starten welche Musk wiedergibt ansonsten wird nix angezeigt.
Angehängte Dateien
Dateityp: rar bassvis_delphi_185.rar (752,7 KB, 27x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 7   « Erste     456 7      


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