maybe somebody will test it before posting it in the bug section.
Here´s the 
Code: Select all
Global screen_x.l
Global screen_y.l
Procedure getFileNames(ActPfad$)
  NewList FileList.s()
  Ergebnis = ExamineDirectory(0, ActPfad$, "*")
  Repeat
    DirFlag = NextDirectoryEntry()
    If DirFlag = 1
      DateiName$ = DirectoryEntryName()
      
      Endung$ = GetExtensionPart(DateiName$) 
      ;MessageRequester("Endung$",Endung$,0)
      If Endung$ = "bmp" Or Endung$ = "jpg" Or Endung$ = "jpeg" Or Endung$ = "tif" Or  Endung$ = "tga" Or  Endung$ = "png"Or Endung$ = "JPG" Or Endung$ = "JPEG" Or Endung$ = "TIF" Or  Endung$ = "TGA" Or  Endung$ = "PNG"  
        DateiName$ = ActPfad$ + DateiName$
        ;MessageRequester("DateiName$",DateiName$,0)
        AddElement(FileList())
        FileList()=DateiName$
      EndIf 
    EndIf 
  Until DirFlag = 0
  ResetList(FileList()) 
EndProcedure
 
Procedure showPict(FileName$)
  If LoadImage(0, FileName$)
    PictW=ImageWidth()
    PictH=ImageHeight() 
    If PictW >  screen_x
      PictH = PictH * screen_x / PictW
      PictW = screen_x
    EndIf 
    If PictH >  screen_y
      PictW = PictW * screen_y / PictH
      PictH = screen_y
    EndIf 
    PictX = (screen_x - PictW) / 2
    PictY = (screen_y - PictH) / 2
    ResizeImage(0, PictW, PictH)
    ClearScreen(0,0,0)
    StartDrawing(ScreenOutput())
    DrawImage(UseImage(0), PictX, PictY) 
    StopDrawing()
    FlipBuffers()
    ProcedureReturn = #true
  Else
    MessageRequester("Fehler!",FileName$ + " konnte nicht geöffnet werden.",0)
    ProcedureReturn = #false
  EndIf
    
EndProcedure
Procedure.s ProgNam() 
  ProgPath$ = Space(250) 
  GetModuleFileName_(0,@ProgPath$,250)
  ProcedureReturn ProgPath$
EndProcedure
Pause.b
UseJPEGImageDecoder()
UseTGAImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
screen_x = GetSystemMetrics_(#SM_CXSCREEN)
screen_y = GetSystemMetrics_(#SM_CYSCREEN)
Pfad$ = GetPathPart(ProgNam());####################
;Pfad$ = "F:\";#####################################
;F: is my CD-Drive. Same problem as with GetPathPart()
getFileNames(Pfad$)
Ergebnis = InitSprite()
  If OpenScreen(screen_x, screen_y, 32, "Dia Show") 
    InitKeyboard()
    InitMouse()    
    ExamineKeyboard()
    ExamineMouse() 
    While NextElement(FileList()) And KeyboardPushed(#PB_Key_Escape) = 0
        ExamineKeyboard()
        ExamineMouse()
        i=0
        links=0
        rechts=0
        Pause = 0 
        If showPict(FileList())
          Repeat
            ExamineKeyboard()
            ExamineMouse()
            Delay(20)
            If Pause <> 1
              i=i+1
            EndIf 
            If MouseButton(1) Or KeyboardPushed(#PB_Key_Left)
              links = 1
            EndIf 
            If MouseButton(2) Or KeyboardPushed(#PB_Key_Right)
              rechts = 1
            EndIf
            If MouseButton(3) Or KeyboardPushed(#PB_Key_Space)
              Pause = Pause ! 1
            EndIf  
          Until rechts Or links Or KeyboardPushed(#PB_Key_Escape) Or i > 250
          Delay(200)
          FreeImage(0)
        EndIf 
      If links
        PreviousElement(FileList())
        PreviousElement(FileList())
      EndIf
    Wend
    
    CloseScreen()
  EndIf 
  
End
As written - started from HD it shows even jpg´s from CD.
Started from CD it crashes with jpg´s but not with tif´s.
Arrow/mouse right = next pict
ESC = quit
If somebody want´s to do the work an start a burning session ...
PS.: I´m using PureBasic 3.72 on WinXP. The CD is burned with multi session (15 sessions now 

 )