喫茶XRAYトップページ

[▲前のスレッド]

[11477] COMとCreateOleObject返信 削除
2017/10/18 (水) 10:28:27 Mr.XRAY
以下の項目を追加しました.

[07_COM オブジェクトと他のアプリの操作]
http://mrxray.on.coocan.jp/Delphi/plSamples/400_Excel_CreateObject.htm#07

これは,同じページの 2 つ上の
[05_CreateOLEObject 関数で生成可能なオブジェクト ]
に [備考] として書いていた内容です.

[パソコンに話をさせる方法を教えてください。]
http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+201710/17100004.txt

にある VBScript (VBS) のコード

var tts = WScript.CreateObject("SAPI.SpVoice");
tts.Speak("Hello world! おはよう! Konnichiwa!");

の場合は,以下のよに Delphi のコードにすることができます.

procedure TForm1.Button1Click(Sender: TObject);
var
  tts : OleVariant;
begin
  tts := CreateOleObject('SAPI.SpVoice');
  tts.Speak('Hello world! おはよう! Konnichiwa!');
end;

ここで,SAPI は DLL または タイプライブラリのファイル名です.
SpVoice は実装されているクラス名です.
Speak はそのクラスで実装されているメソッドです.
VBA で SpeechLib となっているのは,Delphi でタイプライブラリの取り込みを
行うと SpeechLib_TLB となります.


[11478] Re:COMとCreateOleObject返信 削除
2017/10/18 (水) 10:48:18 Mr.XRAY
> にある VBScript (VBS) のコード

実務である機能を実現するのに Windows API に該当する機能が
ないか,あるいは見つけるの困難な場合,VBS のコードがネット
上に掲載されていることがあります.
あるいは,WMI に該当する機能が見つかる時があります.

そんな時は素直に利用すると便利です.
とにかく実務では「その機能」を実現することが優先ですから.
格好つけることはありません.

VBS のコードは,VBS 特有の機能を使用していると
Delphi のコードに変換するのが困難なとことがあります.
そんな時も素直に VBS のコードをそのまま利用する手もあります.

[950_Delphi で VBScript を操作]
http://mrxray.on.coocan.jp/Delphi/plSamples/950_VBScript.htm


[11481] Re2:COMとCreateOleObject返信 削除
2017/10/19 (木) 11:54:24 Harry
某掲示板でマスターが発言してたときから気になっていたのですが…。

> にある VBScript (VBS) のコード
>
> var tts = WScript.CreateObject("SAPI.SpVoice");
> tts.Speak("Hello world! おはよう! Konnichiwa!");


当該のコードは Javascript (JS) 、正確には WSH上のJScriptかと、、、。

本筋を考えると些細なことですし、実際重宝する情報はVBSのコードが多いですよね。
でも重箱の隅を突つきまくる私としましては、言わずにはいられなかった!


[11482] Re3:COMとCreateOleObject返信 削除
2017/10/19 (木) 12:17:52 Mr.XRAY
▼ Harryさん.どうも

> 当該のコードは Javascript (JS) 、正確には WSH上のJScriptかと、、、。

ありりっ,そうですよね.
サイトの記事では WSH でも使われていますなんて書いておいて...
該当記事は後で修正しておきます.
ご指摘ありがとうございます.

> 本筋を考えると些細なことですし、実際重宝する情報はVBSのコードが多いですよね。

ですけど,記事を見て検索するときにはヒットする内容が違ってくるかも.


[11483] Re4:COMとCreateOleObject返信 削除
2017/10/19 (木) 13:29:26 Mr.XRAY
> > 本筋を考えると些細なことですし、実際重宝する情報はVBSのコードが多いですよね。
>
> ですけど,記事を見て検索するときにはヒットする内容が違ってくるかも.


それとですね.
Delphi で WSH (JScript) のコードを実行する場合と,VBS のコードを実行する場合とでは
少し違います.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82