2016-04-05 113 views
0

嘗試使用CreateFile()創建處理程序時,即使以管理員身份執行應用程序時,也會收到以下錯誤消息:'系統找不到指定的文件。 (從HRESULT異常:0x80070002)「:沒有」CreateFile()在Windows XP中工作,但在Windows 7中失敗返回句柄無效

這裏是正在使用此任務的代碼示例:

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 

的路徑指向在Windows Server矩陣打印機2003

​​

此應用程序,在Windows XP編寫的作品沒有任何錯誤,但嘗試在Windows 7中執行的時候,就永遠描述的錯誤發生。

+0

您可能需要運行「以管理員身份」 –

+1

「...即使以管理員身份執行應用程序時......」 – msantiago

回答

1

有解決方案here建議在Win7上更改OPEN_EXISTING到OPEN_ALWAYS將使它在Win7上工作,但沒有解釋爲什麼。

相關問題