VBAを使ってモデムの再起動を自動でやる方法

このQ&Aのポイント
  • VBAを使ってモデムの再起動を自動化に挑戦しているが、Javascriptの別窓で苦戦している。
  • 再起動ページにアクセスし、ログイン画面を表示してから再起動ボタンをクリックするが、再起動していいか?ボックスが表示されOKをクリックしないと再起動してくれない。
  • 別窓をアクティブにするための処理を試しているが、うまく動作しない。
回答を見る
  • ベストアンサー

VBAを使ってモデムの再起動を自動でやる方法

VBAを使ってモデムの再起動を自動化に挑戦しているのですが、Javascriptの別窓で苦戦しています (ノ◇≦。) (1)再起動ページにアクセス (2)ログイン画面表示 (3)再起動ボタンクリック (4)再起動していいか?ボックスが表示されOKをクリック←ココでつまずいています!! (5)再起動される 流れなのですが、(3)の再起動ボタンをクリックすると、javaascriptで別窓が表示され、OKボタンを押さないと 再起動してくれません。 ↓これをクリックすると <input type='submit' name='UPDATE_BUTTON' id='UPDATE_BUTTON' value='再起動' /> ↓こいつが処理されてうまくいかない。 /* イベントの設定 */ function Init_Event() { gId('reboot_main').onsubmit = function(){ var confmsg = '再起動を行います。\nよろしいですか?\n<ご注意>通話中に再起動を行うと通話が切断されます。'; if (false == reboot_enable_check()) { return false; } if( true == confirm(confmsg) ){ SubmitGuard(); return true; } return false; } } 別窓をアクティブにしようと下記の処理をおこなったのですが、反応しません。 タイトルもツールからコピーしたので間違っていないのですが・・・・ 分かる方いらっしゃいましたらご教授ください>< AppActivate "Web ページからのメッセージ", False SendKeys "{ENTER}" ■モデム PR-S300NEファームウェアバージョン 17.37

質問者が選んだベストアンサー

  • ベストアンサー
  • kumatti1
  • ベストアンサー率60% (73/121)
回答No.3

APIを使う方法もありますね。

参考URL:
https://gist.github.com/kumatti1/4028479

その他の回答 (2)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

if (false == reboot_enable_check()) { と if( true == confirm(confmsg) ){ は必要なの?

malonchan256
質問者

補足

ソースを確認するとそういう仕様になっていました(汗) 直接SubmitGuard();を実行させてもやはり確認画面がでてしまい、 その先に進めません><

関連するQ&A

  • クライアントマシンからルーターの自動制御を行う(Java Script操作)

    初心者です。 無線ルーター(Webcaster110)につながっているクライアントマシンから定期的にルーターへ命令を送り、ルーターを再起動させたいと思っています。 ブラウザで192.168.1.1でルーターにアクセスし、解析したところ、再起動ボタンをクリックする実態は以下になります。 <INPUT TYPE="button" NAME="reboot_only" VALUE="再起動" ONCLICK="reboot_kind(this,'0','1')"> なお、このreboot_kind(this,'0','1')の実態は /scripts/st_mainte.js に記述されており、該当箇所は function reboot_kind(field, dis_flg, lev) { var form = field.form; var ret = true; ret = Disabled_Action(dis_flg, field.name); if (ret != true) return; switch (lev) { case "st_pro": if (form.st_pro.disabled != false) { alert("「確認」ボタンをクリックしてから「送信」ボタンをクリックしてください。\n\n※設定した値が不正な値の場合、エラーメッセージが表示されます。"); form.BUTTON_FLAG.value = "0"; return false; } form.action = "/cgi-bin/st_reboot.cgi"; form.target = "_top"; form.CGI_OK_PATH.value="/reboot_update1.html"; form.REBOOT_LEVEL.value = "0"; form.BUTTON_FLAG.value = "1"; form.submit(); return true; case "0": ret = confirm ("設定したデータを本商品へ設定し、再起動を行います。\nよろしいですか?\n\n※再起動のあと、設定したデータが反映されます。"); break; case "1": ret = confirm ("本商品の再起動を行います。\nよろしいですか?\n\n※設定したデータは反映されません。"); break; case "2": ret = confirm ("本商品を初期設定へ戻し、再起動を行います。\nよろしいですか?\n\n※お客様が設定したデータはすべて失われます。"); break; case "3": ret = confirm ("本商品をシャットダウンして電源を切れる状態にします。\nよろしいですか?\n\n※電源投入時、設定したデータが反映されます。"); if (ret == true) { form.CGI_OK_PATH.value = "/reboot_shutdown.html"; } break; case "4": ret = confirm ("本商品をシャットダウンして電源を切れる状態にします。\nよろしいですか?\n\n※設定したデータは反映されません。"); if (ret == true) { form.CGI_OK_PATH.value = "/reboot_shutdown.html"; } break; } if (ret != true) { form.BUTTON_FLAG.value = "0"; if (dis_flg != "0") { field.disabled = false; } return false; } form.REBOOT_LEVEL.value = lev; form.submit(); return true; } function st_backupconf() { var ret; var form; var button; ret = false; button = '9'; document.st_backupconf_exec.BUTTON_EXEC.disabled = true; if(1 == document.st_backupconf_exec.BUTTON_FLAG.value){ alert("実行中です。"); document.st_backupconf_exec.BUTTON_EXEC.disabled = false; return false; } document.st_backupconf_exec.BUTTON_FLAG.value = "1"; button = Get_radio_checkedvalue(document.st_backupconf_form.ACTION_SEL); switch(button){ case '0': form = document.st_backupconf_save; form.ACTION_KIND.value = "0"; ret = confirm("設定データの保存を行います\n\n\n" + "※設定データを復元する際、現在設定中のWeb設定ログインパスワードを入力する必要があります\n" + "※現在の設定を本商品に反映したあとに保存することを推奨します"); break; case '1': form = document.st_backupconf_restore; ret = Null_NG(form.PASSWORD); if (ret != true) break; if(form.PASSWORD.value != ""){ ret = CheckID(form.PASSWORD); if (ret != true) break; } ret = Null_NG(form.UPLOAD_FILE); if (ret != true) break; ret = CheckFilePath(form.UPLOAD_FILE); if(false == ret) break; form.ACTION_KIND.value = "1"; ret = true; break; default: ret = false; break; } if (ret == true) { form.submit(); }else{ document.st_backupconf_exec.BUTTON_FLAG.value = "0"; document.st_backupconf_exec.BUTTON_EXEC.disabled = false; } return ret; } となっています。 Perlで書いたスクリプトをリモートマシンのCrontabで毎日走らせて実現できないかと考えています。どこからはじめればよいかご教授いただけると幸いです。

  • actionscript3.0でボタン操作無効化

    flashのHPを作っております。 (mc)ボタンを配置しクリックすると画面の背景が変わる操作をしたいと思っており(top、new、main・・・など) 下記のHPのような http://www.mediacreator.jp/tutorials/show_tutorial.asp?id=69&pn=3 操作ボタンを作っております。 上記HPは2.0で製作されているため、3.0に改変し、 アクションを下のようにしました。 var buttonNames= new Array("button1", "button2", "button3", "button4"); button1.buttonMode = true; button2.buttonMode = true; button3.buttonMode = true; button4.buttonMode = true; button1.addEventListener(MouseEvent.CLICK, button1click); button2.addEventListener(MouseEvent.CLICK, button2click); button3.addEventListener(MouseEvent.CLICK, button3click); button4.addEventListener(MouseEvent.CLICK, button4click); function resetButton(buttonName){ for(var i = 0; i < buttonNames.length; i++){ if(buttonNames[i] != buttonName){ this[buttonNames[i]].gotoAndStop(1); this[buttonNames[i]].enabled = true; } } } function button1click(event:MouseEvent):void { resetButton(button1); this.gotoAndStop(2); this.enabled = false; } function button2click(event:MouseEvent):void { resetButton(button2); this.gotoAndStop(2); this.enabled = false; } function button3click(event:MouseEvent):void { resetButton(button3); this.gotoAndStop(2); this.enabled = false; } function button4click(event:MouseEvent):void { resetButton(button4); this.gotoAndStop(2); this.enabled = false; } コンパイルエラーは無くなったのですが、ボタン自体が動いてくれません。 どこが間違っているか分かる方、お教え下さい!

  • キーボードショートカットでthickboxなどを起動したいのですが・・・・

    よろしくお願いいたします。 Webアプリのデザインを作成中なのですが、 javascriptでキーボードのショートカットキーを押してログイン画面を出したいと思い、できれば特定のキーを押したときにthickboxやlightboxでHTMLを表示できないかなと思っているのですが可能でしょうか? 以下のソースで一応Fキーを押すとリンクだけはできるのですが、 thickboxを定義するとなるとclassnameをどのように定義すればよいのでしょうか。 あまりJSの知識がないので、ご助力いただければ幸いです。 どうぞよろしくお願いいたします。 function shouldIgnoreInput(e) { var el = e.target || e.srcElement return el && el.tagName && (el.tagName.toUpperCase() == "INPUT" || el.tagName.toUpperCase() == "SELECT" || el.tagName.toUpperCase() == "TEXTAREA"); } function hotkey(e) { var nav4 = window.Event ? true : false; if(shouldIgnoreInput(e)) { return true; } if ((typeof e.ctrlKey != 'undefined') ? e.ctrlKey : e.modifiers & Event.CONTROL_MASK > 0) { return true; } if ((typeof e.altKey != 'undefined') ? e.altKey : e.modifiers & Event.ALT_MASK > 0) { return true; } if ((typeof e.metaKey != 'undefined') && e.metaKey) { return true; } else if((typeof Event != 'undefined') && (e.modifiers & Event.META_MASK > 0)) { return true; } if (nav4) var whichCode = e.which else if (e.type == "keypress") var whichCode = e.keyCode else var whichCode = e.button; if( whichCode == 114) { cancelEvent(e); window.location.reload(); return false; } else if( whichCode == 102 ) { cancelEvent(e); url = "login.html"; window.location.href = url; return false; } return true; } function cancelEvent(event) { if (event.preventDefault) { event.preventDefault(); event.stopPropagation(); } else { event.returnValue = false; } }

  • 動画上での右クリック禁止について

    右クリックを禁止するJavaScriptを外部ファイルに 書いて、動画のプロパティなどが見づらいように したいと思っているのですが、うまくいきません。 oncontextmenuを無効にする形で、 HTMLや画像の上では、右クリックを無効にできたのですが、埋め込んだWindowsMediaplayerの動画の上で 右クリックをすると、普通にcontextmenuが出てきて しまいます。 どのようにしたら、動画ファイル上での右クリックを禁止にすることができるでしょうか? どなたか教えてください。よろしくお願いします。 外部JSファイルに書いた内容は、下記のとおりです。 function DisableOnContextMenu(ev) { return false; } function DisableContextMenu(ev) { if (ev) { if (ev.button && ev.button == 2) { // W3C DOM2 return false; } else if (!ev.button && ev.which == 3) { // N4 return false; } else if (navigator.platform.indexOf("Mac")!=-1 && navigator.appName == "Netscape") { return false; } } else { if (event && event.button && event.button == 2) { // IE return false; } } } if (navigator.appName == "Netscape" && !(navigator.platform.indexOf("Mac")!=-1)) { document.captureEvents(Event.MOUSEDOWN); } document.onmousedown=DisableContextMenu; document.oncontextmenu=DisableOnContextMenu;

  • greasemonkeyで通知を自動クリックしたい

    http://www.pinterest.com/ こちらのサイトを開いていた際にフォローしている方が新しいピンを追加するとヘッダーに通知ボタンが表示される仕組みになっております。Twitterのサイトでいうところの「N件の新しいツイート」と同じ機能です。 この通知ボタンが表示されたらスクリプトで自動クリックしたいと考えています。 開発ツールでクリックする要素(class)を探し、 <div class="Module NewPinsIndicator" style="display: block;">2 新しいピン<em class="arrows"></em></div> greasemonkey(正確にはgoogle chromeでTampermonkeyを使用してます)で function click(target) { var event = document.createEvent("MouseEvents"); event.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); target.dispatchEvent(event); } function main(){ var newpin =document.getElementsByClassName('Module NewPinsIndicator'); if(newpin) click(newpin); setTimeout( function() { main(); }, 5000); } main(); このようなスクリプトにしたのですが知識不足のため、このサイトでは動作しませんでした。 Pinterestの新着通知を自動でクリックする方法をよろしければスクリプト込みでご教授いただけないでしょうか。 よろしくお願いいたします。

  • ムービークリップのボタンの無効化について

    お世話になっております。 actionscript3でFLASHサイトを製作しております。 マウスオーバー、マウスアウト、マウスクリックのイベント機能を付与したムービークリップ型のボタンがあり、ボタンモードを有効にしています。 button.buttonMode = true; マウスオーバーの際はムービークリップの指定のフレームからアニメーション処理を行っています。 button.addEventListener(MouseEvent.MOUSE_OVER, btnOver); function btnOver(event:MouseEvent):void { button.gotoAndPlay(2); } このボタンを、あるイベントが実行された時にボタンとしての機能をなくし、尚且つマウスオーバー、マウスアウトのアニメーション処理も無効化したいと思い、以下の処理を行いました。 ボタンモードは無効になりましたが、マウスオーバー、マウスアウト、クリック処理は無効にならず、動作してしまいます。 button.buttonMode = false; button.mouseEnabled = false; button.enabled = false; 上記の方法とは別にイベント処理を削除しようと思い、removeEventListener処理を行いましたが、「TypeError: Error #2007: パラメータ listener は null 以外でなければなりません。」というエラーが表示されてしまいました。 指定の仕方が間違っているのだと思いますが、何方かご教授いただけないでしょうか? また、上記の方法以外で無効化する手段があればご教授いただければと思います。 宜しくお願いいたします。

  • onClickで関数呼出し後に、結果に応じてsubmitを実行する方法

    JavaScriptで、 function func() {  if (a==0) {   alert("処理しない");   return false;  }  return true; } と、a=0ならfalseを返し、それ以外ならtrueを返す関数を定義しています。 そして、FORMタグで <FORM NAME="FormName" ACTION="next.html"> <INPUT TYPE="button" VALUE="next" NAME="button1" onClick="return func();submit();"> </FORM> と記述しています。 要は、ボタンを押下した際にfunc関数がtrueを返せば、next.htmlに 遷移させたいのですが、上記記述では、遷移しません・・・ onClick部分にonClick="return func(),submit();"と記述した場合、 func関数の実行結果がtrueでもfalseでも遷移してしまいます。 そこで、なんとなくonClick="return func()&&submit();"と記述してみたところ、 func関数がtrueの時のみうまく遷移するようになりました。 これは偶然そう動作しているのでしょうか、それとも上記は正しい記述方法なのでしょうか? 正しい記述方法ならいいのですが、上記以外に正式な記述方法があれば 教えていただけないでしょうか? ※TYPE="submit"にすればいいとは思うのですが、buttonで実現したいと 考えております。

  • なぜ、clickイベントが起こってしまうのか? 回避するにはどのように

    なぜ、clickイベントが起こってしまうのか? 回避するにはどのようにしたら? お世話になります。 Visual Studio 2008 C#での開発です。 以下のような簡単なコードでの実験なのですが、 フォームには radioボタン2個とボタンが配置されています。 やりたいことは  1.button1がクリックされたらbutton1自身を使用不可にする  2.radioButton1がクリックされたらbutton1を再度使用可にする です。 しかし、どうもbutton1のクリックイベントの途中でradioButton1の クリックイベントが発生してしまい、思ったような動作になりません。 どのようにしたらbutton1のクリックイベントの途中のradioButton1の クリックイベントの発生を止めることができるのでしょうか? よろしくお願いします。 namespace WindowsFormsApplicationTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Console.WriteLine("1:button1がクリックされました"); Console.WriteLine("2:button1のenabled=" + button1.Enabled); button1.Enabled = false; Console.WriteLine("6:button1のenabled=" + button1.Enabled); } private void radioButton1_Click(object sender, EventArgs e) { Console.WriteLine("3:radioButton1がクリックされました"); Console.WriteLine("4:button1のenabled=" + button1.Enabled); button1.Enabled = true; Console.WriteLine("5:button1のenabled=" + button1.Enabled); } } } 上のコードでの実験結果 1:button1がクリックされました 2:button1のenabled=True 3:radioButton1がクリックされました 4:button1のenabled=False 5:button1のenabled=True 6:button1のenabled=True

  • javascriptにフェードインを追加したい。

    下記のjavascriptに、フェードイン効果を追加するにはどうすればいいでしょうか? 現在は、クリックで、テキストが切り替わる仕様になっているんですが、これにフェードイン、フェードアウトの機能を付け加えたいです。 また、切り替わった際に下記のようにCSSの.actveをclass=""に追加させたいのですが、 どうすれば可能でしょうか? 目的は、アクティブになったボタンの背景を変更したい為です。 <div class="button actve"><a href="#" onclick="checkd1();return ChDsp2('text1','textALL');">ボタン1</a></div> 【javascript】 function ChDsp2(strShow,classHidden){ var tags=document.getElementsByTagName("div"); for(var i=0;i<tags.length;i++){ if(tags[i].className.match('textALL')){ tags[i].className=tags[i].className.replace(/hide/,"").replace(/^\s+|\s+$/,""); if(tags[i]!=document.getElementById(strShow)) tags[i].className+=' hide'; } } return false; } function checkd1(){ document.FORM.CHECK1.checked=true document.FORM.CHECK2.checked=false document.FORM.CHECK3.checked=false } function checkd2(){ document.FORM.CHECK1.checked=false document.FORM.CHECK2.checked=true document.FORM.CHECK3.checked=false } function checkd3(){ document.FORM.CHECK1.checked=false document.FORM.CHECK2.checked=false document.FORM.CHECK3.checked=true } function change(c) { var f = c.checked, btn = c.form.elements['btn1']; btn.disabled = f?false:true; f = f?'sozai/button_2.jpg':'sozai/button_1.jpg'; btn.style.backgroundImage = 'url(' + f + ')'; } 【HTML】 <div class="button"><a href="#" onclick="checkd1();return ChDsp2('text1','textALL');">ボタン1</a></div> <div class="button"><a href="#" onclick="checkd2();return ChDsp2('text2','textALL');">ボタン2</a></div> <div class="button"><a href="#" onclick="checkd3();return ChDsp2('text3','textALL');">ボタン3</a></div> <div class="clear">&nbsp;</div> <div class="area"> <form name="FORM"> <div id="text1" class="textALL"> その1、ここは最初に表示されています。 </div> <div id="text2" class="textALL hide"> その2、ここはボタン2をクリックで表示されます。 </div> <div id="text3" class="textALL hide"> その2、ここはボタン3をクリックで表示されます。 </div> </form> </div> 上記は、以前頂いたプログラムをわかる範囲で改造したものなのですが、 限界を感じまして、どなたか教えて頂けたら助かります。 宜しくお願いします。

  • return trueとreturn falseの用途・違いは・・・?

    functionやifなどで「return true」「return false」というのを見かけますが、これの違いを教えてください。あと最近 if(!obj){ return true; } という文を見かけました。 これがifじゃなくてfunctionなら、ブール値が返るのでtrueとfalseの違いがありますが、このifではなぜreturn trueを使っているのか分かりません。「return false」を書くと、ifやfunctionを強制的に抜ける「break」と同じ役割を果たすと聞いた事がありますが、trueは知りません。 ・・・というより、ifでreturnを使う意味もよく分からなくなってきました。 if文は何も返りませんし、返したところで受け取る方法がありませんよね? これもどういう意味なのか、教えてください。 よろしくお願いします。

専門家に質問してみよう