40-Pix-Player

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Ich hab mich gestern mal etwas mit Hooks auseinandergesetzt, aber ich bin auf keinen grünen Zweig gekommen... Die Procedure, die das Hook verarbeitet, scheint ja ziemlich einfach zu coden sein, aber um das Hook überhaupt mal zu setzen, das geht irgendwie zum VErrecken nicht... :|
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

hardfalcon hat geschrieben:Ich hab mich gestern mal etwas mit Hooks auseinandergesetzt, aber ich bin auf keinen grünen Zweig gekommen... Die Procedure, die das Hook verarbeitet, scheint ja ziemlich einfach zu coden sein, aber um das Hook überhaupt mal zu setzen, das geht irgendwie zum VErrecken nicht... :|
habs :allright:

Eine Stunde MSDN Studieren und probieren :allright:

mouse.include.pb

Code: Alles auswählen

Structure uPoint
  
  lXPos.l
  lYPos.l
  
EndStructure

Structure uRect
  
  lLeft.l
  lTop.l
  lRight.l
  lBottom.l
  
EndStructure

Structure uMsLLHookStruct
  
  uPoint.uPoint
  lMouseData.l
  lFlags.l
  lTime.l
  lExtraInfo.l
  
EndStructure

Procedure.b MouseOverWindow(lWindow.l)

  Protected bRetVal.b = #False
  
  If IsWindow(lWindow)
    
    Protected uMouse.uPoint, uWindowRect.uRect
    
    GetWindowRect_(WindowID(lWindow), uWindowRect) 
    GetCursorPos_(uMouse) 
    
    If uMouse\lXPos >= uWindowRect\lLeft And uMouse\lXPos <= uWindowRect\lRight And uMouse\lYPos >= uWindowRect\lTop And uMouse\lYPos <= uWindowRect\lBottom 
      
      bRetVal = #True

    EndIf

  EndIf
  
  ProcedureReturn bRetVal
  
EndProcedure

Procedure.w MouseWheelDelta(wParam.l)
  
  Protected wWheel.w = ((wParam >> 16) & $FFFF)
  ProcedureReturn - (wWheel / 120) 
  
EndProcedure

Procedure.l MouseWheelHookCallback(lCode.l, wParam.l, *lParam.uMsLLHookStruct)

  If lCode = #HC_ACTION
    
    If wParam = #WM_MOUSEWHEEL

      If MouseOverWindow(#WindowMain)
        
        Protected bMouseWheel.l = MouseWheelDelta(*lParam\lMouseData)
        
        If bMouseWheel = 1
          
          FmodExClose()
          PlaylistSetNextElement() 
          FmodExOpen(uElement\sPath + uElement\sFile)
          FmodExPlay() 
          
        ElseIf bMouseWheel = -1
          
          FmodExClose()
          PlaylistSetPreviousElement()
          FmodExOpen(uElement\sPath + uElement\sFile)
          FmodExPlay() 
          
        EndIf
        
        ProcedureReturn #True
        
      EndIf
      
    EndIf

  EndIf  
    
  ProcedureReturn CallNextHookEx_(0, lCode, wParam, *lParam) 
  
EndProcedure

Procedure.l MouseWheelHookInstall()
  
  Global lMouseHook.l = SetWindowsHookEx_(#WH_MOUSE_LL, @MouseWheelHookCallback(), GetModuleHandle_(0), 0)
  
  ProcedureReturn lMouseHook
  
EndProcedure

Procedure MouseWheelHookRemove()
  
  UnhookWindowsHookEx_(lMouseHook)
  lMouseHook = #False
  
EndProcedure

MouseWheelHookInstall()
Gruß Lukas
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Hey, geiles Konzept :allright:

Schick, schlank und nützlich..!
Nur habe ich ein paar MP3s gerade, die spielt er zwar ab, aber die ID3's sind irgendwie verwurschtelt...

Bild
Ich habe nachgeschaut, und es liegt nicht an mir...
Winamp sagt folgendes zu der MP3:
Bild

Ansonsten: Good Job!

Gr33tz
Tafkadasom2k5

Edit: Er macht das bei ALLEN weiteren Liedern jetzt... ö.Ö
Aber in den Playlisten wird es richtig angezeigt (auch wenn ich dort die ID3-Tags den Filenamen bevorzugen würde)

Einen Vorschlag hätte ich noch- vielleicht ist er schon integriert, aber dann habe ich ihn "auf die Schnelle" nicht gefunden:
Gibt es eine "Global-Hotkey-Funktion"? Ich würde gerne Sezialtasten belegen, um meine Maus nicht immer nach unten links zu bewegen... ;)
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

@Tafkadasom2k5,

das ist mir bei einigen MP3s auch aufgefallen. Kann sein das es an den ID3v2 Tags liegt. Muss ich mal näher untersuchen.

Ne Hotkey-Funktion gibt es noch nicht, die kommt aber noch, genauso wie ID3Tags im Menü :)

Grüße Lukas
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

eine kleine design sache :D :
im playlist-fenster ist der 'progress'-balken irgendwie sehr rechts angeglitscht, zumal die lücke links daneben um so größer aussieht. und die farbe könnte bisschen dunkler sein, bzw der kontrast zum untergrund besser.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Lukaso
Ich habe eine Frage an dich. Wieviel Zeilen Code hast du insgesamt geschrieben? (Alle PB-Dateien zusammen zählen) :D
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
armada
Beiträge: 100
Registriert: 10.10.2005 18:00
Kontaktdaten:

Beitrag von armada »

Lukaso hat geschrieben:@Tafkadasom2k5,

das ist mir bei einigen MP3s auch aufgefallen. Kann sein das es an den ID3v2 Tags liegt. Muss ich mal näher untersuchen.

Ne Hotkey-Funktion gibt es noch nicht, die kommt aber noch, genauso wie ID3Tags im Menü :)

Grüße Lukas
es gibt afaik mehrere version von id3v2...vielleicht liegt ja da das problem ;)
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

RSBasic hat geschrieben:@Lukaso
Ich habe eine Frage an dich. Wieviel Zeilen Code hast du insgesamt geschrieben? (Alle PB-Dateien zusammen zählen) :D
Die Version 0.27 (die, die es zum DL gibt) hat genau 4.989 Zeilen.
Den neuen den ich entwickle schätze ich auf 20.000 Zeilen ein.
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Lukaso
WoW :allright: Gute Arbeit :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

Uff, endlich habe ich den komischen Crashbug behoben bekommen nachdem ich schon ein halbes Jahr suche. Desweiteren habe ich jetzt endlich den Player im Unicodemodus laufen und ein passender russischer Übersetzer hat sich auch schon gefunden. Jetzt können endlich die arabischen Leute ihre MP3s auch abspielen.

Werde in der kommenden Woche eine Vorabversion zum Vorabtesten veröffentlichen. :allright:

Lukas
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Antworten