Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Delphi .NET
Delphi .NET Forum d'entraide sur l'EDI Delphi pour .NET et Borland Developer Studio
Avant de poster -> F.A.Q. Delphi .NET, F.A.Q. Delphi ASP.NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 27/07/2009, 18h45   #1
wael khalil
Invité de passage
 
Inscription : 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:
Citation:
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
wael khalil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2009, 09h15   #2
Aka Guymelef
Membre Expert
 
Inscription : novembre 2007
Messages : 1 519
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : novembre 2007
Messages : 1 519
Points : 1 919
Points : 1 919
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 -
Aka Guymelef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2009, 09h33   #3
wael khalil
Invité de passage
 
Inscription : mai 2005
Messages : 14
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 14
Points : 1
Points : 1
Non, il est correct. defini dans ExtActns.pas
j'ai essayé l'autre, toujours le même message! ça commence à me gonfler
wael khalil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2009, 10h02   #4
Aka Guymelef
Membre Expert
 
Inscription : novembre 2007
Messages : 1 519
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : novembre 2007
Messages : 1 519
Points : 1 919
Points : 1 919
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 -
Aka Guymelef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2009, 10h18   #5
wael khalil
Invité de passage
 
Inscription : mai 2005
Messages : 14
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 14
Points : 1
Points : 1
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.
wael khalil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2009, 10h50   #6
Aka Guymelef
Membre Expert
 
Inscription : novembre 2007
Messages : 1 519
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : novembre 2007
Messages : 1 519
Points : 1 919
Points : 1 919
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 -
Aka Guymelef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2009, 11h40   #7
wael khalil
Invité de passage
 
Inscription : mai 2005
Messages : 14
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 14
Points : 1
Points : 1
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
wael khalil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2009, 14h01   #8
wael khalil
Invité de passage
 
Inscription : 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;
wael khalil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h06.


 
 
 
 
Partenaires

Hébergement Web