2016-04-05 14 views
0

Geçersiz kılındı. Uygulamayı yönetici olarak çalıştırırken bile CreateFile() kullanarak bir işleyici oluşturmaya çalışırken aşağıdaki hata iletisini alıyorum: 'Sistem bulamadı: belirtilen dosya. (HRESULT özel durum: 0x80070002) ". Hiçbir şey' BuradaCreateFile() Windows XP'de çalışır, ancak Windows 7'de başarısız olur Döndür

kod örneği bu görev için kullanılan geçerli: Windows Server bir matris yazıcı

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 

yol noktaları 2003.

Windows XP'de herhangi bir hata olmadan çalışmalarını derlenmiş zaman Windows 7'de yürütmeye çalışırken
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) 

Bu uygulama, ancak, her zaman yukarıda açıklanan hata olur.

+0

"Yönetici olarak çalıştırıldığında bile" ... Yönetici olarak " –

+1

" çalıştırmanız gerekebilir ... " – msantiago

cevap

1

OPEN_EXISTING ile OPEN_ALWAYS arasında değişiklik yapmanın Win7 üzerinde çalışacağını ancak neden açıklamada bulunmadığını öneren here numaralı çözümler vardır.

İlgili konular