Autor Beitrag
erich.wanker
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 26.05.08 13:50 
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

ausblenden 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 user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Topic aus Internet / Netzwerk verschoben am Mo 26.05.2008 um 14:20
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Mo 26.05.08 13:57 
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.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
erich.wanker Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 26.05.08 17:35 
Titel: WNetAddConnection3 und Vista - Netzlaufwerk erstellen
user profile iconTimosch 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)