Seite 27 von 31

Verfasst: 14.10.2006 13:29
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... :|

Verfasst: 14.10.2006 16:03
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

Verfasst: 14.10.2006 18:52
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... ;)

Verfasst: 14.10.2006 19:45
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

Verfasst: 15.10.2006 15:38
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.

Verfasst: 17.10.2006 17:20
von RSBasic
@Lukaso
Ich habe eine Frage an dich. Wieviel Zeilen Code hast du insgesamt geschrieben? (Alle PB-Dateien zusammen zählen) :D

Verfasst: 17.10.2006 17:29
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 ;)

Verfasst: 17.10.2006 19:38
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.

Verfasst: 17.10.2006 19:52
von RSBasic
@Lukaso
WoW :allright: Gute Arbeit :allright:

Verfasst: 20.10.2006 17:00
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