in Registry schreiben ( windows )

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

habe hier ein schönes beispiel gefunden, wie man in die registry einen schlüssel schreiben kann.
http://www.python-forum.de/topic-5453.h ... t=registry

jetzt kenne ich mich leider gar nicht mit schlüsseln aus. mein problem ist, ich muß eine odbc verbindung in der registry speichern. habe einfach mal einen eintrag in dem odbc manager angelgt und danach in der registry gesucht und auch gefunden. der schlüssel sieht wie folgt aus:

Code: Alles auswählen

Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1482476501-813497703-1202660629-1003\Software\ODBC\ODBC.INI\servatumSQL]
"Driver"="C:\\WINDOWS\\system32\\SQLSRV32.dll"
"Server"="thor"
"LastUser"="max"
"Description"="servatum"
und

Code: Alles auswählen

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]
"servatumSQL"="SQL Server"
erstens dachte ich, das der schlüssel unter dem jeweiligen user zu finden ist, da ich ja eine odbc verbindung für einen user angelegt hatte. wie kann ich denn jetzt am besten, diese schlüssel, in die reg eintragen? hatte mir das beispiel ( link oben ) angeschaut. verstehe es aber nicht ganz, wie es mit meinem schlüssel funktionieren soll.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

The Hit-Man hat geschrieben:erstens dachte ich, das der schlüssel unter dem jeweiligen user zu finden ist
Hallo The Hit-Man!

Für dich ist nur HKEY_CURRENT_USER relevant.

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

#[HKEY_CURRENT_USER\\Software\ODBC\ODBC.INI\servatumSQL]
#"Driver"="C:\\WINDOWS\\system32\\SQLSRV32.dll"
#"Server"="thor"
#"Description"="servatum" 

#[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]
#"servatumSQL"="SQL Server"

import os
import _winreg as winreg

SQLSRV32 = os.path.join(os.environ["SystemRoot"], "system32", "SQLSRV32.dll")


def create_odbc_data_source(name, server, description = ""):
    
    key = winreg.CreateKey(
        winreg.HKEY_CURRENT_USER,
        "Software\\ODBC\\ODBC.INI\\%s" % name
    )
    winreg.SetValueEx(key, "Driver", None, winreg.REG_SZ, SQLSRV32)
    winreg.SetValueEx(key, "Server", None, winreg.REG_SZ, server)
    if description:
        winreg.SetValueEx(key, "Description", None, winreg.REG_SZ, description)
    winreg.CloseKey(key)
    
    key = winreg.CreateKey(
        winreg.HKEY_CURRENT_USER,
        "Software\\ODBC\\ODBC.INI\\ODBC Data Sources"
    )
    winreg.SetValueEx(key, name, None, winreg.REG_SZ, "SQL Server")
    winreg.CloseKey(key)
    

def main():
    # Testen
    create_odbc_data_source("mein_test", "localhost", "na seavas")


if __name__ == "__main__":
    main()
Ich habe allerdings nicht getestet, ob ODBC damit wirklich funktioniert.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

oh, vielen dank. hatte gerade mit nem kollegen gequatscht, der wußte auch nicht wie man das macht. werde ich sofort hier testen.

danke

EDIT:
link geht nicht.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Tut er wohl :o
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

ja, jetzt ;)
Antworten