Seite 1 von 1

Programm ohne Installation und Adminrechte in Autostart

Verfasst: 16.09.2015 13:15
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.

Re: Programm ohne Installation und Adminrechte in Autostart

Verfasst: 16.09.2015 13:21
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.

Re: Programm ohne Installation und Adminrechte in Autostart

Verfasst: 16.09.2015 13:34
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)

Re: Programm ohne Installation und Adminrechte in Autostart

Verfasst: 16.09.2015 13:49
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:

Re: Programm ohne Installation und Adminrechte in Autostart

Verfasst: 16.09.2015 15:33
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.

Re: Programm ohne Installation und Adminrechte in Autostart

Verfasst: 16.09.2015 15:40
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.

Re: Programm ohne Installation und Adminrechte in Autostart

Verfasst: 16.09.2015 20:13
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.

Re: Programm ohne Installation und Adminrechte in Autostart

Verfasst: 16.09.2015 20:36
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.

Re: Programm ohne Installation und Adminrechte in Autostart

Verfasst: 16.09.2015 20:41
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.