VBScriptでVectorworks 2016を自動実行できない?(解決済み)

あるお客様が、Vectorworks 2016へのバージョンアップに伴って、当社開発のシステム(Vectorworks 2009で最初のバージョンを提供、Vectorworks 2012へはアップグレード済みのシステム、プラグインを含む)をバージョンアップを依頼してきました。このシステムにはVBScriptによる外部からの自動実行機能が含まれていました。ここに含まれているプラグインをVectorworks 2016に対応させて、システムを動作確認したところ、以前から使っていた開発マシンでは正常に動いたのに、お客様のマシンでは動かない、という現象に悩まされました。

実は別件で、やはり当社開発のシステムのバージョンアップ、こちらはVectorworks 2010からVectorworks 2015へのバージョンアップです。こちらでもVBScriptによる自動実行機能が含まれています。

調査したところ、Vectorworks 2013までのバージョンがインストールされている環境では動いてしまうようですが、Vectorworks 2016だけがインストールされている環境では動かないようでした。

A&Aと米Vectorworks社に問い合わせたところ、Vectorworks.tlbファイルが送られてきました。これでVectorworks 2015, 2016でも正常にシステムが動作しました。ちなみにVectorworks 2014も同様の方法で解決できるはずです。

 

HDMI KVM Switch 16 port

2016年末から2017年始にかけて、設置に苦労したお話です。

サーバラックにMac miniが6台、もう一つのサーバラックにはMac miniが4台、Mac Proが1台あって、ディスプレイは4x1の切替器を使って共有していた。6台のラックにラックマウントの16x1の切替器を購入した。手頃な価格のはCKL製しかなかった。

71bbrv8peel-_sl1200_

購入して入荷してから接続設定までかなりの時間と手間がかかった。上記の写真から、USBタイプのキーボードを接続すれば動くと思ってしまったことが第1の原因。次の商品の説明や別の画像を見ると...

  • Windows、Linux、MacOS9 、 OSX、Sun Microシステムをサポートします。LEDディスプレイを使用して、パソコン及び服务器状態を監視することが応用できます
  • キーボード上のボタンとホットキーについての二つの切り替えモードを支持することができます。外部電源アダプタを連続してパワーをします
  • 1台コンソール(PS/2キーボード/マウス)から8台コンピュータをコントロールします。USB1.1/2.0仕様に完全アコードします
  • パソコンを消さなくて、全てKVMのデバイスを連続して、いつでも追加したり削除することができます
  • 1920×1440@ 60HzまでのVGA解像度をサポートします。切り替えを起動する時にブザーを支持します

71b6opjqmhl-_sl1100_

写真の「入力」というところ、確かにPS2端子を差している。この隣にあるUSBポートはメモリースティック装着用か。

結論からすると、次の3つの項目についてチェックする必要があった。

□ キーボードとマウスはUSBではなくPS2タイプを使う
1つ目の写真には、USBタイプのキーボードとマウスが写っているが、実際にはUSBタイプは動作しなかった。USB端子への供給電力が不足しているためかもしれない。

□ Mac miniでディスプレイをスリープする設定になっていた
スリープしているMac miniに切り替えたとき、本体からのディスプレイ信号がないため、切替器もスリープしてしまう。切替器の電源を入れ直すとMac miniを認識する。

□ HDMIケーブルにハイビジョン専用のが混ざっていた
Panasonic製1380円のがNGだった。ちなみにこのケーブルはApple TVとは接続できている。

20170101

 

4D スタックサイズ

4D v15.2 Windows版で、次のようなメッセージが表示されました。
Mac版、winのビルド版では発生しません。

Not enough stack space to complete the current method.

ちなみにこのメソッドは実行されました。

下記回答を受けて、New Processの使い方を次のように変更

ありがとうございました。
New Processに128KBを与えていました。
$main_proc:=New process(“A00_main”;128*1024;”A00_main”;*)

次のように変更したら問題は発生しなくなりました。
$main_proc:=New process(“A00_main”;1024*1024;”A00_main”;*)

────────────── 回 答 ─────────────────

Not enough stack space to complete the current method メッセージが表示される理由は

1)New processコマンドの第2パラメーターが小さい
2)Execute on serverコマンドの第2パラメーターが小さい
3)プラグインが古い

などが考えられます。インタープリターとコンパイルおよびビルド版で状況が違う理由として考えられるのは、パラメータ並びにローカル変数の変数定義(型宣言)がされていないことが考えられます。

項目1と2についてですが、第2パラメータの推奨値は、下記のように変化しています。

4D v11:64KB
4D v12:128KB
4D v13以降:512KB

これは今のところドキュメント化されていいあに仕様ですが、4D v13以降は前述コマンドの第2パラメータに0を渡すと、そのバージョンの推奨値を少し上回る値がセットされます。

上記につきまして、当該データベースをご確認くださいますようお願い申し上げます。

────────────────────────────────────

4D Serverが使うポート

4D Serverとポート番号

4D Serverは3つのTCPポートを使用して内部サーバとクライアントの通信を行います:

・SQLサーバ: デフォルトで19812 (環境設定の”SQL/設定”ページで変更可)。

・アプリケーションサーバ: デフォルトで19813 (“クライアント-サーバ/設定”ページで変更可)。

・DB4Dサーバ(データベースサーバ): デフォルトで19814。このポート番号を直接は変更できません。常にアプリケーションサーバのポート番号+1です。

詳しくはここ:
http://www.4d.com/docs/CMJ/CMJ40960.HTM

ThinkPad T410 HDD換装

業務用のThinkPad T410の調子が良くない
起動の度にドライバの読み込みに失敗したり、エクスプローラがハングアップしたり。
リカバリCDから初期化を試みましたが改善しません。

システムチェックをしたら、HDDの項目が要注意表示。
SMART情報のC5(代替処理保留)の値が大きくなっています。
不良セクタが発生したときにカウントアップされる値なので、HDDの物理エラーの可能性が高い。
そこでHDDを換装することにしました。

ThinkPadのHDDは、一般的なラップトップと違ってたいてい取り出しやすい位置についています。
T410の場合は、筐体右側からネジ1本を外すだけで取り出せました。

2.5インチ、9mm、SATAのHDDを家電量販店で購入。
交換してリカバリCDから初期化。

作業終了、再起動して、一見快適に動作するようになりましたが、ここからが問題でした。

初期化後のおやくそくとしてWindowsUpdateをしようとしたら、、、
001

サービスが動いていない??何故???

とりあえずサービスを開始するために、コントロールパネルの管理ツールからサービスを選択。
しかしWindows Updateのサービスは自動実行になっていて、ステータス表示も開始になっています。
停止して再度開始しても状況は変わらず。

調べたところ、WindowsDefenderが動いていないのが原因かもしれないという情報に行き当たり、そちらを確認。
確かに動いていないようなので、開始をクリックします。
002

開始できず。
さらに調べると、セキュリティソフトが悪さをしているかもとの情報。
しかし初期化時にプリインストールのNorthonを削除しているため、何も入っていないはず。

もう一度初期化を実行して、同じ状態にしばらく途方にくれ、さらに調べると、こんな情報がでてきました。
非AFTからAFTのHDDに交換したらWindows Updateができなくなった
もしやと思いHDDの型番を調べると、確かに交換前のseagateHDDは非AFT、交換した東芝HDDはAFTでした。
Windows7はSP1以降でAFTに対応しているので、アップデートをすれば問題ない→そのアップデートプログラムが動作しないではどうしようもない。
インテルのIntel Rapid Storage Technologyドライバというのを入れれば良いということで、サイトからダウンロードしますが、インストールには.NET Framework 4.~のランタイムが必要とのアラート。
.NET Framework 4のランタイムを入れようとするとWindows Updateのアラート。
Intel Rapid Storage Technologyドライバの古いバージョンをダウンロードしてインストール成功。
再起動すると、Windows Updateのサービスが起動し、問題なくアップデートできました。

 

4D リストボックスの任意のセルに色を付ける

リストボックス : 文字に色を付ける方法

行全体が同じ色でいいなら、プロパティで「行フォントカラー配列」に、たとえば名前が「vCH01_lstCH_FontColors」のようなlongintの配列を用意して、プロパティに指定します。同様に背景色も行単位で指定することができます。

listbox_properties

それでは、この行のこの列だけ赤色で表示したい、場合はどうすればいいのでしょうか。次です。

1.リストボックスのオブジェクトプロパティで「マルチスタイル」をチェック

listbox_column_properties

2.表示列は文字列で宣言

ARRAY TEXT(vCH01_lstCH_DATEstr;0)

3.次のソースを追加

// 20160321 wat 会社は赤色で表示

C_POINTER($pColumn3)

$pColumn3:=OBJECT Get pointer(Object named;”vCH01_lstCH_DATEstr”)

C_LONGINT($sizeOfAry;$i)

$sizeOfAry:=Size of array(vCH01_lstCH_DATEstr)

For ($i;1;$sizeOfAry)

If (vCH01_lstCH_KUBUN{$i}=”会社”)

$pColumn3->{$i}:=”“+String(vCH01_lstCH_DATE{$i})+”

Else

$pColumn3->{$i}:=”“+String(vCH01_lstCH_DATE{$i})+”

End if

このように、リストボックスの列にマルチスタイルに指定すると、セルごとに異なるHTMLタグを指定/表示できるようになります。

listbox_color

例では、vCH01_lstCH_DATEstrの列を表示して、日付型であるvCH01_lstCH_DATE列は非表示にしています。

元のサンプルは4D社からv13のソースを入手、v15でも動作確認済みです。

WORDPRESSにTWITTERタイムラインを表示する

・twitterにログイン

・設定画面を表示

 右上のプロフィールアイコンをクリックして[設定]を選択

・ウィジェット画面を表示

 左メニューから[ウィジェット]を選択

 新規にウィジェットを作成する場合は、[新規作成]ボタンをクリック

 今回は、デフォルトで用意されたツイートウィジェットを選択する

 「治郎吉商店 (@JIROKICHI__)さんがツイート」列の右側にある[編集]ボタンをクリック

・ソースコードをコピーする

 左側の[設定]メニューで、見た目や、表示対象を変更できる

 変更したら、[変更を保存]ボタンをクリック

 右側の[プレビュー]下部にあるテキストエリアから、ソースコードを全選択してコピー

・Wordpressにログイン

・ウィジェットを追加する

 管理メニューの[外観]から[ウィジェット]を選択

 [利用できるウィジェット]から[テキスト]を選択

 表示したいエリアを選択して[ウィジェットを追加]ボタンをクリック

 タイトルを入力、本文にコピーしておいたソースコードをペーストして[保存]ボタンをクリック