IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Ouvrir explorateur Windows dans script python pour Blender


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Ouvrir explorateur Windows dans script python pour Blender
    Bonjour,

    Cela fait trois jours que je cherche éperdument une solution à mon problème qui me parait simple, mais dont je ne me sors pas. Je viens donc chercher un peu d'aide chez les plus expérimentés que moi en Blender !

    J'ai réalise un script python, qui s'exécute bien dans Blender, et je voudrais l'améliorer pour qu'il ouvre un explorateur Windows dans un dossier précis pour que l'utilisateur sélectionne le fichier qu'il veut, et qu'ensuite le script renvoie le path du fichier que j'ouvrirai ensuite avec la fonction open().
    Il y a bien la lib tkinter qui fait ça, mais elle n'est pas incluse dans Blender. J'ai donc cherché une alternative aussi simple, mais je ne trouve rien...que des scripts ultra compliqués, alors que tout ce que je veux, c'est juste récupérer le path sous forme de string du fichier sélectionné...

    Quelqu'un pour me sauver SVP ?!

    Merci d'avance !

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2013
    Messages : 9
    Points : 0
    Points
    0
    Par défaut
    c'est pour du python 3.2:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    #!env python
    import ctypes
    from ctypes import wintypes
     
    result = ctypes.create_string_buffer(1024)
    class OPENFILENAME(ctypes.Structure):
    	_fields_ = [
    			("lStructSize", ctypes.wintypes.DWORD),
    			("hwndOwner", ctypes.wintypes.HWND),
    			("hInstance", ctypes.wintypes.HINSTANCE),
    			("lpstrFilter", ctypes.c_char_p),
    			("lpstrCustomFilter", ctypes.c_char_p),
    			("nMaxCustFilter", ctypes.wintypes.DWORD),
    			("nFilterIndex", ctypes.wintypes.DWORD),
    			("lpstrFile", ctypes.c_char_p),
    			("nMaxFile", ctypes.wintypes.DWORD),
    			("lpstrFileTitle", ctypes.c_char_p),
    			("nMaxFileTitle", ctypes.wintypes.DWORD),
    			("lpstrInitialDir", ctypes.c_char_p),
    			("lpstrTitle", ctypes.c_char_p),
    			("Flags", ctypes.wintypes.DWORD),
    			("nFileOffset", ctypes.wintypes.WORD),
    			("nFileExtension", ctypes.wintypes.WORD),
    			("lpstrDefExt", ctypes.c_char_p),
    			("lCustData", ctypes.wintypes.LPARAM),
    			("lpfnHook", ctypes.c_void_p),
    			("lpTemplateName", ctypes.c_char_p),
    			("pvReserved", ctypes.c_void_p),
    			("dwReserved", ctypes.wintypes.DWORD),
    			("FlagsEx",  ctypes.wintypes.DWORD),
    		]
    filename = OPENFILENAME(
    	ctypes.sizeof(OPENFILENAME),
    	0,
    	0,
    	bytes('*.txt', 'utf-8'),
    	0,
    	0,
    	0,
    	ctypes.cast(ctypes.addressof(result), ctypes.c_char_p),
    	1024,
    	0,
    	0,
    	bytes('C:\\', 'utf-8'),
    	bytes('Open a file from Python', 'utf-8'),
    	0,
    	0,
    	0,
    	bytes('txt', 'utf-8'),
    	0,
    	0,
    	0,
    	0,
    	0,
    	0
    )
     
    ctypes.windll.comdlg32.GetSaveFileNameA(ctypes.byref(filename))
     
    print (str(result.value))

    en bref, ca va taper dans la DLL de Windows pour appeler la fonction et remplir le buffer result avec le nom d'un fichier. Voir la doc de la fonction en question:

    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

    Franchement, c'est fourni sans service apres-vente

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2013
    Messages : 9
    Points : 0
    Points
    0
    Par défaut
    de rien

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 072
    Points : 7 974
    Points
    7 974
    Par défaut
    Pourquoi vouloir ouvrir l'explorateur de windows alors qu'il y'a un "explorateur" dans blender qui fera le même office ? C'est ce compliqué la vie

    En plus je pense qu'une personne a récemment poser le même genre de question sur ce forum et je lui avait donné un morceau de solution.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/04/2009, 17h10
  2. Execution d'appel java dans script CGI pour webmin
    Par lestathor dans le forum Langage
    Réponses: 1
    Dernier message: 05/12/2007, 15h11
  3. [Cherche tuto/cours]Script Python pour Unix
    Par elflamby dans le forum Général Python
    Réponses: 2
    Dernier message: 05/09/2007, 15h38
  4. Réponses: 6
    Dernier message: 30/05/2007, 11h41
  5. Intégrer l'explorateur Windows dans ma Form
    Par Crazyfaboo dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/04/2007, 00h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo