begin process at 2010 02 10 02:02:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Couper des fichiers


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Couper des fichiers

dimanche 25 septembre 2005 à 19:07:06 | Couper des fichiers

Pinky84

Lorsque que je coupe un fichier dans explorer et le colle dans mon app, la copie de fait se fait parfaitement sauf qu'il me reste a dire a l'explorer qu'il peut maintenant effacer le fichier en question. J'ai vu qu'il faut faire quelque chose ressemblant à (le code est imcomplet):

IDataObject *pData = NULL;
if (OleGetClipboard(&pData))
{
  FORMATETC Format    = {0};
  STGMEDIUM *pMedium    = 0;

  // On met quoi dans Format ?!?
  Format.cfFormat = RegisterClipboardFormat(CFSTR_PREFERREDDROPEFFECT);

  pData->GetData(&Format, pMedium);  // ERREUR: Access violation reading location 0x00000000

  if (pMedium)
  {
    // Verifier si le format
CFSTR_PREFERREDDROPEFFECT égale DROPEFFECT_MOVE
    // Si oui: appeller SetData avec le format CFSTR_PERFORMEDDROPEFFECT égale à DROPEFFECT_MOVE

    delete pMedium;
  }
}


Merci d'avance
Pinky84


dimanche 25 septembre 2005 à 19:16:26 | Re : Couper des fichiers

satellite34

t' a testée avec FORMATETC *Format = {0}; ??? ton erreur te dis que tu cherche a lire un emplacement mémoire null; event.Merci();@+;ROOT_DIEU Alias satellite34
dimanche 25 septembre 2005 à 19:32:24 | Re : Couper des fichiers

Pinky84

C'est ce que je veux savoir, comment remplis t-on ce FORMATETC. Sur MSDN, il n'explique pas comment, tout ce que je sais c'est que cfFormat doit etre RegisterClipboardFormat(CFSTR_PREFERREDDROPEFFECT);

Et puis j'aimerai aussi savoir comment faire pour:

//
Verifier si le format CFSTR_PREFERREDDROPEFFECT égale DROPEFFECT_MOVE
// Si oui: appeller SetData avec le format CFSTR_PERFORMEDDROPEFFECT égale à DROPEFFECT_MOVE


Merci
lundi 26 septembre 2005 à 15:11:22 | Re : Couper des fichiers

satellite34

formule un peu mieux tesc questions car la, franchementy, je ne comprends pas ce que tu veux;

@+;
ROOT_DIEU Alias satellite34
lundi 26 septembre 2005 à 16:29:04 | Re : Couper des fichiers

Pinky84

Comment faire pour signaler à l'explorer que l'on a 'Coller' des fichiers que l'utilisateur avait précédemment 'Couper' dans l'explorer. Car avec le code que j'ai écrit, tout ce qui se fait c'est la copie des fichiers mais ne signale pas explorer qu'il a complèté l'opération donc n'efface pas les fichiers.

Le code en question:
void OnMenu_EditPaste(HWND hWnd)
{
    if (OpenClipboard(hWnd))
    {
        HDROP hData;

        if (hData = (HDROP) GetClipboardData(CF_HDROP))
        {
            //IDataObject *pData = NULL;

            Paste(hWnd, hData);

// maintenant il faut avertir explorer que l'opération est completée, mais comment ?!?
/*
            if (OleGetClipboard(&pData))
            {
                FORMATETC Format    = {0};
                STGMEDIUM *pMedium    = NULL;

                Format.tymed    = TYMED_FILE;
                Format.cfFormat = RegisterClipboardFormat(CFSTR_PREFERREDDROPEFFECT);
                Format.ptd        = 0;
                Format.dwAspect = DVASPECT_CONTENT;
                Format.lindex    = -1;

                pData->GetData(&Format, pMedium);

                if (pMedium)
                {

                    delete pMedium;
                }
            }*/
        }
        CloseClipboard();
    }
}



Le exe:
ftp://shelter.ath.cx/boxit.exe
Si tu n'a pas déjà cette dll (microsoft ne la distribu pas avec DX9.0c)
ftp://shelter.ath.cx/d3dx9_26.dll

Coupe quelque fichier ensuite colle les dans ce programme, les fichier sont bel et bien copier, mais explorer n'en est pas averti et n'efface donc pas les fichiers.

Merci

lundi 26 septembre 2005 à 16:40:39 | Re : Couper des fichiers

satellite34

essaye voir de le faire manuellement, désolé mais je ne programme pas sous windows, à mon gout, je récupererai le chemin de l'ancien fichier  et je l'effacerai avec comme condition que la découpe est réussi, et tout ca manuellement;

Avec stdio.h, tu peux faire :

  if( remove( t_fichier ) = = -1 )
    perror( "Error deleting file" );
  else
    puts( "File successfully deleted" );
  return 0;

Je ne sais pas si c'est ce que tu veux exactement faire mais je crois avoir compris ca;
Tiens nous au courant

event.Voila();
@+;
ROOT_DIEU Alias satellite34

lundi 26 septembre 2005 à 17:06:00 | Re : Couper des fichiers

Pinky84

C'est malheureusement impossible, je dois savoir si l'utilisateur a fait couper ou copier et effacer seulement s'il a fait couper.

Merci!
lundi 26 septembre 2005 à 17:24:08 | Re : Couper des fichiers

satellite34

trés chère pinky du 84 (hihihi, j' était a Carpentras pendant 4ans (lol)) ok, ben je ne vois pas le problème !!!!!!! Comme dit plus haut , tu fais une condition : if (t'a_coupé) remove( t_fichier ); return 0;
lundi 26 septembre 2005 à 17:51:14 | Re : Couper des fichiers

Pinky84

La partie où l'utilisateur coupe le ficheir c'est pas dans mon programme, c'est dans Windows. Pour savoir si l'utilisateur a fait couper je dois passer un FORMATETC à IDataObject::GetData et  FORMATETC::cfFormat doit être RegisterClipboardFormat(CFSTR_PREFERREDDROPEFFECT).

Mais je ne sais pas quoi mettre au autre membre de la strcut et quand j'apelle GetData ce plante (
Access violation reading location 0x00000000)
mardi 27 septembre 2005 à 03:19:36 | Re : Couper des fichiers

satellite34

je ne comprends pas le but de ton dev en fait ! Ne voudrais-tu pas que ton soft gére tout du début a la fin??? Pourquoi c'est windows qui dit s' occuper de la découpe???? Car si ton soft gérait tout ca tu n' aurai plus ce pb je pense; ROOT_DIEU;

1 2

Cette discussion est classée dans : format, couper, pdata, pmedium, cfstr


Répondre à ce message

Sujets en rapport avec ce message

lecture d image au format jpeg [ par a-sophie ] Salut,Je souhaite lire et sauvegarder des images au format jpeg avec visual c++ .Si jamais quelqu un a des conseils ou des pistes a me donner, ce sera format de dateet heure [ par tertulia ] comment modifier le format de la date et de l'heure.je m'explique je recupere la date et l'heure grace aux fonctions suivantes _tstrdate(datebuf);_ts Format de fichier : très étrange [ par GoldenEye ] Bonjour à tous J'ai un problème très bizarre: je viens de revenir sur un programme de compression (Huffman sur ce site) et je m'aperçois qu'il ne fonc Sauvegarde du rendu ds un fichier image [ par titeufxp ] Bonjour,J'aurai besoin d'aide pour sauvegarder le contenu de ma fenetre opengl ds un format image genre BMP ou JPG.J'arrive a faire un fichier image a Format dans les fstream [ par Cyrik ] Bien le bonjour tout le monde,Ca fait maintenant 2 jours que je cherche sur le net, la façon de formater "habituelle" en C++. Je m'explique, j'ai tjrs conversion d'un format png en image bmp [ par REk2002 ] bonjour je cherche un programme simple permettant de convertir une image png en bmp. merci d'avance au revoir probleme heure en temps reel [ par nazca ] Le Zero de la programmationNazca[blue]J ai un petit probleme,j ai afficher dans plusieurs edit box l'heure du systeme grace a se code:CTime TimeObject convrsion de format [ par fafe ] salut,je cherche a convertir un document au format dxf vers le format svg ou un document flash es-ce possible en c++ si oui comment s'y prendre ?? overlay - gestion d'une clé de couleur [ par Aran ] bonjour a tousJe voudrais que les surfaces overlay que je créé (DirectDraw) puisse s'afficher avec une couleur de transparence.Le probleme c'est que l conversion de format! [ par chris5874 ] bonjour tout le monde!j'aimerai savoir comment convertir une ip (format a.b.c.d)de type char en 4 nombres de type int.merci d'avance pour votre aide!


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales