コミュニティでの活動の履歴として、自身(Orator/魔界の仮面弁士)が掲示板・Mailing List・Newsgroup等へ発言した内容の中で、再利用できそうな物を拾い出して、掲載しています。

« 2008年10月 | Main | 2009年07月 »
[VB6]漢数字ゼロをクリアできない…? / 2009年01月30日(金)
Private Sub Form_Load()
    Label1.Caption = "〇"
End Sub

Private Sub Command1_Click()
    Label1.Caption = ""
    MsgBox Label1.Caption    ’本来は空文字になるはず…。
End Sub
VB6/SP6 にて上記のコードを実行したところ、ラベルがクリアされないという不具合が発生する可能性があります。原因不明。
この現象は、漢数字ゼロ「〇」の時には再現しますが、一度、別の文字列を割り当ててからクリアする分には正常動作します。google で探すと、同様の現象を確認している人が他にもいるようなので、当方だけの問題では無さそうです。
手元の環境で確認したところ、以下のような状況でした。OS 依存なのかどうかはまだ分かりませんけれども。

《ラベルがクリアされず、〇が表示される環境》
  • Windows XP Professional(x86) Service Pack 3
《正常にラベルがクリアされる環境》
  • Windows Vista Business (x64) Service Pack 1

 
Posted at 03:42 / Visual Basic / この記事のURL
コメント(0)
[VB6]IE7の履歴を削除 / 2009年01月09日(金)

インターネット キャッシュを削除します。IE7以降が対象です。


Option Explicit

Private Enum TargetHistory
    CLEAR_ALL = &HFF&
    CLEAR_ALL_WITH_ADDONS = &H10FF&
    CLEAR_HISTORY = &H1&
    CLEAR_COOKIES = &H2&
    CLEAR_TEMPORARY_INTERNET_FILES = &H8&
    CLEAR_FORM_DATA = &H10&
    CLEAR_PASSWORDS = &H20&
End Enum

Private Declare Function ClearMyTracksByProcessW Lib "InetCpl.cpl" _
   (ByVal hwnd As OLE_HANDLE, _
    ByVal hinst As OLE_HANDLE, _
    ByRef lpszCmdLine As Byte, _
    ByVal nCmdShow As VbAppWinStyle) As Long

Private Sub Command1_Click()
    Dim b() As Byte
    Dim o As OptionButton
    For Each o In Option1
        If o.Value Then
            b = o.Tag
            ClearMyTracksByProcessW Me.hwnd, App.hInstance, b(0), vbNormalFocus
            Exit For
        End If
    Next
End Sub

Private Sub Form_Load()
    Command1.Caption = "削除"

    Option1(0).Caption = "インターネット一時ファイル"
    Option1(0).Tag = CStr(CLEAR_TEMPORARY_INTERNET_FILES)

    Option1(1).Caption = "Cookie"
    Option1(1).Tag = CStr(CLEAR_COOKIES)

    Option1(2).Caption = "履歴"
    Option1(2).Tag = CStr(CLEAR_HISTORY)

    Option1(3).Caption = "フォーム データ"
    Option1(3).Tag = CStr(CLEAR_HISTORY)

    Option1(4).Caption = "パスワード"
    Option1(4).Tag = CStr(CLEAR_PASSWORDS)

    Option1(5).Caption = "すべて削除"
    Option1(5).Tag = CStr(CLEAR_ALL)

    Option1(2).Value = True
End Sub

 
Posted at 02:22 / Visual Basic / この記事のURL
コメント(0)
P R

Microsoft Most Valuable Professional, Visual Developer - Visual BasicMSMVP for Visual Basic


Global Media Online INC.