Das Programm hat kein Fenster (Openwindow(...)).
Es läuft mit einem Systrayicon.
Naja hier ist der PB Code:
Code: Alles auswählen
OpenFile(0,"System.txt"):CloseFile(0); Wird nur benutzt, damit die Datei erstellt wird, wenn sie nicht erstellt wurde. Wird der Editor benutzt, braucht man diese Zeile nicht (Ich habe es durch RunProgram("Preferences.xe") ersetzt).
OpenPreferences("System.txt"); Die Datei muss jeder selbst bearbeiten oder den Einstellungseditor benützen (siehe unten)
Image$ =ReadPreferenceString("Icon","")
System$=ReadPreferenceString("Systempath","")
Font$ =ReadPreferenceString("Font","D")
ClosePreferences()
If ReadFile(0,Image$)
CloseFile(0)
Else
MessageRequester("Fehler","Systrayicon wurde nicht gefunden!"+Chr(13)+"> "+Image$+" <",0):End
EndIf
If Font$="D"
Prog$="RunDll"
EndIf
If Font$="L"
Prog$="rundll"
EndIf
If Font$="U"
Prog$="RUNDLL"
EndIf
Run$=System$+Prog$+"32.exe"
If OpenWindow(0,0,0,0,0,#PB_Window_Invisible,Prog$,0)
If CreatePopupMenu(0)
OpenSubMenu("Power")
MenuItem( 0,"Abmelden")
MenuItem( 1,"Benutzer wechseln")
MenuItem( 2,"Herunterfahren")
MenuItem( 3,"Neustarten")
MenuItem( 4,"Ruhezustand")
MenuItem( 5,"Standby")
CloseSubMenu()
OpenSubMenu("Steuerung")
MenuItem( 6,"Systemsteuerung öffnen")
MenuBar()
MenuItem( 7,"Maus")
MenuItem( 8,"Tastatur")
MenuItem( 9,"Drucker")
MenuItem(10,"Schriftarten")
MenuItem(11,"Energie")
CloseSubMenu()
OpenSubMenu("Eingabehilfen")
MenuItem(12,"Tastatur")
MenuItem(13,"Sound")
MenuItem(14,"Anzeige")
MenuItem(15,"Maus")
MenuItem(16,"Allgemein")
CloseSubMenu()
OpenSubMenu("Software")
MenuItem(17,"Hinzufügen")
MenuItem(18,"Entfernen")
MenuBar()
MenuItem(19,"Setup")
CloseSubMenu()
OpenSubMenu("Anzeige")
MenuItem(20,"Hintergrund")
MenuItem(21,"Bildschirmschoner")
MenuItem(22,"Darstellung")
CloseSubMenu()
OpenSubMenu("Eigenschaften")
MenuItem(23,"Maus")
MenuItem(24,"Tastatur")
CloseSubMenu()
OpenSubMenu("Netzwerk")
MenuItem(25,"Laufwerk verbinden")
MenuItem(26,"Laufwerk trennen")
CloseSubMenu()
OpenSubMenu("Hardware")
MenuItem(27,"Hardware entfernen")
CloseSubMenu()
MenuItem(28,"Information")
MenuBar()
MenuItem(29,"Beenden")
EndIf
AddSysTrayIcon(0,WindowID(),LoadImage(0,Image$))
SysTrayIconToolTip(0,Prog$)
Repeat
Event=WaitWindowEvent()
If Event=#PB_Event_SysTray
If EventType()=#PB_EventType_RightClick
DisplayPopupMenu(0,WindowID())
EndIf
EndIf
If Event=#PB_Event_Menu
Select EventMenuID()
Case 0
RunProgram(System$+"Logoff.exe")
Case 1
RunProgram(Run$,"user32.dll,LockWorkStation","",0)
Case 2
RunProgram(Run$,"Shell32.dll,SHExitWindowsEx 1","",0)
Case 3
RunProgram(Run$,"Shell32.dll,SHExitWindowsEx 2","",0)
Case 4
RunProgram(Run$,"Shell32.dll,SHExitWindowsEx 3","",0)
Case 5
RunProgram(Run$,"Shell32.dll,SHExitWindowsEx 5","",0)
Case 6
RunProgram(Run$,"Shell32.dll,Control_RunDLL","",0)
Case 7
RunProgram(Run$,"Shell32.dll,Control_RunDLL main.cpl,@0","",0)
Case 8
RunProgram(Run$,"Shell32.dll,Control_RunDLL main.cpl,@1","",0)
Case 9
RunProgram(Run$,"Shell32.dll,Control_RunDLL main.cpl,@2","",0)
Case 10
RunProgram(Run$,"Shell32.dll,Control_RunDLL main.cpl,@3","",0)
Case 11
RunProgram(Run$,"Shell32.dll,Control_RunDLL main.cpl,@4","",0)
Case 12
RunProgram(Run$,"shell32.dll,Control_RunDLL access.cpl,,1","",0)
Case 13
RunProgram(Run$,"shell32.dll,Control_RunDLL access.cpl,,2","",0)
Case 14
RunProgram(Run$,"shell32.dll,Control_RunDLL access.cpl,,3","",0)
Case 15
RunProgram(Run$,"shell32.dll,Control_RunDLL access.cpl,,4","",0)
Case 16
RunProgram(Run$,"shell32.dll,Control_RunDLL access.cpl,,5","",0)
Case 17
RunProgram(Run$,"shell32.dll,Control_RunDLL appwiz.cpl,,1","",0)
Case 18
RunProgram(Run$,"shell32.dll,Control_RunDLL appwiz.cpl,,0","",0)
Case 19
RunProgram(Run$,"shell32.dll,Control_RunDLL appwiz.cpl,,2","",0)
Case 20
RunProgram(Run$,"shell32.dll,Control_RunDLL desk.cpl,,0","",0)
Case 21
RunProgram(Run$,"shell32.dll,Control_RunDLL desk.cpl,,1","",0)
Case 22
RunProgram(Run$,"shell32.dll,Control_RunDLL desk.cpl,,2","",0)
Case 23
RunProgram(Run$,"shell32.dll,Control_RunDLL main.cpl @0","",0)
Case 24
RunProgram(Run$,"shell32.dll,Control_RunDLL main.cpl @1","",0)
Case 25
RunProgram(Run$,"shell32.dll,SHHelpShortcuts_RunDLL Connect","",0)
Case 26
RunProgram(Run$,"shell32.dll,SHHelpShortcuts_RunDLL Disconnect","",0)
Case 27
RunProgram(Run$,"shell32.dll,Control_RunDLL hotplug.dll","",0)
Case 28
RunProgram(Run$,"Shell32.dll,ShellAboutA","",0)
Case 29
Quit=MessageRequester(Prog$,"Soll das Systrayicon jetzt etfernt werden?",#PB_MessageRequester_YesNo)
If Quit=6
End
EndIf
EndSelect
EndIf
Until Event=#PB_Event_CloseWindow
EndIfCode: Alles auswählen
New:
Icon$=OpenFileRequester("Systrayicon suchen",Icon$,"Icon (*.ico)|*.ico",0)
Sys$ =PathRequester("System32pfad suchen",Sys$)
Font$=InputRequester("Schriftart wählen","D=Normal (Aa) L=Klein (aa) U=Groß (AA)",Font$)
If Font$="L"
FontText$="LowerCase"
ElseIf Font$="U"
FontText$="UpperCase"
Else
FontText$="Default"
EndIf
OpenConsole()
ConsoleLocate(10,10)
Print("Systrayicon: "+Icon$)
ConsoleLocate(10,11)
Print("System32pfad: "+Sys$)
ConsoleLocate(10,12)
Print("Schriftart: "+FontText$)
ConsoleLocate(10,15)
Print("OK?")
ConsoleLocate(10,16)
Print("A=Abbrechen J=Ja N=Nein")
ConsoleLocate(10,20)
In$=Input()
Print(In$)
If In$="A"
CloseConsole()
End
EndIf
If In$="J"
ConsoleLocate(10,30)
Print("Erstelle Einstellungsdatei")
CreatePreferences("System.txt")
Print("Schreibe Icon in die Datei")
WritePreferenceString("Icon",Icon$)
Print("Schreibe Systemverzeichnis in die Datei")
WritePreferenceString("Systempath",Sys$)
Print("Schreibe Schriftart in die Datei")
WritePreferenceString("Font",Font$)
Print("Schließe Datei")
ClosePreferences()
Print("Fertig")
Delay(1000)
CloseConsole()
EndIf
If In$="N"
ConsoleLocate(10,30)
Print("Es werden nun die Einstellungen neugestartet...")
Delay(3000)
CloseConsole()
Goto New:
EndIf
; Bei diesem Code hatte ich lust auf eine Konsolenanwendung.



