Bildschirmschoner installieren

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Z'eluR_lliB

Betreff: Bildschirmschoner installieren

BeitragMo, Sep 05, 2005 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo allerseits!
Also: Ich habe einen Bildschirmschoner programmiert, den ich nun durch ein bestimmtes Programm installieren lassen möchte...
Mir geht es dabei eigentlich zuerst darum, wie man in BlitzBasic Dateien kopiert, diese dann noch in den System32 Ordner (bei win xp, me und 2000). Dabei wäre es nicht schlecht, eine Funktion zu haben, die den System32 ausfindig macht (so "SystemRoot" mäßig).
Das beste wäre natürlich, wenn der Bildschirmschoner nach dem Kopieren gleich noch installiert würde...

Danke schon im voraus! Laughing

mfg Z'eluR_lliB 8)

cu
  • Zuletzt bearbeitet von Z'eluR_lliB am So, Sep 11, 2005 17:31, insgesamt einmal bearbeitet
 

Florian

BeitragMo, Sep 05, 2005 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
;.lib "shell32.dll"
;SHGetSpecialFolderPath%(hwndOwner$,lpszPath*,nFolder%,fCreate%):"SHGetSpecialFolderPathA"

Const CSIDL_DESKTOP = 0
Const CSIDL_INTERNET = 1
Const CSIDL_PROGRAMS = 2
Const CSIDL_CONTROLS = 3
Const CSIDL_PRINTERS = 4
Const CSIDL_PERSONAL = 5
Const CSIDL_FAVORITES = 6
Const CSIDL_STARTUP = 7
Const CSIDL_RECENT = 8
Const CSIDL_SENDTO = 9
Const CSIDL_BITBUCKET = 16
Const CSIDL_STARTMENU = 17
Const CSIDL_NETWORK = 18
Const CSIDL_NETHOOD = 19
Const CSIDL_FONTS = 20
Const CSIDL_TEMPLATES = 21
Const CSIDL_COMMON_STARTMENU = 22
Const CSIDL_COMMON_PROGRAMS = 23
Const CSIDL_COMMON_STARTUP = 24
Const CSIDL_COMMON_DESKTOPDIRECTORY = 25
Const CSIDL_APPDATA = 26
Const CSIDL_PRINTHOOD = 27
Const CSIDL_LOCAL_APPDATA = 28
Const CSIDL_ALTSTARTUP = 29
Const CSIDL_COMMON_ALTSTARTUP = 30
Const CSIDL_COMMON_FAVORITES = 31
Const CSIDL_INTERNET_CACHE = 32
Const CSIDL_COOKIES = 33
Const CSIDL_HISTORY = 34
Const CSIDL_COMMON_APPDATA = 35
Const CSIDL_WINDOWS = 36
Const CSIDL_SYSTEM = 37
Const CSIDL_PROGRAM_FILES = 38
Const CSIDL_MYPICTURES = 39
Const CSIDL_PROFILE = 40
Const CSIDL_SYSTEMX86 = 41
Const CSIDL_PROGRAM_FILESX86 = 42
Const CSIDL_PROGRAM_FILES_COMMON = 43
Const CSIDL_PROGRAM_FILES_COMMONX86 = 44
Const CSIDL_COMMON_TEMPLATES = 45
Const CSIDL_COMMON_DOCUMENTS = 46
Const CSIDL_COMMON_ADMINTOOLS = 47
Const CSIDL_ADMINTOOLS = 48
Const CSIDL_CONNECTIONS = 49

Graphics 800,200,0,2
folderbank=CreateBank(1400)
SHGetSpecialFolderPath(0, folderbank, CSIDL_SYSTEMX86 , 0)
Print getbankstring$(folderbank, 1400)
WaitKey

Function GetBankString$(bank, size)
For i=0 To size-1
wert$=wert$ + PeekByte(bank, i)
Next
While Len(wert$)<>0
If Int(Left$(wert$, 1))>2 Then
antwort$=antwort$ + Chr$(Int(Left$(wert$, 2)))
wert$=Mid$(wert$, 3)
Else
antwort$=antwort$ + Chr$(Int(Left$(wert$, 3)))
wert$=Mid$(wert$, 4)
End If
Wend
FreeBank bank
Return Trim$(antwort$)
End Function
 

Z'eluR_lliB

BeitragSa, Sep 10, 2005 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
sorry, aber mit diesem hohen niveau und keinerlei kommentar kann ich praktisch nichts anfangen...

könnte einer von euch bitte alles nocheinmal für normal sterbliche erklären??

thx

d-bug

BeitragSo, Sep 11, 2005 14:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Was Florian dir da gepostet hat kannst du nur benutzen, wenn du entweder Blitz3D (keine Demo + Update auf 1.90) oder B+ (keine Demo) hast. Er versuchte dir lediglich zu zeigen, wie du die Systempfade bekommst...

Dies hier gehört als *.decls in dein Userlib Verzeichniss.
Code: [AUSKLAPPEN]
.lib "shell32.dll"
SHGetSpecialFolderPath%(hwndOwner$,lpszPath*,nFolder%,fCreate%):"SHGetSpecialFolderPathA"

Das Zeugs weißt Blitz an auf die Windows DLL "Shell32" zuzugreifen, wenn du in deinem Programm den Befehl "SHGetSpecialFolderPath" ausführst.

Das sind konstante Werte die der API-Befehl "SHGetSpecialFolderPath" benötigt um dir das richtige Verzeichniss zurückzugeben.
Code: [AUSKLAPPEN]
Const CSIDL_DESKTOP = 0
Const CSIDL_INTERNET = 1
Const CSIDL_PROGRAMS = 2
Const CSIDL_CONTROLS = 3
Const CSIDL_PRINTERS = 4
Const CSIDL_PERSONAL = 5
Const CSIDL_FAVORITES = 6
Const CSIDL_STARTUP = 7
Const CSIDL_RECENT = 8
Const CSIDL_SENDTO = 9
Const CSIDL_BITBUCKET = 16
Const CSIDL_STARTMENU = 17
Const CSIDL_NETWORK = 18
Const CSIDL_NETHOOD = 19
Const CSIDL_FONTS = 20
Const CSIDL_TEMPLATES = 21
Const CSIDL_COMMON_STARTMENU = 22
Const CSIDL_COMMON_PROGRAMS = 23
Const CSIDL_COMMON_STARTUP = 24
Const CSIDL_COMMON_DESKTOPDIRECTORY = 25
Const CSIDL_APPDATA = 26
Const CSIDL_PRINTHOOD = 27
Const CSIDL_LOCAL_APPDATA = 28
Const CSIDL_ALTSTARTUP = 29
Const CSIDL_COMMON_ALTSTARTUP = 30
Const CSIDL_COMMON_FAVORITES = 31
Const CSIDL_INTERNET_CACHE = 32
Const CSIDL_COOKIES = 33
Const CSIDL_HISTORY = 34
Const CSIDL_COMMON_APPDATA = 35
Const CSIDL_WINDOWS = 36
Const CSIDL_SYSTEM = 37
Const CSIDL_PROGRAM_FILES = 38
Const CSIDL_MYPICTURES = 39
Const CSIDL_PROFILE = 40
Const CSIDL_SYSTEMX86 = 41
Const CSIDL_PROGRAM_FILESX86 = 42
Const CSIDL_PROGRAM_FILES_COMMON = 43
Const CSIDL_PROGRAM_FILES_COMMONX86 = 44
Const CSIDL_COMMON_TEMPLATES = 45
Const CSIDL_COMMON_DOCUMENTS = 46
Const CSIDL_COMMON_ADMINTOOLS = 47
Const CSIDL_ADMINTOOLS = 48
Const CSIDL_CONNECTIONS = 49



Da dir "SHGetSpecialFolderPath" keinen String zurückgibt muß man das ganze noch via bank in einen String konvertieren :
Code: [AUSKLAPPEN]
Function GetBankString$(bank, size)
For i=0 To size-1
wert$=wert$ + PeekByte(bank, i)
Next
While Len(wert$)<>0
If Int(Left$(wert$, 1))>2 Then
antwort$=antwort$ + Chr$(Int(Left$(wert$, 2)))
wert$=Mid$(wert$, 3)
Else
antwort$=antwort$ + Chr$(Int(Left$(wert$, 3)))
wert$=Mid$(wert$, 4)
End If
Wend
FreeBank bank
Return Trim$(antwort$)
End Function


Und zum guten Schluss noch der Aufruf aus deinem Code :
Code: [AUSKLAPPEN]
folderbank=CreateBank(1400)
SHGetSpecialFolderPath(0, folderbank, CSIDL_SYSTEMX86 , 0)
Print getbankstring$(folderbank, 1400)
 

Z'eluR_lliB

BeitragSo, Sep 11, 2005 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab sowieso nur Blitz 2D. Kann man dann da garnichts machen?
Nicht einmal Dateien kopieren?

d-bug

BeitragSo, Sep 11, 2005 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Natürlich kannst du eine Datei mit Blitz kopieren siehe ql:CopyFile nur bekommst du so nicht via Blitz das System32 Verzeichniss heraus. Am besten machst du dich erst mal mit diesen Befehlen vertraut.
 

Florian

BeitragSo, Sep 11, 2005 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoffendlich geht das mit Blitz 2D.

BlitzBasic: [AUSKLAPPEN]


WinSytem32$=SystemProperty$(\"WINDOWSDIR\")+\"System32\\"
Print WinSytem32$
WaitKey

 

Apocalyptic

BeitragMo, Sep 12, 2005 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Das gilt meines Wissens nach nur für XP.

Hier eignet sichBlitzBasic: [AUSKLAPPEN]
SystemProperty$(\"SYSTEMDIR\")
Klappt auch mit B2D
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]
 

$tankY

BeitragSa, Okt 15, 2005 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann ich überhaupt nen bildschirmschoner aus ner exe ersstellen??? Embarassed

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Okt 15, 2005 13:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Die .exe in .scr umbenennen
[BB2D | BB3D | BB+]
 

$tankY

BeitragSa, Okt 15, 2005 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
THX Very Happy

x-pressive

BeitragSa, Okt 22, 2005 10:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Nimm den InnoSetup-Installer (OpenSource, kostenlos). Da kannst du total easy für jede Datei bestimmen, in welchen Ordner die bei der Installation kopiert werden soll. Einfacher geht's net.

Inno Setup Website
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

$tankY

BeitragSa, Okt 22, 2005 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt den hab ich auch, da kann man viel anpassen, das ist sehr praktisch Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group