Beim Versuch, einen Handler mit CreateFile() zu erstellen, selbst wenn ich die Anwendung als Administrator ausführe, erhalte ich die folgende Fehlermeldung: 'Das System konnte nicht gefunden werden die angegebene Datei. (Ausnahme von HRESULT: 0x80070002) ". Nothing‘CreateFile() Funktioniert in Windows XP, schlägt aber in Windows 7 fehl Rückgabe Handle ungültig
Hier ist ein Beispiel des Codes für diese Aufgabe verwendet:
Private Enum EFileAccess As System.Int32
GENERIC_WRITE = &H40000000
End Enum
Friend Enum EFileShare
FILE_SHARE_READ = &H1
FILE_SHARE_WRITE = &H2
End Enum
Friend Enum ECreationDisposition
OPEN_EXISTING = 3
End Enum
Friend Enum EFileAttributes
FILE_FLAG_NO_BUFFERING = &H20000000
End Enum
<DllImport("kernel32.dll", SetLastError:=True, CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _
Private Shared Function CreateFile(ByVal lpFileName As String, _
ByVal dwDesiredAccess As EFileAccess, _
ByVal dwShareMode As EFileShare, _
ByVal lpSecurityAttributes As IntPtr, _
ByVal dwCreationDisposition As ECreationDisposition, _
ByVal dwFlagsAndAttributes As EFileAttributes, _
ByVal hTemplateFile As IntPtr) As Microsoft.Win32.SafeHandles.SafeFileHandle
End Function
der Pfad auf einen Matrixdrucker in einem Windows Server 2003
handle = CreateFile(\\brbhzpc001154\Epson_2180,
EFileAccess.GENERIC_WRITE,
EFileShare.FILE_SHARE_READ Or EFileShare.FILE_SHARE_WRITE,
IntPtr.Zero,
ECreationDisposition.OPEN_EXISTING,
EFileAttributes.FILE_FLAG_NO_BUFFERING,
IntPtr.Zero)
Diese Anwendung, wenn in Windows XP ohne Fehler funktioniert kompiliert, aber wenn in Windows 7, der Fehler oben immer beschrieben auszuführen versuchen, geschieht.
Möglicherweise müssen Sie "Als Administrator" ausführen –
"... auch beim Ausführen der Anwendung als Administrator, ..." – msantiago