saul hat geschrieben: ↑Sa, 07. Apr 2018 21:39
In der Registry speichere ich das jeweile Verzeichnis, in dem ich das Programm gestartet habe, in einem OBDC Datensatz um
Daten via ODBC bearbeiten zu können.
zunächst mal die Fragen zum Verständnis :
mit Windows 10 ist die Workstation gemeint wo du Registry Einträge machen willst, oder ? was für ein Server ?
dann die nächste Frage "wo" in der Registry du Zugriffe machen möchtest ?
welche ODBC Version setzt du ein ?
saul hat geschrieben: als Administrator ausführen angekreuzt
wenn eine App Administrator Rechte benötigt, was allgmein nicht der Fall ist, dann bitte per Manifest
Code: Alles auswählen
<description>EXE need Admin rights on OS() > 5</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
saul hat geschrieben:ermittle ich das Laufwerk und Verzeichnis in dem ich das Programm starte
also ich zweifel daran das es sich um den Server auf
.12 handelt ... das ist doch sicherlich deine Workstation, oder ?!
saul hat geschrieben: Ob das ein Bug ist?
seit VISTA gibt es SMB2 und die Empfehlung SMB1 und Laufwerksbuchstaben (NET USE X: ) NICHT mehr zu verwenden sondern UNC-Path Syntax.
da man keine Laufwerksbuchstaben ( curdrive() ) verwenden sollte
kannst du diesen Code dafür benutzen
Code: Alles auswählen
LOCAL cSrv := Getenv("COMPUTERNAME") // Name des PC
LOCAL cUNC := "\\"+cSrv+"\"+curdir()
ABER ein Zugriff per UNC klappt nur auf "freigegebene" Ordner / Dateien
seit VISTA läuft immer der Server.EXE Dienst und "kommuniziert" mit einem (echten) Windows Server (ab 2008) über SMB2.
für Programmierer heist es das man sein Function "NET_USE" anpassen muss und ALLE DBF Dateien über "NET_USE" öffnet.
wenn man per UNC Path auf eine locale Datei/Ordner zugreifen will geht das nur wenn der Ordner "ge-Shared" ist.
das ist ein Teil von SMB2 das der (echte) Server "alles in Netzwerk" mitbekommt und es anderen Clients "mitteilen" (SMB = Server Message Block) kann.
Tip : RAMDISK und freigeben
man kann natürlich auch auf der Workstation den Server.EXE Dienst abschalten was NICHT zu empfehlen ist
---
das Verhalten vom Explorer bei "ge-mappedten" Laufwerken ist so gewollt damit nicht mehr die alten SMB1 LAN-Manager- oder NetBIOS-Protokoll genutzt werden. bin man gespannt wohin das M$ "auslagert" wenn es den Explorer unter POLARIS nicht mehr gibt