Bildschirmschoner ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
The_Dark_Zim-.-
Beiträge: 372
Registriert: 18.03.2008 16:53

Bildschirmschoner ?

Beitrag 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
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag 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).
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

öhm.. ja. ich auch nicht.

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

in welchem menu von was denn?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag 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.)
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Nach Screensaver zu suchen hätte dir bestimmt schneller geholfen ;-)

http://www.purebasic.fr/german/viewtopi ... highlight=
(\/) (°,,,°) (\/)
Benutzeravatar
The_Dark_Zim-.-
Beiträge: 372
Registriert: 18.03.2008 16:53

Beitrag 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
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
The_Dark_Zim-.-
Beiträge: 372
Registriert: 18.03.2008 16:53

Beitrag 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
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag 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.
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Benutzeravatar
The_Dark_Zim-.-
Beiträge: 372
Registriert: 18.03.2008 16:53

Beitrag 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
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Antworten