ich dachte mir, so zum mal wieder warm werden in Sachen programmieren, habe ich mir ein kleines PRG geschrieben, dass eigentlich nichts anderes macht als ein Fenster zu öffnen, etwas Grafik anzeigen, einen Text-Scroller an zu zeigen und auf Tastatureingabe wartet, dass es ein externes PRG starten kann.
So schön, so gut... das ganze hier compiliert... Die EXE auf meinen ganzen Rechnern hier getestet (6 Rechner von xp bis win10, jeweils in 64 oder 32bit) läuft wunderbar. Das ganze auf unseren Forum zum runterladen angeboten... soweit alles toll und schön und so

Nun sind ein paar Rechner aufgetaucht, das wo das PRG nicht läuft. Da haben wir ein Win10 und ein Win7 beides 64bit da wo es nicht läuft - das heißt es wird nichts angezeigt. Im Taskmanager ist das PRG jedoch verzeichnet. Ich habe nun schon hin und her probiert, warum es nicht auf dieses Rechner läuft. Bin nun langsam am Ende... wie gehe ich nun weiter an das Problem ran? hat einer ne Idee?
Hier mal der Quellcode:
Code: Alles auswählen
If InitSprite() And InitKeyboard() = 0
MessageRequester("Error", "Can't open screen & sprite environment!", 0)
End
EndIf
Define EventID
Procedure AddFont()
AddFontResource_("cbm.ttf");Anpassen
SendMessage_(#HWND_BROADCAST,#WM_FONTCHANGE,0,0)
EndProcedure
Procedure RemoveFont()
RemoveFontResource_("cbm.ttf");Anpassen
SendMessage_(#HWND_BROADCAST,#WM_FONTCHANGE,0,0)
FreeFont(1)
EndProcedure
; Lade Image und starte prozedur für fontload
UsePNGImageDecoder()
UseJPEGImageDecoder()
; LoadImage(2,"relo-nebulus.jpg")
; LoadImage(3,"scan3.png")
AddFont()
LoadFont(1,"cbm",10, #PB_Font_HighQuality)
LoadFont(2,"cbm",9, #PB_Font_HighQuality)
DataSection
pic_1_Start:
IncludeBinary "relo-nebulus.jpg"
pic_1_End:
EndDataSection
DataSection
pic_2_Start:
IncludeBinary "scan3.png"
pic_2_End:
EndDataSection
CatchImage (2, ?Pic_1_Start, ?pic_1_End)
CatchImage (3, ?Pic_2_Start, ?pic_2_End)
; Text für Scroller und Längenermittlung
#width = 640
#height = 200
#txt = 0
CreateImage(#txt, #width, 20, 32) ; #PB_Image_Transparent)
Define text.s = "RETROLOADER V0.1 BY PIXELINVADERS... PLAY NEBULUS (AMIGA-VERSION) BY TRIFFIX ENTERTAINMENT 1987 +++ SIDTUNE STOLEN FROM HIGH VOLTAGE SID COLLECTION - TRACK: UNKOWN84 +++ GREETINGS TO CYRA - KAOS - NORTH - APPRENTICE - RETROBLAH - INFINITY(NES) - ZERSTAMPFER - JENS64 - HOUDINI - BRUN0 - CLASSIC-VIDEOGAMES - ARCADEZENTRUM - ARCADEINFO - CIRCUIT-BOARD - AND ALL PEOPLE OVER THE WORLD :D "
StartDrawing(ImageOutput(#txt))
DrawingFont(FontID(1))
Define length.l = TextWidth(text) + #width
StopDrawing()
Define pos.l = #width
Define speed.l = 2 ;Millisekunden pro Pixel
Define zeit.l = ElapsedMilliseconds()
; main mit window-screen
Define event.l
para$="-soundvolume 50 84.sid"
dv=RunProgram("vsid.exe",para$,"", #PB_Program_Open | #PB_Program_Hide)
If OpenWindow(0, 0, 0, 640, 480, "REtro-LOad V0.1", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, #True, 0, 0, #PB_Screen_WaitSynchronization)
; ClearScreen(RGB(250,0,0))
; FlipBuffers()
; LoadSprite(1,"back1.bmp")
; DisplaySprite (1,0,0)
StartDrawing(ScreenOutput())
DrawImage(ImageID(2),0,0)
StopDrawing()
; scanlines für fast das ganze window
StartDrawing(ScreenOutput())
DrawAlphaImage(ImageID(3),0,0,100)
StopDrawing()
; DisplayTransparentSprite (1,0,0,100 )
Repeat
ExamineKeyboard()
taste$ = KeyboardInkey()
If taste$="1"
KillProgram(dv)
c64para$="-f nebulus-start3.uae"
RunProgram("winuae.exe",c64para$,"")
;RunProgram("n.bat","","", #PB_Program_Hide)
End
EndIf
If taste$="2"
KillProgram(dv)
c64para$="-f nebulus-start3_win.uae"
RunProgram("winuae.exe",c64para$,"")
;RunProgram("n.bat","","", #PB_Program_Hide)
End
EndIf
Repeat
Event = WaitWindowEvent(1)
If Event = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
; RemoveFont() ; <---- prozedurstart für font löschen aus dem system
KillProgram(dv)
End
EndIf
Until Event = 0
Gosub scrollText
ForEver
Else
MessageRequester("Error", "Ups! Irgendwie geht das nicht", 0)
EndIf
EndIf
; Scroller routine
scrollText:
If zeit+speed < ElapsedMilliseconds()
zeit = ElapsedMilliseconds()
StartDrawing(ImageOutput(#txt))
;DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(1))
DrawText(pos,5,text,#Yellow)
StopDrawing()
StartDrawing(WindowOutput(0))
; StartDrawing(ScreenOutput())
DrawImage(ImageID(#txt),0,460)
StopDrawing()
pos - 1
If pos < -length+#width
pos = #width
EndIf
EndIf
; scanlines für scroller
StartDrawing(WindowOutput(0))
DrawAlphaImage(ImageID(3),0,460,100)
StopDrawing()
Return
north