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

Delphi .NET Discussion :

Executer une application sur la page web


Sujet :

Delphi .NET

  1. #1
    Futur Membre du Club
    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 :Sélectionner tout -Visualiser dans une fenêtre à part
    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 chevronné
    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
    Futur Membre du Club
    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 chevronné
    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
    Futur Membre du Club
    voici le ShellExecute:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    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 chevronné
    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 :Sélectionner tout -Visualiser dans une fenêtre à part
    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
    Futur Membre du Club
    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
    Futur Membre du Club
    ç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;