- 注册时间
- 2004-8-18
- 最后登录
- 2011-1-29
⑦老手
在美工荒中挣扎的全能
- 积分
- 5260
|
楼主 |
发表于 2006-7-13 09:06:02
|
显示全部楼层
引用第1楼shawind于2006-07-12 19:47发表的“”:
呵呵,好东西啊。
既然有md5校验了,那下面就是网络更新模块。
游戏就可以自己在线更新了。
ps.krkr自己带的那个win32ole.dll是干嘛用的?
调用OLE控件啊…………
因为win32ole和wsh相关的资料集中在源代码里……所以你们那里可能没有……
下面放一个结构说明你就明白了……/**
* 擬似記述マニュアル
*/
/**
* OLE を操作できるオブジェクトを生成します。
* OLE が IDispatch で持つメソッドを直接呼び出すことができます。
*/
class WIN32OLE {
/**
* コンストラクタ
* @param name 識別名 または CLSIDを文字列で指定
*/
function WIN32OLE(name);
/**
* メソッドの実行
* @param name メソッド名
* 以下パラメータ
*/
function invoke(name, ...);
/**
* プロパティの設定
* @param name プロパティ名
* @parma value 設定値
*/
function set(name, value);
/**
* プロパティの取得
* @param name プロパティ名
* @return 設定値
*/
function get(name);
/**
* 定数の取得
* @param obj 指定したオブジェクトのプロパティとして定数を取得します。
* 省略した場合は自分のオブジェクト内部に取得します。
*/
function getConstant(obj=this);
/**
* イベント受信オブジェクトの登録
* @param eventName イベント種別名 (例: "DWebBrowser2Events2" )
* @param receiver イベントをうけるオブジェクト
* オブジェクトが持つイベント名と同じ名前のメソッドが呼び出されます。
* 該当するメソッドが無い場合はなにも処理されません。
*/
function addEvent(eventName, receiver);
};
/**
* ActiveX を操作できるオブジェクトを生成します。
* ActiveX が IDispatch で持つメソッドを直接呼び出すことができます。
*/
class ActiveX extends WIN32OLE {
/**
* コンストラクタ
* @param name 識別名またはCLSID を文字列で指定。※WIN32OLE の指定とは CLSID の書式が違うので注意 CAxWindow::CreateControl の書式
* @param win 指定するとそのウインドウの上に生成します。省略すると独立ウインドウになります。
* @param left 表示座標 ウインドウ指定かつ省略の場合はウインドウのクライアント領域の左上
* @param top 表示座標 ウインドウ指定かつ省略の場合はウインドウのクライアント領域の左上
* @param width 表示サイズ ウインドウ指定かつ省略の場合は親ウインドウのクライアント領域のサイズ
* @param height 表示サイズ ウインドウ指定かつ省略の場合は親ウインドウのクライアント領域のサイズ
*/
function ActiveX(name, win=null, left=0, top=0, width=100, height=100);
/**
* 座標指定
* @param left 左端座標
* @param top 上端座標
*/
function setPos(left, top);
/**
* サイズ指定
* @param width 横幅
* @param height 縦幅
*/
function setSize(width, height);
/**
* 拡張UI指定
* IEコンポーネントでのみ意味を持ちます。現在の版では、これ呼び出すことで
* コンテキストメニューが抑制されます。
*/
function setExternalUI();
/**
* 左端座標
*/
property left;
/**
* 上端座標
*/
property top;
/**
* 横幅
*/
property width;
/**
* 縦幅
*/
property height;
/**
* 表示状態
*/
property visible;
};
这个是使用Win32OLE的例子
Plugins.link("win32ole.dll");
var win = new Window();
win.setInnerSize(420, 440);
win.visible = true;
// IE はりつけ
var ie = new ActiveX("Shell.Explorer.2", win);
// 場所とサイズを指定して表示
ie.setPos(10,10);
ie.setSize(400,200);
ie.visible = true;
// IEコンポーネントは、Asynchronous Pluggable Protocols に対応しているので
// krkr: プロトコル指定で、
// アーカイブ中のファイルも開くことができる
ie.Navigate2("krkr:test.html");
// 外部UIハンドラ登録。空で指定するとコンテキストメニューが消える
//ie.setExternalUI();
// イベントハンドラ用のクラス
class WebEventHandler {
// イベント名に合致するファンクションが呼び出される
function DocumentComplete(disp,url) {
Debug.message("document complete!!");
}
};
// 第一引数がイベントの種別の名前。タイプライブラリに登録されている必要がある。
ie.addEvent("DWebBrowserEvents2", new WebEventHandler());
// MediaPlayerはりつけ
var mp = new ActiveX("MediaPlayer.MediaPlayer.1", win);
mp.setPos(10,220);
mp.setSize(400,200);
mp.visible = true;
mp.AutoStart = true;
//mp.Open("c:test.wma");
// EXCEL 呼び出し
var excel = new WIN32OLE("Excel.Application");
excel.Visible = true;
var workbook = excel.Workbooks.Add();
var worksheet = workbook.Worksheets(1);
worksheet.Range("A1").value = 99;
worksheet.Range("A2").value = 10;
// 定数情報の取得
excel.getConstant();
Debug.message("xlinfo:" + excel.xlInfo); |
|