タイトル | : Re^2: 画面遷移 |
記事No | : 11473 |
投稿日 | : 2015/08/17(Mon) 14:04 |
投稿者 | : 貴将 |
ありがとうございます。 返事が遅くなりすみません。
1番目の案は、いろいろと許可申請等の問題があり保留となり 2番目の案「SPI_GETFOREGROUNDLOCKTIMEOUT」を組込み実行しました。
数回実行したのですが、以前とかわらずダメでした。 1. 元の値を退避しておくで(oldValueの値)を確認したのですが 常に0でした。
下記にソースを記載します。
Imports System.Runtime.InteropServices
Public Class frmD
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoW" _ (ByVal uiAction As UInteger, _ ByVal uiParam As UInteger, _ ByRef pvParam As UInteger, _ ByVal fWinIni As UInteger) As Boolean
Dim oldValue As UInteger
Private Const SPI_GETFOREGROUNDLOCKTIMEOUT As UInteger = &H2000 Private Const SPI_SETFOREGROUNDLOCKTIMEOUT As UInteger = &H2001 : : : : Private Sub frmD_Load(sender As Object, e As EventArgs) Handles Me.Load On Error Resume Next
Me.SuspendLayout() Me.DoubleBuffered = True
'カーソルを砂時計 System.Windows.Forms.Cursor.Current = Cursors.WaitCursor
' 1. 元の値を退避しておく SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0UI, oldValue, 0UI)
' 2. ForegroundLockTimeoutを0に書き換える SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0UI, 0UI, 0UI)
Me.Activate() Me.TopMost = True : : 画面表示処理 : : End Sub
Private Sub frmD_Shown(sender As Object, e As EventArgs) Handles Me.Shown
SplitContainer1.Panel1.VerticalScroll.Value = 0 SplitContainer1.Panel1.HorizontalScroll.Value = 0 SplitContainer1.Panel1.Update()
SplitContainer1.Panel1.VerticalScroll.Value = 0 SplitContainer1.Panel1.HorizontalScroll.Value = 0 SplitContainer1.Panel1.Update()
Me.Activate() Me.TopMost = True Me.TopMost = False ' 3. 元に戻す SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0UI, oldValue, 0UI) 'カーソルをデフォルト System.Windows.Forms.Cursor.Current = Cursors.Default Me.ResumeLayout(False) End Sub : : : :
End Class
以上
|