erich.wanker - Mo 26.05.08 13:50
Titel: WNetAddConnection3 und Vista ...
Hallo Leute...
hab ein kleines Problem bei Vista..
unter Win2000 und WinXP funktioniert der Code einwandfrei
nur Vista macht Probleme.. (ja ja.. die liebe UAC ;-) )
Was ich glaube, ist - daß das Netzlaufwerk mit Adminrechten erstellt wird und der Windows Explorer nicht Admin Rechte hat... ganz durchschaut hab ich´s noch nicht ..
Hat jemand eine Lösung ?
vielen Dank
schöne Grüße aus dem gasteinertal
Erich
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| function ConnectDrive(_drvLetter: string; _netPath: string; _showError: Boolean; _reconnect: Boolean): DWORD; var nRes: TNetResource; errCode: DWORD; dwFlags: DWORD; begin FillChar(NRes, SizeOf(NRes), #0); nRes.dwType := RESOURCETYPE_DISK; nRes.lpLocalName := PChar(_drvLetter); nRes.lpRemoteName := PChar(_netPath); if _reconnect then dwFlags := CONNECT_UPDATE_PROFILE and CONNECT_INTERACTIVE else dwFlags := CONNECT_INTERACTIVE;
errCode := WNetAddConnection3(Form1.Handle, nRes, nil, nil, dwFlags); if (errCode <> NO_ERROR) and (_showError) then begin Application.MessageBox(PChar('An error occured while connecting:' + #13#10 + SysErrorMessage(GetLastError)), 'Error while connecting!', MB_OK); end; Result := errCode; end; |
Moderiert von
Narses: Delphi-Tags hinzugefügtModeriert von
Narses: Topic aus Internet / Netzwerk verschoben am Mo 26.05.2008 um 14:20
erich.wanker - Mo 26.05.08 17:35
Titel: WNetAddConnection3 und Vista - Netzlaufwerk erstellen
Timosch hat folgendes geschrieben: |
| Was genau soll der Code leisten? Ein Netzlaufwerk verbinden? Das kann man AFAIK nun mal nur als Admin. Probiers mal unter XP als normaler Benutzer. |
Yepp, es soll ein Netzlaufwerk erstellt werden.. ;-) ... hab ich vergessen zu schreiben...
Gegeben ist:
- Rechnername und Freigabename vom Server
- Mögliche Clients sind: Win2000 /WinXP / Vista
- Mögliche Rechte der User sind: Hauptbenutzer, Benutzer und Administrator.
Jetzt will ich via Delphi ein Netzlaufwerk dauerhaft erstellen. (in allen 3 Usermöglichkeiten ja vom BS erlaubt)
Funktioniert auch teilweise (Win2000 - WinXP) ...
Vista arbeitet den Code durch, findet Server, findet Freigabe, mappt auf die Freigabe ohne irgendwelche Fehler, stellt die Freigabe aber nicht zur Verfügung ...
Ich vermute mal ( ?? ) , das das Netzlaufwerk bei der Erstellung "Höhere" Rechte bekommt, als der angemeldete User oder Explorer ...
Das Programm wird von Wechseldatenträger aus gestartet...
Der Programmname enthält keine Wörter wie: Setup Install installer oder so
Die Programmdescription und Versionsinfos sind auch ohne "spezielle" Vista feindlichen - Wörter
Verwende kein Vista Manifest ( wäre das eine Lösung ? - wie sollte dann das Manifest aussehen)