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

API, COM et SDKs Delphi Discussion :

lpici.lpverb comment récupérer la chaîne de caractère ? Help


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 6
    Par défaut lpici.lpverb comment récupérer la chaîne de caractère ? Help
    Bonjour la liste

    Dans une structure TCMInvokeCommandInfo renvoyée dans la fonction incokecommand d'une extension de shell context menu.

    je souhaiterais récupérer la chaine de caratctère de la ligne de commande du menu contextuel.

    Il est indiqué dans l'aide Microsoft que lpverb contient la chaîne de caractère, mais je n'arrive vraiment pas à la récupérer

    Pourriez-vous m'aider svp ??

    Help !!! Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Par défaut
    Peut-être qu'avec un bout de code...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 6
    Par défaut Voili voilou code modifié de la démo activeX de borland ....
    Voici ma fonction extraite de la demo activex de Delphi

    C:\Program Files\Borland\Delphi7\Demos\ActiveX\ShellExt\contmenu.dpr

    Je bataille depuis deux semaine avec ce problème ... Je dois passer à côté de quelque chose

    Voici le lien vers l'explication de Microsoft :

    http://msdn.microsoft.com/library/de...nuhandlers.asp

    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
    //------------------ Example Start ---------------------
    function TContextMenu.InvokeCommand(var lpici: TCMInvokeCommandInfo): HResult;
    resourcestring
      sPathError = 'Error setting current directory';
    const
      MAX_SIZE = 50;
    var
      H: THandle;
      PrevDir: string;
      idCmd : UINT;
    begin
      //-- Make sure we are not being called by an application
      if (HiWord(Integer(lpici.lpVerb)) <> 0) then
      begin
        Result:=E_FAIL;
      end
      else
      begin
        //-- Retrieve Command Id
        idCmd := LoWord(Lpici.lpVerb);
        Result := S_OK;
     
        //-- Execute the command specified by lpici.lpVerb related to idCmd
        PrevDir := GetCurrentDir;
        try
          if not SetCurrentDir(ExtractFilePath(FFileName)) then
            raise Exception.CreateRes(@sPathError);
     
          H := 0;
     
          //---- C'est là que j'ai un problème ;-( -----
         ShowMessage('Try to execute command'+lpici.lpverb);
     
          if idCmd=0 then
            begin
               //Do somthing
            end
          else if idCmd=1 then
            begin
              //do smthing elz
            end
          else if (idCmd>=3) then
          begin
             //do smthing elz again
          end;
     
          if (H < 32) then
            MessageBox(lpici.hWnd, 'Error executing Application', 'Error', MB_ICONERROR or MB_OK);
          Result := NOERROR;
        finally
          SetCurrentDir(PrevDir);
        end;
      end;
    end;
     
    //---------------- Example End -----------------//
    Merci d'avance pour vos idées car je sèche vraiment ....

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Par défaut
    La constante MAX_SIZE n'est pas utilisée.

    Pour le moment je ne vois pas de réponse à ton problème, que se passe t-il lorsque tu exécutes cette ligne ? (le ShowMessage())

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 6
    Par défaut
    En ce qui concerne MAX_SIZE, c'est un reliquat d'un test avec strcopy et un tableau de char. Donc ne pas tenir compte de cette constante.

    Sinon ShowMessage(lpici.lpverb) affiche une chaîne vide ....

    C'est mon problème ...

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Par défaut
    lpici.lpverb est peut être un Pchar, dans ce cas il faudrait faire
    ShowMessage(string(lpici.lpverb))

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 6
    Par défaut
    Euh ben non ...

    ShowMessage(String(lpici.lpverb)) => ChaÎne vide ...

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Par défaut
    En fait lpVerb est un entier pas une chaine. ce lien peut te donner des idées:

    http://www.raize.com/DevTools/DelphiByDesign/Articles/DbD47.htm

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 6
    Par défaut
    Merci bcps pour le lien ... Mais je l'ai déjà parcouru ...

    Ils n'utilisent que la propriété d'identifiant du menu.
    Ils ne montrent pas comment récupérer la chaîne de caractère.

    Merci quand même.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 6
    Par défaut
    Pour finir sur le sujet et pour accélérer le développement en attente de la solution ...

    Je créé un tableau associatif afin de récupérer la chaîne correspondante à l'identifiant.

    Ce qui m'affranchit de la récupération dynamique.

    Merci à tous pour vos idées.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/01/2011, 09h44
  2. Réponses: 3
    Dernier message: 03/11/2009, 07h19
  3. comment récupérer une chaîne de caractères
    Par the_crow_man dans le forum C
    Réponses: 8
    Dernier message: 04/07/2008, 15h39
  4. Comment découper une chaîne de caractères en VBA
    Par TomPad dans le forum Access
    Réponses: 3
    Dernier message: 23/06/2005, 09h58
  5. Réponses: 5
    Dernier message: 15/02/2005, 18h07

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