Bug ?! Pls Help ^^
- The_Dark_Zim-.-
- Beiträge: 372
- Registriert: 18.03.2008 16:53
- Deluxe0321
- Beiträge: 336
- Registriert: 19.05.2006 00:31
- Kontaktdaten:
Windows konvertiert jpg,png,gif usw.. in bmp und speichert sie dann in "C:\Windows\System32" oder "C:\Dokumente und Einstellungen\UserName\Lokale Einstellungen\Anwendungsdaten\Microsoft" zumindest in XP. Ich denke bei Vista wird es genauso funktionieren. Kurzum wirst du alle Bilder auch konvertieren müssen.
Grüße
Grüße
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- The_Dark_Zim-.-
- Beiträge: 372
- Registriert: 18.03.2008 16:53
Mein Programm Confertiert auch alle bilder zu *.bmp.
Das Problem ist, dass es bei mir unter SysWOW64 (Windows XP 64x) gespeichert wird. Darum ist es nach dem Neustart auch weg. In der Regestrie steht nähmlich system32. Ich hab auch geschrieben das er es unter system32 speichern soll macht er aber nicht, keine ahnung warum.
Bei Vista (server 2008 64x) speichert er das auch woanders kp wieso er das macht. Ich denke mal das er das unter 32 Bit Systemen nicht macht.
hier der Code:
Gruß ZIM
Das Problem ist, dass es bei mir unter SysWOW64 (Windows XP 64x) gespeichert wird. Darum ist es nach dem Neustart auch weg. In der Regestrie steht nähmlich system32. Ich hab auch geschrieben das er es unter system32 speichern soll macht er aber nicht, keine ahnung warum.
Bei Vista (server 2008 64x) speichert er das auch woanders kp wieso er das macht. Ich denke mal das er das unter 32 Bit Systemen nicht macht.
hier der Code:
Code: Alles auswählen
Enumeration
#Window_0
#String_0
#String_1
#Button_0
#Button_1
#Button_4
#Text_0
#Text_1
#Image_0
#Image_1
#Image_2
EndEnumeration
Global Icon0
Global Image0
Global RegFile$
Icon0 = CatchImage(6, ?Icon0)
Image0 = CatchImage(7, ?Image0)
DataSection
Image0:
IncludeBinary "logo.bmp"
Icon0:
IncludeBinary "wallpaperZIM.ico"
EndDataSection
UseJPEGImageDecoder()
UseTGAImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
OpenConsole()
ConsoleTitle("WallpaperChanger @ TheDarkZim-.-")
ConsoleColor(12, 0)
ConsoleCursor(10)
Print("Dieses Programm wurde von The_Dark_Zim-.- geschrieben!")
Delay(1500)
Print(".")
Delay(200)
Print(".")
Delay(200)
PrintN(".")
Delay(200)
PrintN("#################################################")
Delay(50)
PrintN(" # #")
Delay(50)
PrintN(" # #")
Delay(50)
PrintN(" # /\ /\ #")
Delay(50)
PrintN(" # //_\ /_\\ #")
Delay(50)
PrintN(" # /// \\\ #")
Delay(50)
PrintN(" # ______________________ #")
Delay(50)
PrintN(" # \ / #")
Delay(50)
PrintN(" # \ / #")
Delay(50)
PrintN(" # \ __ __ / #")
Delay(50)
PrintN(" # \/°°\ /°°\/ #")
Delay(50)
PrintN(" # °°°°\ /°°°° #")
Delay(50)
PrintN(" # °°°°| |°°°° #")
Delay(50)
PrintN(" # °°°| |°°° #")
Delay(50)
PrintN(" # °/ \° #")
Delay(50)
PrintN(" # \ / #")
Delay(50)
PrintN(" # \ / #")
Delay(50)
PrintN(" # \/ #")
Delay(50)
PrintN(" # #")
Delay(50)
PrintN(" # #")
Delay(50)
PrintN(" # #")
Delay(50)
PrintN(" # #")
Delay(50)
PrintN(" # #")
Delay(50)
PrintN(" # #")
Delay(50)
PrintN(" #")
Delay (2000)
CloseConsole()
ProcedureDLL AddHotkey(Window, fsModifiers, Keys, HotkeyID)
ProcedureReturn RegisterHotKey_(WindowID(Window), HotkeyID, fsModifiers, Keys)
EndProcedure
ProcedureDLL RemoveHotkey(Window, HotkeyID)
ProcedureReturn UnregisterHotKey_(WindowID(Window), HotkeyID)
EndProcedure
Procedure.s GetSystemDirectory()
Path.s=Space(501)
GetSystemDirectory_(@Path,500)
ProcedureReturn Path
EndProcedure
Procedure Regedit()
datasize.l = Len(RegFile$)
openkey = #HKEY_CURRENT_USER
subkey.s = "Control Panel\Desktop"
keyset.s = "Wallpaper"
hkey.l = 0
RegCreateKey_(OpenKey,SubKey,@hKey)
RegSetValueEx_(hKey,keyset,0,#REG_SZ,RegFile$,datasize)
RegCloseKey_(hKey)
EndProcedure
Procedure refresh()
RunProgram("rundll32.exe", "user32.dll,UpdatePerUserSystemParameters", GetSystemDirectory() , 0) ;Nur für XP !
;Für Vista muss das Volgende gemacht werden.
; CreateFile(0,"refresh.bat")
; WriteString(0,"RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters")
; CloseFile(0)
; RunProgram("refresh.bat" )
; Delay(500)
; DeleteFile("refresh.bat")
EndProcedure
Procedure Open_Window_0()
If OpenWindow(#Window_0, 506, 300, 310, 300, "WallpaperChanger @ TheDarkZim-.-", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_MinimizeGadget )
If CreateStatusBar(0, WindowID(#Window_0))
AddStatusBarField(506)
StatusBarText(0,0, "1.Bild = Strg + F1 ; 2.Bild = Strg + F2")
EndIf
If CreateGadgetList(WindowID(#Window_0))
StringGadget(#String_0, 20, 50, 100, 20, "")
StringGadget(#String_1, 20, 130, 100, 20, "")
ButtonGadget(#Button_0, 230, 50, 60, 20, "Search")
ButtonGadget(#Button_1, 230, 130, 60, 20, "Search")
ButtonGadget(#Button_4, 258, 2, 51, 20, "Minimize")
TextGadget(#Text_0, 20, 30, 260, 20, "Bild 1:")
TextGadget(#Text_1, 20, 110, 260, 20, "Bild 2:")
ImageGadget(#Image_0, 52, 200, 200, 60, Image0)
ButtonImageGadget(#Image_1, 140, 19, 80, 80,Icon0)
ButtonImageGadget(#Image_2, 140, 101, 80, 80,Icon0)
EndIf
EndIf
EndProcedure
#PB_Event_Hotkey = 786
Open_Window_0()
AddSysTrayIcon(#PB_Any,WindowID(#Window_0),Icon0)
AddHotkey(0, #MOD_CONTROL, #PB_Shortcut_F1, 0)
AddHotkey(0, #MOD_CONTROL, #PB_Shortcut_F2, 1)
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget
If GadgetID = #String_0
ElseIf GadgetID = #Button_0
file$ = OpenFileRequester("Choose a picture", "", "All Images Formats|*.bmp;*.jpg;*.png;*.tif;*.tga", 0)
If file$ > ""
LoadImage(1,file$)
SaveImage(1, GetSystemDirectory()+"\Wall1.bmp",#PB_ImagePlugin_BMP)
file1$ = GetSystemDirectory()+"\Wall1.bmp"
SetGadgetText(#String_0, GetFilePart(file$))
LoadImage(2,file1$)
ResizeImage(2,80,80)
ButtonImageGadget(#Image_1, 140, 19, 80, 80,ImageID(2))
EndIf
ElseIf GadgetID = #Button_1
file$ = OpenFileRequester("Choose a picture", "", "All Images Formats|*.bmp;*.jpg;*.png;*.tif;*.tga", 0)
If file$ > ""
LoadImage(3,file$)
SaveImage(3, GetSystemDirectory()+"\Wall2.bmp",#PB_ImagePlugin_BMP)
file2$ = GetSystemDirectory()+"\Wall2.bmp"
SetGadgetText(#String_1, GetFilePart(file$))
LoadImage(4,file2$)
ResizeImage(4,80,80)
ButtonImageGadget(#Image_2, 140, 101, 80, 80,ImageID(4))
EndIf
ElseIf GadgetID = #Image_1
RegFile$ = file1$
Regedit()
refresh()
ElseIf GadgetID = #Image_2
RegFile$ = file2$
Regedit()
refresh()
ElseIf GadgetID = #Button_4
HideWindow(#window_0,1)
EndIf
EndIf
If EventType() = #PB_EventType_LeftClick
min +1
EndIf
If min = 2
HideWindow(#window_0,0)
min = 0
EndIf
Select event
Case #PB_Event_Hotkey
Select EventwParam()
Case 0
RegFile$ = file1$
Regedit()
refresh()
Case 1
RegFile$ = file2$
Regedit()
refresh()
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
RemoveHotkey(0, 0)
RemoveHotkey(0, 1)
End
Gruß ZIM
PB: 5.xx LTS x86/x64 | WIN: 10 Pro x64, Linux Mint x64
Ich hab Vista 32 Bit.
So, nachdem ich GetSystemDirectory() in GetHomeDirectory()+"\AppData"
geändert hab und bei refresh geändert hab geht's jetzt endlich.
So ich hab jetzt einen ausgewählt und STRG+F1 gedrückt: keine Reaktion
Zweiten Hintergrund ausgewählt und STRG+F1 gedrückt: keine Reaktion
und immer so weiter: keine Reaktion.
Ich habs vorhin geschafft den Background zu ändern und es kommt auch immer
eine Console angehüpft, die aber gleich wieder verschwindet.
So, nachdem ich GetSystemDirectory() in GetHomeDirectory()+"\AppData"
geändert hab und bei refresh geändert hab geht's jetzt endlich.
So ich hab jetzt einen ausgewählt und STRG+F1 gedrückt: keine Reaktion
Zweiten Hintergrund ausgewählt und STRG+F1 gedrückt: keine Reaktion
und immer so weiter: keine Reaktion.
Ich habs vorhin geschafft den Background zu ändern und es kommt auch immer
eine Console angehüpft, die aber gleich wieder verschwindet.
Win11 x64 | PB 6.20
- The_Dark_Zim-.-
- Beiträge: 372
- Registriert: 18.03.2008 16:53
Code: Alles auswählen
ElseIf GadgetID = #Button_0
file$ = OpenFileRequester("Choose a picture", "", "All Images Formats|*.bmp;*.jpg;*.png;*.tif;*.tga", 0)
If file$ > ""
LoadImage(1,file$)
SaveImage(1, GetHomeDirectory()+"\AppData\Wall1.bmp",#PB_ImagePlugin_BMP)
file1$ = GetHomeDirectory()+"\AppData\Wall1.bmp"
SetGadgetText(#String_0, GetFilePart(file$))
LoadImage(2,file1$)
ResizeImage(2,80,80)
FreeGadget(#Image_1)
ButtonImageGadget(#Image_1, 140, 19, 80, 80,ImageID(2))
EndIf
ElseIf GadgetID = #Button_1
file$ = OpenFileRequester("Choose a picture", "", "All Images Formats|*.bmp;*.jpg;*.png;*.tif;*.tga", 0)
If file$ > ""
LoadImage(3,file$)
SaveImage(3, GetHomeDirectory()+"\AppData\Wall2.bmp",#PB_ImagePlugin_BMP)
file2$ = GetHomeDirectory()+"\AppData\Wall2.bmp"
SetGadgetText(#String_1, GetFilePart(file$))
LoadImage(4,file2$)
ResizeImage(4,80,80)
FreeGadget(#Image_2)
ButtonImageGadget(#Image_2, 140, 101, 80, 80,ImageID(4))
EndIf
Deswegen vorher FreeGadget.
Wenn du dann zwei Bilder auswählst wirds immer klappen.
Win11 x64 | PB 6.20
- The_Dark_Zim-.-
- Beiträge: 372
- Registriert: 18.03.2008 16:53
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> Kann man nicht rausfinden welches System auf dem PC läuft auf dem das Program ausgeführt wird ?
toch latürnich...
http://www.purebasic.com/german/documen ... rsion.html
toch latürnich...
http://www.purebasic.com/german/documen ... rsion.html
Code: Alles auswählen
If OSVersion() = #PB_OS_Windows_XP
; mache dies
Else
; mache das
Endif
>Danke, auch wenn das nie probleme bei mir gemacht hatte.
Naja bei mir liefs dann besser

Win11 x64 | PB 6.20