VB.NET フォームロード時にフォーカスを設定
フォームロード時に、コントロールへフォーカスを設定する場合、
Me.TextBox1.Focus()
ではうまくいかない。
Me.ActiveControl = Me.TextBox1
だとうまくいくので「ActiveControl」を使用。
カテゴリー : .NETプログラミング
フォームロード時に、コントロールへフォーカスを設定する場合、
Me.TextBox1.Focus()
ではうまくいかない。
Me.ActiveControl = Me.TextBox1
だとうまくいくので「ActiveControl」を使用。
ログ出力等の処理でよく使うのでメモ
「System.Environment」クラスを使用して取得
ログインユーザ名取得
System.Environment.UserName
マシン名取得
System.Environment.MachineName
「My」機能を使用して取得
ログインユーザ名取得
My.User.Name
マシン名取得
My.Computer.Name
「System.Environment」も「My」も同じと思いきやちょっと違った。
「My.User.Name」にはドメイン名が付加され、
「System.Environment.UserName」には付加されない。
例:「abc\admin」でログインしている場合
「My.User.Name」の結果は「abc\admin」
「System.Environment.UserName」の結果は「admin」
.NETのWEBページを表示するWebBrowserコントロールでJavascript無効などスクリプトを実行しない方法
MSDNのフォーラム
WebBrowserコントロール 画像を表示しない
で画像を表示しない方法が紹介されていますが、
これを利用してプロパティを変更することで、スクリプトを実行しないようにできます。
方法
・上記サイトを参考に「Public Class WebBrowserControler」を作成
・以下のように使用
Dim webCtrl As WebBrowserControler
‘WebBrowserコントロールを引数に設定
webCtrl = New WebBrowserControler(WebBrowser1)
’スクリプトを実行しないように設定
webCtrl.DlControl = webCtrl.DlControl Or DLCTL.NO_SCRIPTS
画像の表示非表示やJavascript無効以外にもプロパティを設定することでActiveXコントロールを実行しないようにするなどいろいろ可能のようです。
プロパティを紹介しておきます。
Public Enum DLCTL As Integer
BGSOUNDS = &H40 ‘BGMを再生する
DLIMAGES = &H10 ‘サーバーから画像をダウンロードする
DOWNLOADONLY = &H800 ‘コンポーネントをダウンロードするが表示しない
FORCEOFFLINE = &H10000000 ‘常にオフラインモード
NO_BEHAVIORS = &H8000
NO_CLIENTPULL = &H20000000
NO_DLACTIVEXCTLS = &H400 ‘ActiveXコントロールをダウンロードしない
NO_FRAMEDOWNLOAD = &H1000 ‘フレームをダウンロードしない
NO_JAVA = &H100 ‘JAVAアプレットを実行しない
NO_METACHARSET = &H10000
NO_RUNACTIVEXCTLS = &H200 ‘ActiveXコントロールを実行しない
NO_SCRIPTS = &H80 ‘スクリプトを実行しない
OFFLINE = &H80000000
OFFLINEIFNOTCONNECTED = &H80000000
PRAGMA_NO_CACHE = &H4000
RESYNCHRONIZE = &H2000
SILENT = &H40000000 ‘ダイアログを表示しない
URL_ENCODING_DISABLE_UTF8 = &H20000
URL_ENCODING_ENABLE_UTF8 = &H40000
VIDEOS = &H20 ‘ビデオクリップを再生する
End Enum
デバッグとかでよく使うのでメモ
「System.Reflection.MethodBase」クラスの「Name」プロパティで取得する。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
‘現在のメンバの名前を取得します。
Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod.Name)
End Sub
出力結果
Button1_Click
前回の「DirectShowで動画再生」の続き
もちろん、DirectShowの.NET用ライブラリ「DirectShowLib」を使用しております。
早送りもコマ送りもライブラリを使用することで簡単にできてしまいました。
Private Sub 早送り_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
‘IMediaSeekingインターフェースを使用
Dim mediaSeeking As IMediaSeeking
mediaSeeking = DirectCast(fg, IMediaSeeking)
mediaSeeking.SetRate(2.0) ’2倍速
End Sub
Private Sub コマ送り_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
‘IVideoFrameStepインターフェースを使用
Dim videoFrameStep As IVideoFrameStep
videoFrameStep = DirectCast(fg, IVideoFrameStep)
videoFrameStep.Step(1, Nothing) ’1コマ
End Sub
ライブラリ様様です。
メモ:DirectShow リファレンス
MSDN – IVideoFrameStep インターフェイス
MSDN – IMediaSeeking インターフェイス