Seite 1 von 2

Bildschirmschoner ?

Verfasst: 24.06.2009 00:12
von The_Dark_Zim-.-
Hey ich hab mir einen Bildschirmschoner gemacht ^^
Also eigentlich eine ganz normale *.exe
So ich hab es auf *.scr umbenannt, damit es Windows als Bildschirmschoner anerkennt ^^. Wenn ich nun Rechtsklick "install" mache funkt es auch schön und gut, aber ich komme nicht mehr in den Menüpunkt "Bildschirmschoner" :D
Wie kann man das verhindern ?

Gruß Zim

Verfasst: 24.06.2009 08:06
von ZeHa
Es gibt zwei Parameter fuer Bildschirmschoner, ich glaube -s fuer Start und -o fuer Optionen. Vielleicht auch mit Schraegstrich statt Minus, weiss ich nicht mehr genau.

Diese dann einfach per ProgramParameter() auslesen, dann kannst Du entsprechend drauf reagieren. Ich weiss nur nicht, ob das jetzt genau das ist, was Du brauchst (habe die Frage mit dem Menuepunkt "Bildschirmschoner" nicht ganz verstanden).

Verfasst: 24.06.2009 11:51
von Kaeru Gaman
öhm.. ja. ich auch nicht.

> aber ich komme nicht mehr in den Menüpunkt "Bildschirmschoner"

in welchem menu von was denn?

Verfasst: 24.06.2009 13:56
von jojo1541
ich lese draus, dass du den Reiter "Bildschirmschoner" im Anzeige-Menü nicht mehr öffnen kannst.
Allerdings kann ich mir nicht vorstellen, dass dein Bildschirmschoner diesen Reiter blockiert. (Außer du hast evtl. eine endlosschleife eingebaut und die setzt ein, wenn du auf den Button Optionen drückst. Dann schau mal zwei posts weiter nach oben.)

Verfasst: 24.06.2009 16:42
von KeyKon
Nach Screensaver zu suchen hätte dir bestimmt schneller geholfen ;-)

http://www.purebasic.fr/german/viewtopi ... highlight=

Verfasst: 24.06.2009 20:32
von The_Dark_Zim-.-
Ich meine hier den Menüpunkt "Bildschirmschoner" (die rote Makierung könnt ihr ignorieren :D ) Bild

Ich versuch mich mal durch den Kram von hier :http://www.purearea.net/pb/CodeArchiv/O ... enSaver.pb, durch zu wühlen wenn ich dann noch fragen hab stell ich sie natürlich :P

Verfasst: 24.06.2009 20:38
von Kaeru Gaman
ja ok, dann hatte volti recht.
das nennt man einen "Tab", "Panel" oder "Reiter", nicht "Menüpunkt".

möglich, dass dieser Tab die .scr mit /o aufrufen muss, und wenn du das nicht verarbeitest, streikt es?
hab ich aber noch nie ausprobiert...

Verfasst: 24.06.2009 20:41
von The_Dark_Zim-.-
Ich hab mir das nu mal angesehen und bin zu der Erkenntnis gekommen das ich das nicht verstehe :D

Ich bitte euch also um ein wenig hilfe ^^
Hier mein Code :

Code: Alles auswählen

InitSprite()
InitKeyboard()

OpenScreen(1024,768,32,"Pilz")

 CatchSprite(0, ?Pic1)
 CatchSprite(1, ?Pic2)

  DataSection
    Pic1: IncludeBinary "Pilz1.bmp"
    Pic2: IncludeBinary "Pilz2.bmp"
  EndDataSection

 TransparentSpriteColor(0,RGB(255, 0, 220))
 TransparentSpriteColor(1,RGB(255, 0, 220))

Repeat
SetFrameRate(1)
  If w = 2
   w = 0
  EndIf

ClearScreen($4C4C4C)
 
  If w = 0
ClearScreen($4CFF4C)
   ;DisplayTransparentSprite(0,0,0)
  ElseIf w = 1
ClearScreen($4C4CFF)
   ;DisplayTransparentSprite(1,0,0)
  EndIf

StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(0,752,"To exit press 'ESC'!")
StopDrawing()

ExamineKeyboard()
FlipBuffers()
w + 1
Delay(1)
Until KeyboardPushed (1)
Gruß ZIM

Verfasst: 24.06.2009 20:46
von jojo1541
Kaeru Gaman hat geschrieben: möglich, dass dieser Tab die .scr mit /o aufrufen muss, und wenn du das nicht verarbeitest, streikt es?
hab ich aber noch nie ausprobiert...
Nein, das hab ich schonmal probiert, als ich mal einen Bildschirmschoner geschrieben habe. Es geht lediglich der Bildschirmschoner an, wenn man auf den OPtionen-Button im Bildschirmschoner-Reiter drückt.


@The_dark_Zim-.-

Für dich ist lediglich dieser Teil

Code: Alles auswählen

 ; Bildschirmschoner werden unter  Wndows wie weiter oben beschrieben mit Parametern gestartet.
Param$ = RemoveString(Param$, Left(Param$,1),1) ;alten Parameter entfernen
Param$ = Left(Param$,1) ;neuen Parameter holen

Select Param$
  Case ""  ;wenn kein Parameter
    ConfigSaver() 
  Case "C"  ;wenn Parameter gleich c ist( bedeutet, dass der Bildschirmschoner konfiguriert werden soll.(rechte Maustaste auf die Datei, konfigurieren))
    ;Einstellungen 
    ConfigSaver() 
  Case "P"  ;Vorschau Taste im Anzeige-Menü
    ;Vorschau 
    Preview = 1 
    SParent = Val(Param1$) 
    Preview(SParent) 
  Case "A" ; Passwort setzen im Anzeige-Menü
    ;Passwort 
    SetPassword() 
  Case "S" ;S(art) Parameter, startet den Bildschirmschoner
    ;Hauptprogramm 
    Preview = 0 
    Main() 
EndSelect

Interessant, weil er die Parameter beinhaltet.
Ich habe ihn etwas auskommentiert.

Verfasst: 24.06.2009 21:21
von The_Dark_Zim-.-
Hm irgentwie krieg ich das nicht hin :(

Code: Alles auswählen

InitSprite()
InitKeyboard()

  DataSection
    Pic1: IncludeBinary "Pilz1.bmp"
    Pic2: IncludeBinary "Pilz2.bmp"
  EndDataSection

Global quit

Repeat


 ; Bildschirmschoner werden unter  Wndows wie weiter oben beschrieben mit Parametern gestartet.
Param$ = RemoveString(Param$, Left(Param$,1),1) ;alten Parameter entfernen
Param$ = Left(Param$,1) ;neuen Parameter holen

Select Param$
  Case ""  ;wenn kein Parameter
 OpenScreen(1024,768,32,"Pilz")
 
  CatchSprite(0, ?Pic1)
  CatchSprite(1, ?Pic2)
 
  TransparentSpriteColor(0,RGB(255, 0, 220))
  TransparentSpriteColor(1,RGB(255, 0, 220))
     Repeat
 SetFrameRate(1)
   If w = 2
    w = 0
   EndIf
 
 ClearScreen($4C4C4C)
  
  If w = 0
ClearScreen($4CFF4C)
   ;DisplayTransparentSprite(0,0,0)
  ElseIf w = 1
ClearScreen($4C4CFF)
   ;DisplayTransparentSprite(1,0,0)
  EndIf 
 
 StartDrawing(ScreenOutput())
 DrawingMode(#PB_2DDrawing_Transparent)
 DrawText(0,752,"To exit press 'ESC'!")
 StopDrawing()
 
 ExamineKeyboard()
 FlipBuffers()
 w + 1
 
 Delay(1)
 
 If KeyboardPushed(1)
 quit = 1
 EndIf
 Until quit = 1
  Case "C"  ;wenn Parameter gleich c ist( bedeutet, dass der Bildschirmschoner konfiguriert werden soll.(rechte Maustaste auf die Datei, konfigurieren))
    ;Einstellungen

  Case "P"  ;Vorschau Taste im Anzeige-Menü
    ;Vorschau

  Case "A" ; Passwort setzen im Anzeige-Menü
    ;Passwort

  Case "S" ;S(art) Parameter, startet den Bildschirmschoner
    ;Hauptprogramm
    OpenScreen(1024,768,32,"Pilz")

 CatchSprite(0, ?Pic1)
 CatchSprite(1, ?Pic2)



 TransparentSpriteColor(0,RGB(255, 0, 220))
 TransparentSpriteColor(1,RGB(255, 0, 220))
    Repeat
SetFrameRate(1)
  If w = 2
   w = 0
  EndIf

ClearScreen($4C4C4C)
 
  If w = 0
ClearScreen($4CFF4C)
   ;DisplayTransparentSprite(0,0,0)
  ElseIf w = 1
ClearScreen($4C4CFF)
   ;DisplayTransparentSprite(1,0,0)
  EndIf 

StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(0,752,"To exit press 'ESC'!")
StopDrawing()

ExamineKeyboard()
FlipBuffers()
w + 1

Delay(1)

If KeyboardPushed(1)
quit = 1
EndIf
Until quit = 1
EndSelect 

Delay(1)
Until quit = 1
Wie soll das gemacht werden wenn nicht so ??

Gruß und schonmal danke an jeden der versucht zu helfen