開発者向け情報

Entersoftが公開しているソフトウェアの技術情報をVisualBasic中級者向けに一部公開しています。
また、VB6からVB.NETへの移行で気づいた点を公開しています。
(※動作保障はしていませんので、サンプルとしてご参照ください)



1. Entersoft Password Managerの自動ログインについて(Ver2.2までの仕様)

Password Managerの自動ログインは、まずIEを起動しDocumentオブジェクトのFormsを取得し、 さらに先頭にあるFormのelements(フォームの内容・コンポーネント)を取得し、テキスト又は、 パスワード入力コンポーネントであった場合にアイテムを先頭から順次設定しています。
したがって、ID・パスワードの入力コンポーネントの前に別のFormやelementがあった場合は 正しく動作しません。そのため、自動ログインの設定にユーザー設定を設けています。

  For j = 0 To lobjIE.Document.Forms.length - 1
      Set lobjForm = lobjIE.Document.Forms(j)
      Do While lobjIE.Busy
          DoEvents
      Loop
      For i = 0 To lobjForm.length - 1
          Set lobjInput = lobjForm.elements(i)
          If lobjInput.Type = "text" Or lobjInput.Type = "password" Then
              lobjForm.elements(i).Value = lstrInputString(lintSetCount)
              lintSetCount = lintSetCount + 1
              If lintSetCount >= lintMaxSetCount Then
                  lobjForm.submit
                  Exit For
              End If
          End If
      Next i
  Next j


参考リンク
  →Windows Scripting Host Laboratory
  →WEB for beginner 作成支援 → JavaScript入門 → オブジェクトリファレンス

2. Visual Basic 2005 Express Editionで作成したソフトの配布

Visual Basic 2005 Express Editionにて作成したソフトはClickOnceにて配布します。
配布ファイルの中にはFrameworkは含まれていませんが、.NET Framework2.0がインストールされていない 環境に対して、インストール時にFrameworkをダウンロードしてインストールしてくれます。
(ランタイム(Framework)を含まないため配布ファイルがVB6よりも軽くなっています)

また、作成したソフトウェアがバージョンアップして再度インストールするときに、 今までのバージョンをアンインストールせずに上書きでインストールが可能で、「コントロールパネル」の 「プログラムの追加と削除」から以前のバージョンに戻すことも可能(DLLも戻る)です。
(Desktop Calendarで悩んだDLLヘルがFinance Viewer では心配がなくなりました。)


参考リンク
  →@IT VB6開発者が待ち望んだVB2005の便利機能 5.アプリケーションの配布

3. HashtableはAddした順番を保持してくれません

HashtableはFor each等で全行取り出してみるとAddした順番で取得できません。
Hashtableと同等の動作で順番を保持したい場合はSystem.Collections.Specialized.NameValueCollectionを 使用するようにしています。(状況によりますが・・)
注意点としてHashtableはkeyがobject型でしたがString型になります。


参考リンク
  →川俣晶の縁側→ソフトウェア→技術雑記

4. ListViewコントロールのソート

ListViewコントロールのカラムヘッダをクリックしてソートする機能はIComparerインターフェースを実装した クラスを定義しソート処理を実装しなければならないようです。


参考リンク
  →MSDN → ListViewItemSorterプロパティ
  →UZ GALAXY → .NET → Info Archive開発 → 10 リストビューのソート
  →DOBON.NET → プログラミング道 → .NET Tips → その他のTips  →コレクションや配列の要素を方法を指定して並び替え(または検索)を行う