امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
اجرای vbscript در دلفی
نویسنده پیام
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #1
اجرای vbscript در دلفی
دلفی زبان پرقدرتی میباشد که قابلیت تعامل با اکثر زبانهای برنامه نویسی و اسکریپتی را دارا میباشد یکی از این زبانها vbscript و MSscript و jscriptمیباشد
شما از 2 راه میتوانید این کار را انجام دهید اول به صورت مستقیم با استفاده از نصب اکتیو ایکس microsoft script control که به همراه دلفی وجود دارد دوم به صورت غیر مستقیم با استفاده از توابع com و ole در دلفی
برای این کار از رابط MSScriptControl.ScriptControl استفاده میکنیم این رابط دارای متدهای مختلف برای اجرای کد میباشد
AddCode:اضافه کردن کد یا تابع به اسکریپت کنترل
AddObject:ایجاد یک شیی برای دسترسی برنامه اجرا کننده اسکریپت به آن
Eval:ارزیابی یا محاسبه یک عبارت
ExecuteStatement:فقط 1 درستور را اجرا میکند
Reset:مقدار اغازی دادن یا ریست کردن موتور اسکریپت
Run:اجرای یک تابع
Language:انتخاب نوع زبان اسکریپتی

ابتدا یونیتهای ComObj و ActiveX را uses کنید

مثال1:اجرای یک دستور
کد:
procedure TForm1.btn1Click(Sender: TObject);
Var
  Sc:Variant;
  Res:String;
Begin
  Sc:=CreateOleObject('MSScriptControl.ScriptControl');
  Sc.Language:= 'VBScript';
  Sc.ExecuteStatement('MsgBox "Hello World!"');
end;

مثال2:محاسبه یک عبارت
کد:
procedure TForm1.btn1Click(Sender: TObject);
Var
  Sc:Variant;
  Res:String;
Begin
  Sc:=CreateOleObject('MSScriptControl.ScriptControl');
  Sc.Language:= 'VBScript';
  Res:=Sc.Eval('100+5*4');
  memo1.Lines.Add(res);
end;

مثال3:اجرای یک روال
کد:
procedure TForm1.btn1Click(Sender: TObject);
Var
  Sc:Variant;
  Res:String;
Begin
  Sc:=CreateOleObject('MSScriptControl.ScriptControl');
  Sc.Language:= 'VBScript';
  Sc.AddCode('Sub Hello(YourName)'+#13+
             'MsgBox "Hello " & YourName'+#13+
             'End Sub');
  Sc.Run('Hello','lord_viper');
end;

مثال4:اجرای یک تابع و بازگشت مقدار آن
کد:
procedure TForm1.btn1Click(Sender: TObject);
Var
  Sc:Variant;
  Res:String;
Begin
  Sc:=CreateOleObject('MSScriptControl.ScriptControl');
  Sc.Language:= 'VBScript';
  Sc.AddCode('Function AddTwo(X1, X2)'+#13+
             'AddTwo = X1 + X2'+#13+
             'End Function');
  Caption:=Sc.Run('AddTwo',7,12.5);
end;

مثال5:اجرای مستقیم کد
کد:
procedure TForm1.btn1Click(Sender: TObject);
Var
  Sc:Variant;
Begin
  Sc:=CreateOleObject('MSScriptControl.ScriptControl');
  Sc.Language:= 'VBScript';
  Sc.AddCode('strMessage =Inputbox("Enter your message","Input Required")'+#13+
             'Set objVoice = CreateObject("SAPI.SpVoice") '#13+
             'objVoice.Speak strMessage');
end;

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۰۸-فروردین-۱۳۹۲, ۱۷:۱۷:۳۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, veyskarami, godvb, Majid_Ebru


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question [سوال] ساخت EDITOR مانند دلفی hameds606 3 1,463 ۱۱-خرداد-۱۳۹۸, ۱۰:۰۷:۲۳
آخرین ارسال: lord_viper
  دریافت اطلاعات از سخت افزار در دلفی m59alizadeh 6 7,169 ۰۶-آذر-۱۳۹۵, ۱۳:۰۱:۴۹
آخرین ارسال: lord_viper
  تبدیل کد به دلفی The.Ghost 2 3,691 ۱۶-فروردین-۱۳۹۴, ۲۲:۱۵:۰۴
آخرین ارسال: veyskarami
  ارسال ایمیل با دلفی h_mohamadi 13 10,453 ۱۴-آبان-۱۳۹۳, ۱۸:۰۰:۴۳
آخرین ارسال: babyy
  فیلم آموزش مدیریت استثنائات در دلفی بهروز عباسی 2 3,152 ۳۰-مرداد-۱۳۹۳, ۱۵:۵۳:۰۸
آخرین ارسال: veyskarami
  [سوال] ریجستری در دلفی spase 2 3,045 ۱۸-خرداد-۱۳۹۳, ۱۵:۵۶:۴۷
آخرین ارسال: veyskarami
  کامپوننت ترد در دلفی hesarkhani 2 3,701 ۰۲-اردیبهشت-۱۳۹۳, ۲۲:۰۸:۴۵
آخرین ارسال: The.Ghost
  سورس دلفی lord_viper 46 58,074 ۰۹-دى-۱۳۹۲, ۱۹:۳۸:۳۳
آخرین ارسال: بهروز عباسی
  [آموزشی] 6700 نکته و کد دلفی lord_viper 0 2,940 ۰۴-دى-۱۳۹۲, ۱۰:۰۴:۳۱
آخرین ارسال: lord_viper
  عدم اجرای مجدد exe با کلیک مجدد siroosss 2 2,469 ۲۴-مهر-۱۳۹۲, ۱۵:۰۴:۲۵
آخرین ارسال: siroosss

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS