سؤال

لقد كتبت نصًا صغيرًا يتيح لي إرسال رسائل بريد إلكتروني عن طريق الاتصال به مع بعض معلمات سطر الأوامر.

في سطر الأوامر ، يعمل هذا:

ruby.exe mail_it.rb fromaddr="mailaddr1@gmail.com" tolist="mailaddr2@yahoo.com"

لكن حاول قدر الإمكان ، لا يمكنني تشغيله في Delphi 2007 لـ Win32. ها هي أحدث محاولة:

procedure TForm1.Button1Click(Sender: TObject);
var
  params: string;
begin
  params:= 'mail_it.rb fromaddr="mailaddr1@gmail.com" tolist="mailaddr2@yahoo.com"';
  caption:= IntToStr(ShellExecute(Form1.Handle, nil, PChar('ruby.exe'), PChar(params), nil, SW_SHOW));
end;

لقد حاولت استخدام "Open" باعتباره param الثاني في Shellexecute ، لكنه لا يساعد. تعود Shellexecute نفسها 42 ، والتي بقدر ما أستطيع أن أقول عما وجدته على مواقع الويب الأخرى يعني "لا خطأ".

هل كانت مفيدة؟

المحلول

جرب هذا:

shellexecute(0, 'open', '<PUT YOUR PATH HERE>\mail_it.rb', fromaddr="mailaddr1@gmail.com" tolist="mailaddr2@yahoo.com"' , nil, SW_NORMAL);

ليس لديّ Ruby مثبتًا ، لكن هذا يعمل بالنسبة لي بدء ملف .pas مع المحرر. طالما أن لديك ruby.exe المرتبطة بملفات .rb ، يجب أن تعمل.

-اِتَّشَح

نصائح أخرى

إليك الحد الأدنى من الرمز الذي يعمل:

procedure TForm1.Button1Click(Sender: TObject);
var
  params: string;
begin
    shellexecute(0, nil, 'mail_it.rb', 
                 'fromaddr="mailaddr1@gmail.com" tolist="mailaddr2@yahoo.com"', 
                  nil, SW_NORMAL);
end;

لم أكن بحاجة إلى المسار الكامل لـ Mail_it.rb ، ولا "مفتوح" ، لكنني كنت بحاجة إلى ".rb".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top