Programm ohne Installation und Adminrechte in Autostart

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Programm ohne Installation und Adminrechte in Autostart

Beitrag von NicTheQuick »

Hallo Leute,

wie kann sich mein Purebasic-Programm selbst in den Autostart schieben, ohne dass es dafür Administratorrechte benötigt? Mit der Registry scheint es ja nicht zu gehen, obwohl ich schon den Zweig #HKEY_CURRENT_USER nehme. Ich bin da mittlerweile so eingerostet in Windows, dass ich da ein bisschen Nachhilfe bräuchte.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Programm ohne Installation und Adminrechte in Autostart

Beitrag von RSBasic »

Code: Alles auswählen

EnableExplicit

Procedure.s spec_folder(clsi_const)
  Protected path.s = Space(2048)
  Protected pidl
  
  SHGetSpecialFolderLocation_(0, clsi_const, @pidl)
  SHGetPathFromIDList_(pidl, @path)
  CoTaskMemFree_(pidl)
  
  ProcedureReturn path + "\"
EndProcedure

Debug spec_folder(#CSIDL_STARTUP)
Dort kannst du deine Verknüpfung anlegen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
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: Programm ohne Installation und Adminrechte in Autostart

Beitrag von ts-soft »

Und hier dasselbe, aber schöner :lol:
Ne, mußte erstmal windows starten.

Code: Alles auswählen

Procedure.s GetSpecialFolder(CSIDL)
  Protected *itemid.ITEMIDLIST
  Protected location.s = Space(#MAX_PATH)

  If SHGetSpecialFolderLocation_ (0, CSIDL, @*itemid) = #NOERROR
    If SHGetPathFromIDList_(*itemid, @location) = #True
      If Right(location, 1) <> "\" : location + "\" : EndIf
    Else
      location = ""
    EndIf
    CoTaskMemFree_(*itemid)
  Else
    location = ""
  EndIf

  ProcedureReturn location
EndProcedure

Debug GetSpecialFolder(#CSIDL_STARTUP)
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.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Programm ohne Installation und Adminrechte in Autostart

Beitrag von NicTheQuick »

Ich hab jetzt schon RSBasics Variante genommen. Aber da ich Konstanten lieber habe, nehme ich vielleicht doch jetzt noch ts-softs Variante rein.

Danke Leute! :allright:
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: Programm ohne Installation und Adminrechte in Autostart

Beitrag von _JON_ »

Warum geht es den mit der Registry nicht?

"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" ist doch für sowas der normale Weg.
Und für den Schlüssel braucht man auch keine Administratorrechte.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Benutzeravatar
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: Programm ohne Installation und Adminrechte in Autostart

Beitrag von ts-soft »

_JON_ hat geschrieben:"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" ist doch für sowas der normale Weg.
Das ist der normale Weg für Microsoft, aber nicht für den User. Dem User fällt es wesentlich leichter, eine Datei zum Autostart-
Ordner hinzuzufügen/entfernen als in der Registry rumzuschmieren. Mit dem User meine ich den Anwender der Software und nicht
unbedingt den Programmierer.
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.
Bild
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: Programm ohne Installation und Adminrechte in Autostart

Beitrag von _JON_ »

Ach Thomas, darum geht es doch gar nicht.
Wir sind hier doch alle irgenwie Programmierer und mich wundert das Nic meint es würde nicht gehen.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Benutzeravatar
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: Programm ohne Installation und Adminrechte in Autostart

Beitrag von ts-soft »

_JON_ hat geschrieben:mich wundert das Nic meint es würde nicht gehen.
Achso, das liegt wohl an den Registry-Routinen die er benutzt, #KEY_ALL_ACCESS z.B. sollte man
nicht anfordern, stattdessen #KEY_WRITE oder #KEY_READ.
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.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Programm ohne Installation und Adminrechte in Autostart

Beitrag von NicTheQuick »

Ich weiß gerade nicht mehr, was ich benutzt habe. Aber kann schon sein, dass ich das falsch gemacht habe. Ich habe den Code für die Registry auch nur von irgendwo anders kopiert.
Antworten