長い操作を実行する VB6 アプリがあります。たとえば、データベースへの保存に 1 分以上かかるとします。
この保存が続く間、ウィンドウをロック (無効) し、砂時計カーソルを表示します。
しかし、次のコードはこれを行いません:
Private Sub Update_Click()
Screen.MousePointer = vbHourglass
Me.MousePointer = vbHourglass
Me.Enabled = False
'This takes more than minute:
Update
Me.MousePointer = vbDefault
Screen.MousePointer = vbDefault
Me.Enabled = True
End Sub
つまり、フォームはまだ有効で、砂時計カーソルはありません。フォームで何かをしようとすると、ハングします。
アプリをユーザーフレンドリーにし、ボタンを押した後にアプリが何かを行うことをユーザーに知らせる方法はありますか?
残念ながらVB6しか使えないのでバックグラウンドワーカーは使えません。
注: Win7 コンピューターでは、同じコードがカーソルの砂時計を作成するため、ユーザーはアプリが何かを実行していることがわかります。XP システムでは、アプリがハングするだけで、カーソルには何も起こりません。