+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Invité de passage
    Inscrit en
    mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 14
    Points : 1
    Points
    1

    Par défaut Executer une application sur la page web

    Bonjour à tous,
    je voudrais executer un application sur le serveur à partir d'une page web.
    voilà comment j'ai procédé:

    Code :
    1
    2
    3
    4
    procedure TForm.LinkButton3_Click(sender: System.Object; e: System.EventArgs);
    begin
    Shellexecute(0, 'open', 'repertoire\nomdefichier.jar', nil,nil, scshow);
    end;
    lorsque je compile, je reçoi le message d'erreur:
    aucune version surchargée de ShellExecute ne peut être appelée par ces arguements
    Avez vous une idée de quoi il s'agit? sinon, avez vous un autre moyen pour executer une application à partir d'une page web?

    j'ai Delphi8.net

    Merci d'avance pour toute aide

  2. #2
    Membre Expert

    Inscrit en
    novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 30

    Informations forums :
    Inscription : novembre 2007
    Messages : 1 519
    Points : 2 084
    Points
    2 084

    Par défaut

    Bonjour,

    Le dernier paramètre que tu passes me semble invalide, cela devrait être SW_SHOWNORMAL définit dans windows.pas.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    Invité de passage
    Inscrit en
    mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 14
    Points : 1
    Points
    1

    Par défaut

    Non, il est correct. defini dans ExtActns.pas
    j'ai essayé l'autre, toujours le même message! ça commence à me gonfler

  4. #4
    Membre Expert

    Inscrit en
    novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 30

    Informations forums :
    Inscription : novembre 2007
    Messages : 1 519
    Points : 2 084
    Points
    2 084

    Par défaut

    Fais un CTRL + clic sur ShellExecute et tu devrais arriver à la définition de la fonction (dans windows.pas normalement). Copie-nous ici la définition de cette méthode.

    Et je confirme que c'est bien une constante SW_XXX définies dans windows.pas, celle que tu cites n'as strictement rien à voir.
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  5. #5
    Invité de passage
    Inscrit en
    mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 14
    Points : 1
    Points
    1

    Par défaut

    voici le ShellExecute:
    Code :
    1
    2
    3
    function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
      Directory: string; ShowCmd: Integer): HINST; external;
    [DllImport(shell32, CharSet = CharSet.Auto, SetLastError = True, EntryPoint = 'ShellExecute')]
    Oui, je confirme aussi que la constante SW_XXX est definie dans windows.pas, ce que j'ai cité devrait marcher aussi et c'est une constante dans ExtActns.pas. de toute façon, même avec les constante windows, cela ne marche pas.

  6. #6
    Membre Expert

    Inscrit en
    novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 30

    Informations forums :
    Inscription : novembre 2007
    Messages : 1 519
    Points : 2 084
    Points
    2 084

    Par défaut

    Ce n'est pas parce que les constantes sont de types équivalant (souvent des integer) qu'ils sont pour autant égaux sémantiquement et surtout au niveau de la valeur de leur constante.

    Comment pouvez-vous être sûr que scshow porte la même valeur que SW_SHOWNORMAL ? Et même d'un point de vue sémantique, les constantes SW_XXX sont faites pour travailler de paire avec ShellExecute, scshow ne fonctionne que pour la classe TCustomFileRun (qui d'ailleurs fais une conversion de scshow vers SW_SHOW).

    Quoi qu'il en soit, le problème ici est que dans sa version .NET, la déclaration de ShellExecute n'utilise plus de pointeurs sur chaînes mais des chaînes tout court.

    L'appel doit donc devenir :

    Code :
    Shellexecute(0, 'open', 'repertoire\nomdefichier.jar', '', '', SW_SHOW);
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  7. #7
    Invité de passage
    Inscrit en
    mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 14
    Points : 1
    Points
    1

    Par défaut

    Merci pour la reponse
    ça compile, mais ça execute rien derière
    je vais voir dans le retour de la fonction
    Merci pour la clairfication concernant SW_show et scwhow

  8. #8
    Invité de passage
    Inscrit en
    mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 14
    Points : 1
    Points
    1

    Par défaut ça execute mais n'ouvre pas!

    Me voilà je reviens au sujet aprés plusieurs tentaives non reussites.
    avec cet procedure, NotePad s'execute mais ça n'ouvre pas le fichier test.txt
    qqun aurait une idée sur la raison pour laquele mon fichier ne s'ouvre pas?
    Merci d'avance
    J'utilise tjrs Delphi8.net

    procedure Twebform1.executeshell_proc;
    var
    programme, fichier: string;

    begin
    programme:= 'C:\WINDOWS\notepad.exe';
    fichier:= 'C:\test.txt';
    Shellexecute(0, 'open', programme, fichier ,' ', SW_SHOWnormal);
    end;

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •