2009-10-19 7 views
0

J'ai écrit un petit script ruby ​​qui me permet d'envoyer des emails en l'appelant avec quelques paramètres de ligne de commande.exécuter un script ruby ​​de delphi via shellexecute

Sur la ligne de commande, cela fonctionne:

ruby.exe mail_it.rb fromaddr="[email protected]" tolist="[email protected]" 

Mais essayez comme je, je ne peux pas le faire fonctionner dans Delphi 2007 pour Win32. Voici la dernière tentative:

procedure TForm1.Button1Click(Sender: TObject); 
var 
    params: string; 
begin 
    params:= 'mail_it.rb fromaddr="[email protected]" tolist="[email protected]"'; 
    caption:= IntToStr(ShellExecute(Form1.Handle, nil, PChar('ruby.exe'), PChar(params), nil, SW_SHOW)); 
end; 

J'ai essayé d'utiliser « ouvert » comme deuxième dans ShellExecute param, mais il ne permet pas. ShellExecute lui-même renvoie 42, ce qui pour autant que je peux dire de ce que j'ai trouvé sur d'autres sites signifie «aucune erreur».

Répondre

1

essayez ceci:

shellexecute(0, 'open', '<PUT YOUR PATH HERE>\mail_it.rb', fromaddr="[email protected]" tolist="[email protected]"' , nil, SW_NORMAL); 

je n'ai pas ruby ​​installé, mais cela fonctionne pour moi à partir d'un fichier .pas avec l'éditeur. Tant que vous avez ruby.exe associé avec les fichiers .rb, cela devrait fonctionner.

-Don

+0

Je vais tenter le coup. Raison Je suis douteux parce que je n'ai pas besoin du chemin normalement car tout le matériel ruby ​​est dans le chemin du système, d'une façon ou d'une autre. Je repasse quand je l'ai essayé – user119282

+0

Ça a marché! Merci beaucoup! – user119282

+0

Pourriez-vous corriger la syntaxe, s'il vous plaît? Ce n'est pas clair de ce que tu voulais écrire. –

0

Voici le code minimal qui fonctionne:

procedure TForm1.Button1Click(Sender: TObject); 
var 
    params: string; 
begin 
    shellexecute(0, nil, 'mail_it.rb', 
       'fromaddr="[email protected]" tolist="[email protected]"', 
        nil, SW_NORMAL); 
end; 

Je n'ai pas besoin le chemin complet mail_it.rb, ni le 'ouvert', mais je ne le besoin » .rb '.

Questions connexes