Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema call shell

  1. #1

    Problema call shell

    Salve, ho questi codici per aprire una cartella:

    codice:
     Dim PercorsoProgrammi As String = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
            Dim cartella As String
            cartella = PercorsoProgrammi & "\mia_cartella\screenshot"
            if  Directory.Exists(cartella) Then
                Call Shell("Explorer.exe" & cartella, vbMaximizedFocus)
            End If
    Il problema sorge al call shell, non so come fargli capire che cartella è la path della cartella da aprire..
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  2. #2
    Ma fare semplicemente un
    codice:
    System.Diagnostic.Process.Start(percorsoDellaCartella)
    ?

    P.S.: dimentica Call e Shell, è roba di VB6; e per costruire i percorsi usa System.IO.Path.Combine, in modo da essere sicuro di non fare casini con backslash mancanti/di troppo.

    ---EDIT---
    Aggiungo: ricostruire il percorso in cui sta il tuo eseguibile in quella maniera è una pessima idea, dato che in fase di setup l'utente potrebbe aver scelto un altro percorso. E anche usare sottodirectory della cartella del programma come zone in cui scrivere dati non è una buona idea, dato che così non hai separazione tra i dati dei vari utenti, e se il programma viene eseguito da un utente non amministratore, non ha i permessi per scrivere lì.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481

    Re: Problema call shell

    Fermo restando che condivido quanto scritto da MItaly (anche se penso che per i tuoi scopi non ti interessi molto ...), penso che dovresti stare attenti agli spazi ...

    Ecco dove ne manca uno ... importante perché il codice funzioni ...

    codice:
     Dim PercorsoProgrammi As String = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
            Dim cartella As String
            cartella = PercorsoProgrammi & "\mia_cartella\screenshot"
            if  Directory.Exists(cartella) Then
                Call Shell("Explorer.exe " & cartella, vbMaximizedFocus)
            End If
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Ok grazie per la correzione, dopo provo, Mitaly direi che quasi tutti lasciano il percorso di default, poi se hanno cambiato percorso peggio per loro, così il mio programma non funzionerà lol
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  5. #5
    Originariamente inviato da 0-c00l
    Ok grazie per la correzione, dopo provo, Mitaly direi che quasi tutti lasciano il percorso di default, poi se hanno cambiato percorso peggio per loro, così il mio programma non funzionerà lol
    L'atteggiamento giusto per scrivere programmi bene, effettivamente...
    Ribadisco poi che non tutti sono amministratori, specie con l'UAC, specie in ambito aziendale; quindi dopo il setup devi lasciare stare la tua directory sotto Programmi.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da 0-c00l
    Salve, ho questi codici per aprire una cartella
    Rileggi qui.

    Poi è l'ultimo avvertimento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.