Ein in PureBasic geschriebenes Programm richtig Installieren
- tft
- Beiträge: 650
- Registriert: 08.09.2004 20:18
- Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
- Wohnort: Dachsen
- Kontaktdaten:
Ein in PureBasic geschriebenes Programm richtig Installieren
Hallo,
ich möchte mein PureBasic Programm unter W8 richtig Installieren, bekomme es aber nicht von PB aus
in das Richtige Verzeichnis Kopiert. Könnte hier fielleicht jemand mit der entsprechenden Erfahrung
mal Posten wie man das Richtig macht. Ich weis das es Installer gibt. Die möchte ich aber nicht verwenden.
Mein Englisch ist scheisse ....... also kommt MSDN für mich nicht wirklich in frage. Und für alles andere
gibt es PureArena.net. Ich weis zum Beispiel das man für den zugriff auf bestimmte verzeichnisse Admin rechte
braucht, Das Programme ins Programm Files verzeichniss gehören und Daten ins Appdata. Aber im Tray and forget
verfahren das experimentell rauszufinden halte ich für unevektiv.
Danke im voraus ... TFT
ich möchte mein PureBasic Programm unter W8 richtig Installieren, bekomme es aber nicht von PB aus
in das Richtige Verzeichnis Kopiert. Könnte hier fielleicht jemand mit der entsprechenden Erfahrung
mal Posten wie man das Richtig macht. Ich weis das es Installer gibt. Die möchte ich aber nicht verwenden.
Mein Englisch ist scheisse ....... also kommt MSDN für mich nicht wirklich in frage. Und für alles andere
gibt es PureArena.net. Ich weis zum Beispiel das man für den zugriff auf bestimmte verzeichnisse Admin rechte
braucht, Das Programme ins Programm Files verzeichniss gehören und Daten ins Appdata. Aber im Tray and forget
verfahren das experimentell rauszufinden halte ich für unevektiv.
Danke im voraus ... TFT
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
Re: Ein in PureBasic geschriebenes Programm richtig Installi
Ins Programme-Verzeichnis dürfen nur Programme schreiben, die Admin-Rechte haben.
Diese forderst Du an, indem Du die entsprechende Compileroption setzt: "[X] Request Administrator mode for Windows Vista and above".
Für Dein Endprodukt musst Du das nicht machen, nur für Deinen eigenen Installer/Kopierer.
Diese forderst Du an, indem Du die entsprechende Compileroption setzt: "[X] Request Administrator mode for Windows Vista and above".
Für Dein Endprodukt musst Du das nicht machen, nur für Deinen eigenen Installer/Kopierer.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
- HeX0R
- Beiträge: 3056
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Re: Ein in PureBasic geschriebenes Programm richtig Installi
Wieso nimmst Du nicht den Installer von Thorsten?
Man muss ja nicht immer das Rad neu erfinden und das Teil ist schön übersichtlich und einfach zu handhaben.
Man muss ja nicht immer das Rad neu erfinden und das Teil ist schön übersichtlich und einfach zu handhaben.
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
- tft
- Beiträge: 650
- Registriert: 08.09.2004 20:18
- Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
- Wohnort: Dachsen
- Kontaktdaten:
Re: Ein in PureBasic geschriebenes Programm richtig Installi
Hallo,
danke für die Info.... so einfach kann das manchmal sein ....
Gruss TFT
danke für die Info.... so einfach kann das manchmal sein ....
Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
- tft
- Beiträge: 650
- Registriert: 08.09.2004 20:18
- Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
- Wohnort: Dachsen
- Kontaktdaten:
Re: Ein in PureBasic geschriebenes Programm richtig Installi
Wärend der Entwicklung und den Tests auf anderen Rechnern, wo ich genau weis wo was hinkommt,
brauche ich keinen so tollen Installer. Ich verwende im Moment diese total abgespeckte Version eines
Installers. Bitte nicht mit Granit blöcken werfen
Wenn mein Anime Player dann mal fertig ist. Werde ich natürlich auch einen Installer brauchen. Und dann ist
von Thomas natürlich erste wal.
Gruss TFT
brauche ich keinen so tollen Installer. Ich verwende im Moment diese total abgespeckte Version eines
Installers. Bitte nicht mit Granit blöcken werfen
Code: Alles auswählen
;
; Anim Player Installer
;
EnableExplicit
Global ExeName.s = "AnimPlayer.exe" , TargetPfad.s = "AnimPlayer"
Declare createShellLink(obj.s, lnk.s, arg.s, desc.s, dir.s, icon.s, index)
Declare.s getSpecialFolder(id)
Declare SetUninstall(keyname$, GUID$, name$, pub$, url$, email$, dicon$, uexe$)
Procedure.s SpecialFolderLocation(csidl.l)
Protected location.s,pidl.l
If SHGetSpecialFolderLocation_(#Null,csidl,@pidl)=#ERROR_SUCCESS
location.s=Space(#MAX_PATH)
If SHGetPathFromIDList_(pidl,@location.s)
If Right(location.s,1)<>""
location.s+""
EndIf
EndIf
If pidl
CoTaskMemFree_(pidl) ; Instead of messing with com imalloc free and whatnot.
EndIf
EndIf
ProcedureReturn Trim(location.s)
EndProcedure
Procedure.s getSpecialFolder(id)
Protected path.s, *ItemId.ITEMIDLIST
*itemId = #Null
If SHGetSpecialFolderLocation_(0, id, @*ItemId) = #NOERROR
path = Space(#MAX_PATH)
If SHGetPathFromIDList_(*itemId, @path)
If Right(path, 1) <> "\"
path + "\"
EndIf
ProcedureReturn path
EndIf
EndIf
ProcedureReturn ""
EndProcedure
Procedure createShellLink(obj.s, lnk.s, arg.s, desc.s, dir.s, icon.s, index)
;obj - path to the exe that is linked to, lnk - link name, dir - working
;directory, icon - path to the icon file, index - icon index in iconfile
Protected hRes.l, mem.s, ppf.IPersistFile
CompilerIf #PB_Compiler_Unicode
Protected psl.IShellLinkW
CompilerElse
Protected psl.IShellLinkA
CompilerEndIf
;make shure COM is active
CoInitialize_(0)
hRes = CoCreateInstance_(?CLSID_ShellLink, 0, 1, ?IID_IShellLink, @psl)
If hRes = 0
psl\SetPath(Obj)
psl\SetArguments(arg)
psl\SetDescription(desc)
psl\SetWorkingDirectory(dir)
psl\SetIconLocation(icon, index)
;query IShellLink for the IPersistFile interface for saving the
;link in persistent storage
hRes = psl\QueryInterface(?IID_IPersistFile, @ppf)
If hRes = 0
;CompilerIf #PB_Compiler_Unicode
;save the link
hRes = ppf\Save(lnk, #True)
; CompilerElse
; ;ensure that the string is ansi unicode
; mem = Space(#MAX_PATH)
; MultiByteToWideChar_(#CP_ACP, 0, lnk, -1, mem, #MAX_PATH)
; ;save the link
; hRes = ppf\Save(mem, #True)
; CompilerEndIf
ppf\Release()
EndIf
psl\Release()
EndIf
;shut down COM
CoUninitialize_()
DataSection
CLSID_ShellLink:
Data.l $00021401
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
IID_IShellLink:
CompilerIf #PB_Compiler_Unicode
Data.l $000214F9
CompilerElse
Data.l $000214EE
CompilerEndIf
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
IID_IPersistFile:
Data.l $0000010b
Data.w $0000,$0000
Data.b $C0,$00,$00,$00,$00,$00,$00,$46
EndDataSection
ProcedureReturn hRes
EndProcedure
OpenWindow(0,0,0,200,100,"test")
Global obj.s, lnk.s, prg.s, app.s, fil.s, zpf.s
obj = GetCurrentDirectory()+ExeName.s
lnk = getSpecialFolder(#CSIDL_DESKTOPDIRECTORY) + "Anim Player.lnk"
prg = getSpecialFolder(#CSIDL_PROGRAM_FILES)
app = getSpecialFolder(#CSIDL_APPDATA)
fil = getSpecialFolder(#CSIDL_PROGRAMS)
zpf=prg+TargetPfad.s
Debug obj
Debug lnk
Debug prg
Debug app
Debug fil
Debug zpf
Debug "---"
Debug "Copy files from "+GetCurrentDirectory()
Debug "Copy files to "+zpf
If CopyDirectory(GetCurrentDirectory(), zpf, "", #PB_FileSystem_Force ) =0
Debug "Konnte daten nicht kopieren"
EndIf
;Create Icon on Desktop
Debug "---"
Debug "Create ShellLink"
If CreateShellLink(zpf+"\"+ExeName.s , lnk,"","Lets Play Anime",zpf ,zpf+"\"+ExeName.s ,0) = 0
Debug "Icon auf den Desktop plaziert"
Else
Debug "Konte keinen ShellLink erzeugen"
EndIf
von Thomas natürlich erste wal.
Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
Re: Ein in PureBasic geschriebenes Programm richtig Installi
@HeX0R
Aber sieht nicht so professionel aus. Da mag ich die Optik von anderen Setups besser wie Inno Setup.
Aber sieht nicht so professionel aus. Da mag ich die Optik von anderen Setups besser wie Inno Setup.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Ein in PureBasic geschriebenes Programm richtig Installi
@tft
Dein jetziger Installer ermöglicht aber keinerlei Auswahl des Users
Und dran denken, Admin-Modus in den CompilerOptionen anzufordern!
PS: Wenn Du GetCurrentDirectory() nutzt, solltest Du auch sicherstellen das CurrentDirectory festzulegen!
Meist wird dies der Explorer für Dich erledigen, aber nicht jeder nutzt diesen. Bei Alternativen Shells ist
CurrentDirectory evtl. nicht gesetzt und zeigt in Nirwana (z.B. nach c:\windows\).
Also besser setzen mit:
Gruß
Thomas
Dein jetziger Installer ermöglicht aber keinerlei Auswahl des Users
Und dran denken, Admin-Modus in den CompilerOptionen anzufordern!
PS: Wenn Du GetCurrentDirectory() nutzt, solltest Du auch sicherstellen das CurrentDirectory festzulegen!
Meist wird dies der Explorer für Dich erledigen, aber nicht jeder nutzt diesen. Bei Alternativen Shells ist
CurrentDirectory evtl. nicht gesetzt und zeigt in Nirwana (z.B. nach c:\windows\).
Also besser setzen mit:
Code: Alles auswählen
SetCurrentDirectory(GetPathPart(ProgramFilename()))Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- HeX0R
- Beiträge: 3056
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Re: Ein in PureBasic geschriebenes Programm richtig Installi
Naja, das habe ich auch nicht behauptet, aber es tut was es soll und das ohne große Einarbeitung.NeoChris hat geschrieben:@HeX0R
Aber sieht nicht so professionel aus. Da mag ich die Optik von anderen Setups besser wie Inno Setup.
Für kleinere Tools durchaus eine Alternative.
Mal davon abgesehen benötigt man nach einem professionellen Installer auch ein professionelles Produkt, alles andere ist ja dann wieder ... unprofessionell
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
- tft
- Beiträge: 650
- Registriert: 08.09.2004 20:18
- Computerausstattung: GFX 3060 Ti , i7 12700F , 32 GB Ram , 900 GB SSD , TV
- Wohnort: Dachsen
- Kontaktdaten:
Re: Ein in PureBasic geschriebenes Programm richtig Installi
Hallo,
"es tut was es soll." das ist genau das was ich meinte. Im Moment benötige ich einfach einen Quick
Installer der ein Programm ordnungsgemäss ins System integriert. Im Moment mache ich nur folgendes.
Ich Kopiere das Programm in den Programm Ordner ( Mit Adminrechten über den Compiler )
und setze ein Icon auf den Desktop.
Ich möchte aber noch das eine UnInstaller in das Sytem eingetragen wird. Und da weis ich noch nicht
wie das genau geht. Einträge in die Registrie sind sicher nötig. Aber bissher habe ich das unter W8
noch nicht geschafft und weis eigentlich auch nicht genau was die MSDN für eine Richtliene vorgibt
was ein Ordnungs gemässer Installer alles so machen muss.
Also wenn Ihr noch andere dinge darüber wisst , immer her damit. Das kann man ja dann auch für
die User hier als Sticki festnageln falls intresse besteht
Gruss TFT
"es tut was es soll." das ist genau das was ich meinte. Im Moment benötige ich einfach einen Quick
Installer der ein Programm ordnungsgemäss ins System integriert. Im Moment mache ich nur folgendes.
Ich Kopiere das Programm in den Programm Ordner ( Mit Adminrechten über den Compiler )
und setze ein Icon auf den Desktop.
Ich möchte aber noch das eine UnInstaller in das Sytem eingetragen wird. Und da weis ich noch nicht
wie das genau geht. Einträge in die Registrie sind sicher nötig. Aber bissher habe ich das unter W8
noch nicht geschafft und weis eigentlich auch nicht genau was die MSDN für eine Richtliene vorgibt
was ein Ordnungs gemässer Installer alles so machen muss.
Also wenn Ihr noch andere dinge darüber wisst , immer her damit. Das kann man ja dann auch für
die User hier als Sticki festnageln falls intresse besteht
Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , CH-Dachsen/DE-Berlin/TR-Antalya
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
Mein Projekt (Driving School Evergarden)
Codes bei (GitHub) Videos von (YouTube)
Treffen via Discord: Einladung
PB 6.10 | W11 | i7 12700F | 32 GB Ram | RTX 3060 Ti | 60 Herz -TV FullHD
ARDUINO Freak | Sprecher | Game Dev. | Geschichten Erzähler
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Ein in PureBasic geschriebenes Programm richtig Installi
Ein Uninstaller ist eine gefährliche Sache! Das sollte man besser den spezialisierten Programmen überlassen, und zwar weil es dabei
schon zu sehr vielen Fehlern gekommen ist. Zum Beispiel hat ein User "ProgramFiles" anstatt "ProgramFiles/Das Programm"
ausgewählt. Das alleine macht ja nichts aus, aber wenn das Programm deinstalliert wird, wird alles in "ProgramFiles" gelöscht, das
heißt keine Programme mehr
So ist es vor ein paar Jahren wirklich passiert, bei einem bekannten Programm!
Wenn Du aber tatsächlich so einen Uninstaller bei Deinem Programm mitliefern willst, obwohl der garnichts mit Deinem Programm zu tun hat, siehe hier:
http://www.purebasic.fr/english/viewtop ... 50#p202914
Ich sehe da keinen Sinn drinn, das jetzt monatelang auszutesten, damit es evtl. doch nicht fehlerfrei ist, aber ist Deine Sache,
Hauptsache mit jubelt keiner das Programm zum testen unter
Gruß
Thomas
schon zu sehr vielen Fehlern gekommen ist. Zum Beispiel hat ein User "ProgramFiles" anstatt "ProgramFiles/Das Programm"
ausgewählt. Das alleine macht ja nichts aus, aber wenn das Programm deinstalliert wird, wird alles in "ProgramFiles" gelöscht, das
heißt keine Programme mehr
So ist es vor ein paar Jahren wirklich passiert, bei einem bekannten Programm!
Wenn Du aber tatsächlich so einen Uninstaller bei Deinem Programm mitliefern willst, obwohl der garnichts mit Deinem Programm zu tun hat, siehe hier:
http://www.purebasic.fr/english/viewtop ... 50#p202914
Ich sehe da keinen Sinn drinn, das jetzt monatelang auszutesten, damit es evtl. doch nicht fehlerfrei ist, aber ist Deine Sache,
Hauptsache mit jubelt keiner das Programm zum testen unter
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
