そこで私は最近、Twitter、Xbox、YouTube などのさまざまな Web サイトにログインし、「ユーザー名」がいつ解放されるかをチェックするスクリプトを作成しました。これらのソーシャル ネットワーキング サービスのほとんどは、長い間、非アクティブなアカウントを削除し、これらのアカウントを要求できるようにしています。したがって、ユーザー名「John391」を持つユーザーは、非アクティブである限りユーザー名「John」を取得でき、ネットワークはそれを解放します。したがって、私のスクリプトはこれらの Web サイトにログインし、必要なユーザー名をテキスト ボックスに入力して [送信] をクリックできるようにします。プログラムは、それが利用可能になったときにそれを要求しようと常に試みます。しかし、テキストボックスを使用する代わりに、リスト付きのメモ帳を使用したいので、次のようにします。
John
Achilles
Richard
Logan
John を要求しようとした後 (John がまだ利用できない場合)、Achilles などに移動します。これまでのスクリプトは次のとおりです。タイマーと、ほとんどの作業を行うボタンがあります。タイマーは、テキストボックスの値を何度も何度もチェックするために使用されるものであり、ボタンはプロセスを開始するだけです。また、これを最初にやり始めたとき、プログラムがタイムアウトし続け、それを修正する唯一の方法は、要求を一時停止してページを更新することであることがわかりましたが、これで問題ありません。とにかく、私のスクリプトを説明しましょう:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Not number_of_ticks > NumericUpDown1.Value Then
number_of_ticks += 1
If ((WebBrowser1.IsBusy)) Then
Else
If WebBrowser1.Url.ToString = "https://live.xbox.com/en-US/ChangeGamertag" Then
WebBrowser1.Document.GetElementById("NewGamertag").SetAttribute("value", txtTurbo.Text)
WebBrowser1.Document.GetElementById("claimIt").InvokeMember("Click")
Else
WebBrowser1.Navigate("https://live.xbox.com/en-US/ChangeGamertag")
End If
End If
Else
'number_of_ticks has exceed the maximum amount of allowed ticks
Timer1.Enabled = False
WebBrowser1.Refresh()
number_of_ticks = 0
Timer1.Enabled = True
End If
End Sub
これがタイマーであることがわかるように、number_of_ticks をチェックして、ページをいつ更新する必要があるかを判断します。これは、プログラムを使用する人によっても設定されます。通常は 250 であるため、250 になるまで要求を試みてから更新します。ページがロードされていないときに要求しようとすると、プログラムが応答しなくなることに気付いたので、それを修正するために if ステートメントをいくつか挿入しました。もちろん、ボタンにはタイマーを有効にするコマンドと、その他のマイナーな機能があります。
今、私がやろうとしているのは、Textbox txtTurbo を使用して何度も主張されているものを許可する代わりに、メモ帳に主張するもののリストを持たせたいということです。したがって、これの値が何らかの形で変更されることを理解しています:
WebBrowser1.Document.GetElementById("NewGamertag").SetAttribute("value", txtTurbo.Text)
また、メモ帳/txt ファイルをストリーミングして、どのファイルを要求するかを読み取り、要求ごとにメモ帳/txt ファイルの次の行に変更する必要があります。しかし、私はテキスト ファイルからの読み取りの経験がなく、約 1 か月前までそれが可能であることを知りませんでした。誰かが私を正しい方向に導くことができるかどうか疑問に思っていましたか?