Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    43

    API ShFileOperation VB.NET 2005

    Qualcuno mi sa dare qualche info di base su come usare la API ShFileOperation?

    Grazie
    :master:

  2. #2
    È un casino. Devi usare pesantemente gli attributi di PInvoke per definire tutte le strutture necessarie; se possibile, è meglio evitarla, a meno di non stare usando C o C++, nel qual caso invece si rivela molto comoda.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    43
    Io ho semplicemente bisogno che durante la copia di alcunui file il mio programma visualizza la progressionbat di windows XP....
    è cosi incasinato??...help!

  4. #4
    Se mi dai un paio di giorni cerco il libro su cui avevo visto del buon codice di esempio... sarà comunque un casino, mi ricordo che questa API era portata come API difficilissima da chiamare da .NET per come sono allineati i membri della struttura.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di hkproj
    Registrato dal
    Jul 2006
    Messaggi
    250
    Codice preso dal libro programmare vb.net 2003 di balena:

    Private Declare Ansi Function SHFileOperation Lib “shell32.dll” _
    Alias “SHFileOperationA” (ByRef lpFileOp As SHFILEOPSTRUCT) As Integer

    <StructLayout(LayoutKind.Explicit)> _
    Private Structure SHFILEOPSTRUCT
    <FieldOffset(0)> Public hwnd As IntPtr
    <FieldOffset(4)> Public wFunc As Integer
    <FieldOffset(8)> Public pFrom As String
    <FieldOffset(12)> Public pTo As String
    <FieldOffset(16)> Public fFlags As Short
    <FieldOffset(18), MarshalAs(UnmanagedType.Bool)> _
    Public fAnyOperationsAborted As Boolean
    <FieldOffset(22)> Public hNameMappings As Integer
    <FieldOffset(26)> Public lpszProgressTitle As IntPtr
    End Structure

    Function CopyFile(ByVal source As String, ByVal dest As String) As Integer
    Dim sh As SHFILEOPSTRUCT
    sh.wFunc = 2
    sh.hwnd = IntPtr.Zero
    sh.pTo = dest
    sh.pFrom = source & ControlChars.NullChar
    sh.fFlags = &H48
    Dim res As Integer = SHFileOperation(sh)
    If res = 0 Then
    Return 0
    ElseIf sh.fAnyOperationsAborted Then
    Return 1
    Else
    Return 2
    End If
    End Function

    Select Case CopyFile(“c:\Docs\*.*", “c:\Backup”)
    Case 0: MessageBox.Show(“All files were copied correctly.”)
    Case 1: MessageBox.Show(“User canceled the operation.”)
    Case 2: MessageBox.Show(“An error occurred.”)
    End Select

    --------------------HkProj------------------

  6. #6
    Ecco, è quel libro lì !
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.