[掲示板へもどる]

一括表示

★ - AutoLoginCreator.js 【1.xx互換スクリプト】 - sleepy(webmaster) 10/07-22:37 No.2


タイトルAutoLoginCreator.js
カテゴリ: 1.xx互換スクリプト
記事No: 2 [関連記事]
投稿日: 2008/10/07(Tue) 22:37
投稿者sleepy(webmaster)
/***************************************************************

                Auto Login Creator(2008/10/07)
                                        written by sleepy

***************************************************************/

var MyTitle = "Auto Login Creator";
var MyVer = "(2008/10/07)";
var Slpnr = new ActiveXObject("Sleipnir.API");

if (Slpnr){
    String.prototype.trim = Trim;
    String.prototype.replaceFileName = replaceFileName;
    String.prototype.replaceSectionName = replaceSectionName;
    var FS = WScript.CreateObject("Scripting.FileSystemObject");
    var id = Slpnr.GetDocumentID(Slpnr.ActiveIndex);
    var document = Slpnr.GetDocumentObject(id);
    ActiveDocument.prototype.parentAE = GetParentActiveElement;
    var AD = new ActiveDocument();
    var P = new AutoLoginParam();

    Main();

    P = null;
    AD = null;
    document = null;
    FS = null;
    Slpnr = null;
}

function Main(){
    try {
        if (!document){
            throw (new Error(0, "ログインスクリプトを作成したいページを開いてから実行して下さい。"));
        }
        showStartDlg();
        getActive("入力フォーム");
        getMainDoc();
        getForm();
        showWaitDlg();
        getActive("ログインボタン");
        getSubmitDoc();
        if (selectModeDlg()){
            showIncludeDlg();
            isClickDlg()
        }
        else {
            showFolderDlg();
        }
        do {
            showFileNameDlg();
        } while (!showOverwriteDlg());
        do {
            showIniSectDlg();
        } while (!showSectExistDlg());
        showSaveDatDlg();
        createScriptFile();
        showEndDlg();
    }
    catch(error){
        showErrDlg(error.number, error.description);
    }
}

function showStartDlg(){
    try {
        var strMsg = "入力フォーム(アカウント名入力欄・パスワード入力欄等)\nがアクティブになっていますか?";
        var blnChk = showDlg(strMsg, 4 + 32);
        if (!blnChk){
            throw(new Error());
        }
    }
    catch(error){
        if (!error.number){
            throw (new Error(0, "入力フォームをアクティブにし、再実行して下さい。"));
        }
        else {
            throw (new Error(error.number, "showStartDlg -> " + error.description));
        }
    }
}

function getActive(strMsg){
    if (!AD.getDocument(document)){
        throw (new Error(1, strMsg + "の存在するドキュメントを取得できません。"));
    }
}

function getMainDoc(){
    try {
        P.PageURL = document.parentWindow.location.href;
        P.LoginURL = AD.self.parentWindow.location.href;
        P.MainSyntax = AD.elementSyntax;
        P.PageTitle = document.title;
        P.ScriptTitle = document.title.trim().replaceFileName();
        if (!P.ScriptTitle){
            P.PageURL.match(/([^\/]+)\/([^\/]*)$/);
            P.ScriptTitle = "AutoLogin_" + (RegExp.$1 + "_" + RegExp.$2).trim().replaceFileName();
        }
        var strTmp = document.parentWindow.location.hostname.trim().replaceSectionName();
        if (strTmp){
            P.IniSection = strTmp;
        }
        else {
            P.PageURL.match(/([^\/]+)\/([^\/]*)$/);
            P.IniSection = (RegExp.$1 + "_" + RegExp.$2).trim().replaceSectionName();
        }
    }
    catch(error){
        throw (new Error(error.number, "getMainDoc -> " + error.description));
    }
}

function getForm(){
    try {
        var objForm = AD.parentAE("FORM");
        if (!objForm){
            throw new Error();
        }
        P.FormAct = objForm.action;
        for (i = 0; i < AD.self.forms.length; i++){
            if (AD.self.forms(i) == objForm){
                P.FormNm = i;
                break;
            }
        }
        for (i = 0; i < objForm.elements.length; i++){
            if (objForm.elements(i).tagName.match(/^INPUT$/i)){
                if (!objForm.elements(i).type){
                    P.AcntNm.push(i);
                    P.AcntValue.push(objForm.elements(i).value);
                }
                else {
                    if (objForm.elements(i).type.match(/^text$/i)){
                        P.AcntNm.push(i);
                        P.AcntValue.push(objForm.elements(i).value);
                    }
                    if (objForm.elements(i).type.match(/^password$/i)){
                        P.PassNm.push(i);
                        P.PassValue.push(objForm.elements(i).value);
                    }
                    if (objForm.elements(i).type.match(/^radio$|^checkbox$/i)){
                        if (objForm.elements(i).checked){
                            P.ChkTrue.push(i);
                        }
                        else {
                            P.ChkFalse.push(i);
                        }
                    }
                }
            }
            if (objForm.elements(i).tagName.match(/^SELECT$/i)){
                P.SelNm.push(i);
                P.SelIndex.push(objForm.elements(i).selectedIndex);
            }
        }
    }
    catch(error){
        if (!error.number){
            throw (new Error(1, "フォームを取得できません。"));
        }
        else {
            throw (new Error(error.number, "getForm -> " + error.description));
        }
    }
    finally {
        objForm = null;
    }
}

function showWaitDlg(){
    var lngWait = Slpnr.GetProfileInt("ALC_config", "waitTime", 5);
    try {
        showDlg("続いてログインする際に押すボタン(or 画像 or リンク)を右クリックし、アクティブにして下さい。"
                + "\n(表示されたコンテキストメニューはそのままにしておいて下さい。)"
                + "\n\nこのダイアログを閉じてから、約" + lngWait + "秒後に作成を再開しますので、それまでに実行して下さい。");
        WScript.Sleep(lngWait * 1000);
        var blnChk = showDlg("作成を再開します。ボタン(or 画像 or リンク)をアクティブにしましたか?", 4 + 32);
        if (!blnChk){
            throw(new Error());
        }
    }
    catch(error){
        if (!error.number){
            throw (new Error(0, "メッセージに従って、再実行して下さい。"));
        }
        else {
            throw (new Error(error.number, "showWaitDlg -> " + error.description));
        }
    }
}

function getSubmitDoc(){
    try {
        P.SubmitURL = AD.self.parentWindow.location.href;
        P.SubmitSyntax = AD.elementSyntax;
        P.SubmitTag = AD.self.activeElement.tagName;
        for (i = 0; i < AD.self.all.tags(P.SubmitTag).length; i++){
            if (AD.self.all.tags(P.SubmitTag)(i) == AD.self.activeElement){
                P.SubmitNm = i;
                break;
            }
        }
    }
    catch(error){
        throw (new Error(error.number, "getSubmitDoc -> " + error.description));
    }
}

function selectModeDlg(){
    try {
        if (!FS.FileExists(Slpnr.AppPath + "..\\plugins\\extension\\SeaHorseExtension.fx")){
            P.IsSH = false;
        }
        else {
            switch (Slpnr.GetProfileInt("ALC_config", "selectModeDlg", 0)){
                case 1:
                P.IsSH = false;
                break;
                case 2:
                P.ScriptPath = Slpnr.AppPath + "..\\plugins\\seahorse\\";
                P.IsSH = true;
                break;
                default:
                if (showDlg("SeaHorseプラグインが見つかりました。\nSeaHorse用スクリプトとして作成しますか?", 4 + 32 + 256)){
                    P.ScriptPath = Slpnr.AppPath + "..\\plugins\\seahorse\\";
                    P.IsSH = true;
                }
                else {
                    P.IsSH = false;
                }
            }
        }
        return P.IsSH;
    }
    catch(error){
        throw (new Error(error.number, "selectModeDlg -> " + error.description));
    }
}

function showIncludeDlg(){
    try {
        switch (Slpnr.GetProfileInt("ALC_config", "showIncludeDlg", 0)){
            case 1:
            break;
            default:
            var strTmp;
            do {
                strTmp = inputDlg("このスクリプトが動作するURL?(ワイルドカード利用可)"
                                  + "\n(OK:決定、キャンセル:中断)", P.PageURL);
                if (strTmp == null){
                    throw (new Error());
                }
            } while (strTmp.match(/[^\w-.!~*\'();\/?:\@&=+\$,%#]/) || !strTmp);
            P.PageURL = strTmp;
        }
    }
    catch(error){
        if (!error.number){
            throw (new Error(0, "作成を中止します。"));
        }
        else {
            throw (new Error(error.number, "showIncludeDlg -> " + error.description));
        }
    }
}

function isClickDlg(){
    try {
        switch (Slpnr.GetProfileInt("ALC_config", "isClickDlg", 0)){
            case 1:
            P.IsLogin = false;
            break;
            case 2:
            P.IsLogin = true;
            break;
            default:
            if (showDlg("ボタンクリックまで自動化しますか?\n(複数アカウントを使い分ける場合等、自動化しない方がよいことがあります)", 4 + 32 + 256)){
                P.IsLogin = true;
            }
            else {
                P.IsLogin = false;
            }
        }
    }
    catch(error){
        throw (new Error(error.number, "isClickDlg -> " + error.description));
    }
}

function showFolderDlg(){
    try {
        switch (Slpnr.GetProfileInt("ALC_config", "showFolderDlg", 0)){
            case 1:
            P.ScriptPath = Slpnr.ScriptPath;
            break;
            case 2:
            P.ScriptPath = Slpnr.ScriptPath + Slpnr.GetProfileString("ALC_config", "scriptPath", "");
            break;
            default:
            var objShell = WScript.CreateObject("Shell.Application");
            var objFolder = objShell.BrowseForFolder(Slpnr.Handle, "作成するフォルダを指定して下さい。\n(OK:決定、キャンセル:中断)"
                                                     , 0x0040, Slpnr.ScriptPath);
            if (!objFolder){
                throw (new Error());
            }
            P.ScriptPath = objFolder.Items().Item().Path;
        }
    }
    catch(error){
        if (!error.number){
            throw (new Error(0, "作成を中止します。"));
        }
        else {
            throw (new Error(error.number, "showFolderDlg -> " + error.description));
        }
    }
    finally {
        objFolder = null;
        objShell = null;
    }
}

function showFileNameDlg(){
    var strTmp;
    try {
        switch (Slpnr.GetProfileInt("ALC_config", "showFileNameDlg", 0)){
            case 1:
            break;
            default:
            do {
                strTmp = inputDlg("作成するスクリプト名?(拡張子は必要ありません)\n(OK:決定、キャンセル:中断)", P.ScriptTitle);
                if (strTmp == null){
                    throw (new Error());
                }
            } while ((strTmp = strTmp.trim().replaceFileName(true)) == "");
            P.ScriptTitle = strTmp;
        }
    }
    catch(error){
        if (!error.number){
            throw (new Error(0, "作成を中止します。"));
        }
        else {
            throw (new Error(error.number, "showFileNameDlg -> " + error.description));
        }
    }
}

function showOverwriteDlg(){
    var blnRet = true;
    try {
        switch (Slpnr.GetProfileInt("ALC_config", "showOverwriteDlg", 0)){
            case 1:
            break;
            default:
            if (FS.FileExists(P.ScriptFullName())
                && !(Slpnr.GetProfileInt("ALC_config", "showFileNameDlg", 0))){
                var blnChk = showDlg(P.ScriptTitle + (P.IsSH?'.user':'') + ".js : 同名のファイルが存在しています。\n上書きしますがよろしいですか?"
                                     , 4 + 32);
                if (!blnChk){
                    blnRet = false;
                }
            }
        }
        return blnRet;
    }
    catch(error){
        throw (new Error(error.number, "showOverwriteDlg -> " + error.description));
    }
}

function showIniSectDlg(){
    try {
        switch (Slpnr.GetProfileInt("ALC_config", "showIniSectDlg", 0)){
            case 1:
            break;
            default:
            var strTmp;
            do {
                strTmp = inputDlg("Script.iniのセクション名?(半角英数・セクション重複に注意)"
                                  + "\n(OK:決定、キャンセル:中断)", P.IniSection);
                if (strTmp == null){
                    throw (new Error());
                }
            } while (strTmp.match(/\W/) || !strTmp);
            P.IniSection = strTmp;
        }
    }
    catch(error){
        if (!error.number){
            throw (new Error(0, "作成を中止します。"));
        }
        else {
            throw (new Error(error.number, "showIniSectDlg -> " + error.description));
        }
    }
}

function showSectExistDlg(){
    var blnRet = true;
    try {
        switch (Slpnr.GetProfileInt("ALC_config", "showSectExistDlg", 0)){
            case 1:
            break;
            default:
            if (Slpnr.GetProfileString("AutoLogin_" + P.IniSection, "Account_0", "NoKey") != "NoKey"
                && !(Slpnr.GetProfileInt("ALC_config", "showIniSectDlg", 0))){
                var blnChk = showDlg(P.IniSection + " : 同名のセクションが存在しています。重複しますがよろしいですか?"
                                     + "\n(「はい」を選択した場合、このセクションに保存されているアカウントデータは削除/上書きされます)", 4 + 32);
                if (!blnChk){
                    blnRet = false;
                }
            }
        }
        return blnRet;
    }
    catch(error){
        throw (new Error(error.number, "showSectExistDlg -> " + error.description));
    }
}

function showSaveDatDlg(){
    try {
        switch (Slpnr.GetProfileInt("ALC_config", "showSaveDatDlg", 0)){
            case 1:
            P.SavePassword = false;
            break;
            case 2:
            P.SavePassword = true;
            break;
            default:
            P.SavePassword = showDlg("パスワードをScript.iniに保存しますか?", 4 + 32 + 256);
        }
    }
    catch(error){
        throw (new Error(error.number, "showSaveDatDlg -> " + error.description));
    }
}

function createScriptFile(){
    try {
        if (!FS.FolderExists(P.ScriptPath)){
            FS.CreateFolder(P.ScriptPath);
        }
        writeScript();
        for (i = 0; i < P.AcntNm.length; i++){
            Slpnr.WriteProfileStringCipher("AutoLogin_" + P.IniSection, "Account_" + i, P.AcntValue[i]);
        }
        if (P.SavePassword){
            for (i = 0; i < P.PassNm.length; i++){
                if (P.PassValue[i]){
                    Slpnr.WriteProfileStringCipher("AutoLogin_" + P.IniSection, "Password_" + i, P.PassValue[i]);
                }
            }
        }
    }
    catch(error){
        throw (new Error(error.number, "createScriptFile -> " + error.description));
    }
}

function writeScript(){
    try {
        var objFile = FS.CreateTextFile(P.ScriptFullName(), true);
        var SEQ;
        if (P.IsSH){
            WL('// ==UserScript==');
        }
        WL('// ' + (P.IsSH?'@name ':'') + '自動ログイン : ' + P.ScriptTitle);
        WL('// ' + (P.IsSH?'@author ':'generated by ') + '"' + MyTitle + MyVer + '"');
        if (P.IsSH){
            WL('// @include ' + P.PageURL);
            WL('// @type SleipnirScript');
            WL('// ==/UserScript==');
        }
        else if (Slpnr.Version < 200){
            WL('// このスクリプトを読込完了時スクリプトとして実行する場合、');
            WL('// ' + P.PageURL + '<script=' + P.ScriptFullName().substr(Slpnr.ScriptPath.length) + '>');
            WL('// 上記URLでお気に入りに登録してください。');
        }
        WL('');
        WL('// このスクリプトの改変は自由に行っていただいてかまいません。');
        WL('');
        WL('// 任意の値を設定してください。');
        if (!P.IsSH){
            WL('var timeout       = 20;        // タイムアウトまでの待ち時間(単位:秒)');
            WL('var waitforV2     = 2;         // Sleipnir2対策・セキュリティ切替実行までの待ち時間(単位:秒)');
        }
        WL('var savePassword  = ' + P.SavePassword + ';        // パスワードを Script.ini に保存する:true、保存しない:false');
        for (i = 0; i < P.AcntNm.length; i++){
            if (P.AcntNm.length > 1){
                SEQ = i + 1;
            }
            else {
                SEQ = "";
            }
            WL('var accountPromptName_' + i + '  = "ユーザID' + SEQ + '";        // アカウント入力ダイアログの項目名');
        }
        for (i = 0; i < P.PassNm.length; i++){
            if (P.PassNm.length > 1){
                SEQ = i + 1;
            }
            else {
                SEQ = "";
            }
            WL('var passwordPromptName_' + i + ' = "パスワード' + SEQ + '";        // パスワード入力ダイアログの項目名');
        }
        if (!P.IsSH){
            WL('// 以下、ページを開く際のセキュリティ設定。作成時に設定し忘れた場合変更して下さい。');
            WL('// trueがオン(ログイン時に必要)、falseがオフ(ログイン時特に必要なし)です。');
            WL('var blnScr        = ' + Slpnr.IsJavaScriptEnabled(id) + ';        // JavaScriptの実行');
            WL('var blnJav        = ' + Slpnr.IsJavaEnabled(id) + ';        // Javaの実行');
            WL('var blnAct        = ' + Slpnr.IsRunActiveXEnabled(id) + ';        // ActiveXの実行');
            WL('var blnAdl        = ' + Slpnr.IsDownloadActiveXEnabled(id) + ';        // ActiveXのダウンロード');
            WL('var blnPic        = ' + Slpnr.IsPictureEnabled(id) + ';        // 画像の再生');
            WL('var blnSou        = ' + Slpnr.IsSoundEnabled(id) + ';        // サウンドの再生');
            WL('var blnVid        = ' + Slpnr.IsVideoEnabled(id) + ';        // ビデオの再生');
        }
        else {
                WL('var blnChkTitle   = true;        // タイトルが一致したときのみ実行:true、無条件に実行:false');
                WL('var blnChkForm    = true;        // form.actionが一致したときのみ実行:true、無条件に実行:false');
        }
        WL('// 設定ここまで。');
        WL('');
        WL('var Slpnr = new ActiveXObject("Sleipnir.API");');
        if (P.IsSH){
            WL('var document = _document;');
            WL('var window;');
        }
        else {
            WL('var Arg = WScript.Arguments;');
            WL('var document;');
            WL('var window;');
            WL('var id;');
            WL('var resetIniData  = Slpnr.ShiftDown;');
        }
        WL('var t;');
        WL('');
        WL('var loginPage     = "' + P.IniSection + '";');
        if (!P.IsSH){
            WL('var pageURL       = "' + P.PageURL + '";');
            if (P.MainSyntax){
                WL('var LoginURL      = "' + P.LoginURL + '";');
            }
            if (P.MainSyntax != P.SubmitSyntax){
                WL('var SubmitURL     = "' + P.SubmitURL + '";');
            }
        }
        for (i = 0; i < P.AcntNm.length; i++){
            WL('var accountTag_' + i + '  = ' + P.AcntNm[i] + ';');
        }
        for (i = 0; i < P.PassNm.length; i++){
            WL('var passwordTag_' + i + ' = ' + P.PassNm[i] + ';');
        }
        for (i = 0; i < P.ChkTrue.length; i++){
            WL('var checkTag_' + i + '    = ' + P.ChkTrue[i] + ';');
        }
        for (i = 0; i < P.ChkFalse.length; i++){
            WL('var uncheckTag_' + i + '  = ' + P.ChkFalse[i] + ';');
        }
        for (i = 0; i < P.SelNm.length; i++){
            WL('var selTag_' + i + '      = ' + P.SelNm[i] + ';');
        }
        WL('var formNumber    = ' + P.FormNm + ';');
        WL('var submitTag     = "' + P.SubmitTag + '";');
        WL('var submitNumber  = ' + P.SubmitNm + ';');
        WL('');
        for (i = 0; i < P.AcntNm.length; i++){
            WL('var account_' + i + '     = "";');
        }
        for (i = 0; i < P.PassNm.length; i++){
            WL('var password_' + i + '    = "";');
        }
        for (i = 0; i < P.SelNm.length; i++){
            WL('var selindex_' + i + '    = ' + P.SelIndex[i] + ';');
        }
        WL('');
        if (!P.IsSH){
            WL('Main();');
        }
        else {
            WL('var pageTitle     = "' + P.PageTitle + '";');
            WL('var formAction    = "' + P.FormAct + '";');
            WL('');
            WL('if (((blnChkTitle && document.title == pageTitle) || !blnChkTitle) &&');
            WL('    ((blnChkForm && document.forms(formNumber).action == formAction) || !blnChkForm)){');
            WL('    Main();');
            WL('}');
        }
        WL('');
        WL('window = null;');
        WL('document = null;');
        if (!P.IsSH){
            WL('Arg = null;');
        }
        WL('Slpnr = null;');
        WL('');
        WL('function Main(){');
        if (!P.IsSH){
            WL('    var ArgChk = false;');
            WL('    if (Arg.length != 0){');
            WL('        try {');
            WL('            if (Slpnr.GetWindowObject(Arg(0)).location.href == pageURL){');
            WL('                ArgChk = true;');
            WL('            }');
            WL('        }');
            WL('        catch(error){');
            WL('        }');
            WL('    }');
            WL('    if (ArgChk){');
            WL('        id  = Arg(0);');
            WL('    }');
            WL('    else if (Slpnr.URL != pageURL){');
            WL('        id  = Slpnr.NewWindow(pageURL, true);');
            WL('    }');
            WL('    else {');
            WL('        id = Slpnr.GetDocumentID(Slpnr.ActiveIndex);');
            WL('    }');
            // Sleipnir2対策ココカラ
            WL('    // Sleipnir2対策ココカラ');
            WL('    if (Slpnr.Version >= 200){');
            WL('        t = 0;');
            WL('        do {');
            WL('            WScript.Sleep(500);');
            WL('            t += 500;');
            WL('        } while ((Slpnr.IsBusy(id)) && (t < (timeout * 1000)));');
            WL('        if (t >= (timeout * 1000)){');
            WL('            Quit();');
            WL('            return false;');
            WL('        }');
            WL('        else {');
            WL('            WScript.Sleep(waitforV2 * 1000);');
            WL('        }');
            WL('    }');
            WL('    // Sleipnir2対策ココマデ');
            // Sleipnir2対策ココマデ
            WL('    if ((blnScr && !Slpnr.IsJavaScriptEnabled(id)) || (blnJav && !Slpnr.IsJavaEnabled(id))');
            WL('     || (blnAct && !Slpnr.IsRunActiveXEnabled(id)) || (blnAdl && !Slpnr.IsDownloadActiveXEnabled(id))');
            WL('     || (blnPic && !Slpnr.IsPictureEnabled(id)) || (blnSou && !Slpnr.IsSoundEnabled(id))');
            WL('     || (blnVid && !Slpnr.IsVideoEnabled(id))){');
            WL('        Slpnr.SetSecurity(id, blnScr, blnJav, blnAct, blnAdl, blnPic, blnSou, blnVid);');
            WL('    }');
            WL('');
            WL('    // ドキュメント取得を待つ。');
            WL('    t = 0;');
            WL('    do {');
            WL('        WScript.Sleep(500);');
            WL('        t += 500;');
            WL('    } while ((document = Slpnr.GetDocumentObject(id)) == null && (t < (timeout * 1000)));');
            WL('    if (t >= (timeout * 1000)){');
            WL('        Quit();');
            WL('        return false;');
            WL('    }');
            if (P.MainSyntax){
                WL('    var WaitMainFrame = true;');
                WL('    do {');
                WL('        try {');
                WL('            if (document' + P.MainSyntax + ' != null){');
                WL('                WaitMainFrame = false;');
                WL('            }');
                WL('        }');
                WL('        catch(error){');
                WL('        }');
                WL('        finally {');
                WL('            WScript.Sleep(500);');
                WL('            t += 500;');
                WL('        }');
                WL('    } while (WaitMainFrame && t < (timeout * 1000));');
                WL('    if (t >= (timeout * 1000)){');
                WL('        Quit();');
                WL('        return false;');
                WL('    }');
                WL('    else if (document' + P.MainSyntax + '.URL != LoginURL){');
                WL('        document' + P.MainSyntax + '.parentWindow.location.href = LoginURL;');
                WL('        do {');
                WL('            WScript.Sleep(500);');
                WL('            t += 500;');
                WL('        } while (document' + P.MainSyntax + ' == null && t < (timeout * 1000));');
                WL('        if (t >= (timeout * 1000)){');
                WL('            Quit();');
                WL('            return false;');
                WL('        }');
                WL('    }');
            }
            if (P.MainSyntax != P.SubmitSyntax){
                WL('    var WaitSubmitFrame = true;');
                WL('    do {');
                WL('        try {');
                WL('            if (document' + P.SubmitSyntax + ' != null){');
                WL('                WaitSubmitFrame = false;');
                WL('            }');
                WL('        }');
                WL('        catch(error){');
                WL('        }');
                WL('        finally {');
                WL('            WScript.Sleep(500);');
                WL('            t += 500;');
                WL('        }');
                WL('    } while (WaitSubmitFrame && t < (timeout * 1000));');
                WL('    if (t >= (timeout * 1000)){');
                WL('        Quit();');
                WL('        return false;');
                WL('    }');
                WL('    else if (document' + P.SubmitSyntax + '.URL != SubmitURL){');
                WL('        document' + P.SubmitSyntax + '.parentWindow.location.href = SubmitURL;');
                WL('        do {');
                WL('            WScript.Sleep(500);');
                WL('            t += 500;');
                WL('        } while (document' + P.SubmitSyntax + ' == null && t < (timeout * 1000));');
                WL('        if (t >= (timeout * 1000)){');
                WL('            Quit();');
                WL('            return false;');
                WL('        }');
                WL('    }');
            }
            WL('');
        }
        WL('    window = document.parentWindow;');
        WL('');
        if (P.IsSH){
            for (i = 0; i < P.AcntNm.length; i++){
                WL('    account_' + i + '  = Slpnr.GetProfileStringCipher("AutoLogin_" + loginPage, "Account_' + i + '", "");');
            }
            for (i = 0; i < P.PassNm.length; i++){
                WL('    password_' + i + ' = Slpnr.GetProfileStringCipher("AutoLogin_" + loginPage, "Password_' + i + '", "");');
            }
        }
        else {
            WL('    if (!resetIniData){');
            WL('        // 設定を読み込む。');
            for (i = 0; i < P.AcntNm.length; i++){
                WL('        account_' + i + '  = Slpnr.GetProfileStringCipher("AutoLogin_" + loginPage, "Account_' + i + '", "");');
            }
            for (i = 0; i < P.PassNm.length; i++){
                WL('        password_' + i + ' = Slpnr.GetProfileStringCipher("AutoLogin_" + loginPage, "Password_' + i + '", "");');
            }
            WL('    }');
        }
        WL('');
        WL('    // ユーザーから入力を促す。');
        for (i = 0; i < P.AcntNm.length; i++){
            WL('    if (account_' + i + ' == "") {');
            WL('        account_' + i + ' = window.prompt(accountPromptName_' + i + ' + "を入力して下さい(値はScript.ini に保存されます)。", "");');
            WL('        if (account_' + i + ' == null){');
            WL('            account_' + i + ' = "";');
            WL('        }');
            WL('        else {');
            WL('            account_' + i + ' = String(account_' + i + '.match(/^[^\\x00]*/));');
            WL('        }');
            WL('        Slpnr.WriteProfileStringCipher("AutoLogin_" + loginPage, "Account_' + i + '", account_' + i + ');');
            WL('    }');
        }
        WL('    if (savePassword){');
        for (i = 0; i < P.PassNm.length; i++){
            WL('        if (password_' + i + ' == ""){');
            WL('            try {');
            WL('                password_' + i + ' = Slpnr.MaskedInputBox(passwordPromptName_' + i + ' + "を入力してください(値は Script.ini に保存されます)。", "");');
            WL('            }');
            WL('            catch(error){');
            WL('                password_' + i + ' = window.prompt(passwordPromptName_' + i + ' + "を入力してください(値は Script.ini に保存されます)。", "");');
            WL('            }');
            WL('            finally {');
            WL('                if (password_' + i + ' == null){');
            WL('                    password_' + i + ' = "";');
            WL('                }');
            WL('                else {');
            WL('                    password_' + i + ' = String(password_' + i + '.match(/^[^\\x00]*/));');
            WL('                }');
            WL('                Slpnr.WriteProfileStringCipher("AutoLogin_" + loginPage, "Password_' + i + '", password_' + i + ');');
            WL('            }');
            WL('        }');
        }
        WL('    }');
        WL('    else{');
        for (i = 0; i < P.PassNm.length; i++){
            WL('        if (password_' + i + ' != ""' + (P.IsSH?'':' || resetIniData') + '){');
            WL('            if (window.confirm("Script.ini にこのページのパスワードが保存されている場合、削除します。\\n" +');
            WL('                               "よろしいですか?(OK:削除する、キャンセル:削除しない)")){');
            WL('                try {');
            WL('                    Slpnr.DeleteProfileKey("AutoLogin_" + loginPage, "Password_' + i + '");');
            WL('                }');
            WL('                catch(error){');
            WL('                    Slpnr.WriteProfileString("AutoLogin_" + loginPage, "Password_' + i + '", "");');
            WL('                }');
            WL('            }');
            WL('        }');
            WL('        try {');
            WL('            password_' + i + ' = Slpnr.MaskedInputBox(passwordPromptName_' + i + ' + "を入力してください", "");');
            WL('        }');
            WL('        catch(error){');
            WL('            password_' + i + ' = window.prompt(passwordPromptName_' + i + ' + "を入力してください", "");');
            WL('        }');
            WL('        finally {');
            WL('            if (password_' + i + ' == null){');
            WL('                password_' + i + ' = "";');
            WL('            }');
            WL('            else {');
            WL('                password_' + i + ' = String(password_' + i + '.match(/^[^\\x00]*/));');
            WL('            }');
            WL('        }');
        }
        WL('    }');
        WL('');
        if (!P.IsSH){
            WL('    while (!DoLogin(document)){');
            WL('        if ((t > (timeout * 1000)) || Slpnr.GetDocumentObject(id) == null){');
            WL('            Slpnr.MessageBox("AutoLogin Error : ' + P.ScriptTitle + '.js\\nログインできませんでした。");');
            WL('            break;');
            WL('        }');
            WL('        WScript.Sleep(500);');
            WL('        t += 500;');
            WL('    }');
        }
        else {
            WL('    if (!DoLogin(document)){');
            WL('            sleipnir.Echo("AutoLogin Error : ' + P.ScriptTitle + '.user.js");');
            if (P.IsLogin){
                WL('            sleipnir.Echo("    ログインできませんでした。");');
            }
            else {
                WL('            sleipnir.Echo("    フォームにアクセスできませんでした。");');
            }
            WL('    }');
        }
        WL('}');
        WL('');
        WL('function DoLogin(objDoc){');
        WL('    var document = objDoc;');
        WL('    try {');
        if (P.MainSyntax){
            WL('        document = objDoc' + P.MainSyntax + ';');
        }
        for (i = 0; i < P.AcntNm.length; i++){
            WL('        document.forms(formNumber).elements(accountTag_' + i + ').value = account_' + i + ';');
        }
        for (i = 0; i < P.PassNm.length; i++){
            WL('        document.forms(formNumber).elements(passwordTag_' + i + ').value = password_' + i + ';');
        }
        for (i = 0; i < P.ChkTrue.length; i++){
            WL('        document.forms(formNumber).elements(checkTag_' + i + ').checked = true;');
        }
        for (i = 0; i < P.ChkFalse.length; i++){
            WL('        document.forms(formNumber).elements(uncheckTag_' + i + ').checked = false;');
        }
        for (i = 0; i < P.SelNm.length; i++){
            WL('        document.forms(formNumber).elements(selTag_' + i + ').selectedIndex = selindex_' + i + ';');
        }
        if (P.MainSyntax != P.SubmitSyntax){
            WL('        document = objDoc' + P.SubmitSyntax + ";");
        }
        if (P.IsSH){
            WL('        if (Slpnr.CtrlDown){');
            WL('            sleipnir.beep();');
            WL('        }');
            WL('        else {');
            WL('            document.all.tags(submitTag).item(submitNumber).' + (P.IsLogin?'click':'focus') + '();');
            WL('        }');
        }
        else {
            WL('        document.all.tags(submitTag).item(submitNumber).click();');
        }
        WL('        return true;');
        WL('    }');
        WL('    catch(error){');
        WL('        return false;');
        WL('    }');
        WL('}');
        if (!P.IsSH){
            WL('');
            WL('function Quit(){');
            WL('    Slpnr.MessageBox("AutoLogin Error : ' + P.ScriptTitle + '.js\\nタイムアウトしました。");');
            WL('}');
        }
        function WL(str){
            objFile.WriteLine(str);
        }
    }
    catch(error){
        throw (new Error(error.number, "writeScript -> " + error.description));
    }
    finally {
        if (objFile){
            objFile.Close();
            objFile = null;
        }
    }
}

function showEndDlg(){
    var strMsg = "スクリプト作成終了。" + (P.IsSH?"\\plugins\\seahorse\\に":"指定フォルダに");
    strMsg += P.ScriptTitle + (P.IsSH?'.user':'') + ".jsを作成しました。";
    try {
        if (Slpnr.Version < 200){
            try {
                    Slpnr.ExecCommand(33201);
                }
            catch(error){
                strMsg += "\n(スクリプトの再読み込みを実行してください。)";
            }
        }
        else {
            if (P.IsSH){
                strMsg += "\n(Sleipnir オプション > 拡張機能 > SeaHorse にて、再読み込みを実行してください。)";
            }
            else {
                try {
                    Slpnr.ExecuteAction("ReloadScript");
                }
                catch(error){
                    strMsg += "\n(スクリプトの再読み込みを実行してください。)";
                }
            }
        }
        showDlg(strMsg);
    }
    catch(error){
        throw (new Error(error.number, "showEndDlg -> " + error.description));
    }
}

function showDlg(){
    var strMsg = "";
    var lngPrm = 0;
    var lngRet = null;
    switch(arguments.length){
        case 1:
        strMsg = arguments[0];
        lngPrm = 0 + 64;
        break;
        case 2:
        strMsg = arguments[0];
        lngPrm = arguments[1];
        break;
    }
    try {
        lngRet = Slpnr.MsgBox(strMsg, MyTitle, lngPrm);
        return ((lngRet == 1) || (lngRet == 6));
    }
    catch (error){
        var window;
        if (arguments.length == 1){
            return (Slpnr.MessageBox(strMsg));
        }
        try {
            window = Slpnr.GetWindowObject(id);
            return (window.confirm(strMsg));
        }
        catch(error){
            throw (new Error(error.number, "showDlg -> " + error.description));
        }
        finally {
            window = null;
        }
    }
}

function inputDlg(strMsg, strDef){
    var strRet, window;
    try {
        window = Slpnr.GetWindowObject(id);
        if ((strRet = window.prompt(strMsg, strDef))){
            strRet = String(strRet.match(/^[^\x00]*/));
        }
        return strRet;
    }
    catch(error){
        try {
            strRet = Slpnr.InputBox(strMsg, strDef);
            if (!Slpnr.Result){
                strRet = null;
            }
            return strRet;
        }
        catch(error){
            throw (new Error(error.number, "inputDlg -> " + error.description));
        }
    }
    finally {
        window = null;
    }
}

function showErrDlg(lngErr, strErr){
    var strMsg = "Error:\n";
    var lngPrm = 48;
    if (!lngErr){
        strMsg = "";
    }
    else if (lngErr == 1){
        strMsg = "スクリプト作成失敗\n";
    }
    else {
        lngPrm = 16;
    }
    showDlg(strMsg + strErr, lngPrm);
}

function replaceSectionName(){
    if (!this){
        return "";
    }
    else {
        return (this.replace(/\W/g, ""));
    }
}

function replaceFileName(){
    var str = this;
    var blnMode = false;
    switch(arguments.length){
        case 1:
        blnMode = arguments[0];
        break;
    }
    if (!str){
        return "";
    }
    else {
        str = str.replace(/\\/g, "¥");
        str = str.replace(/\"/g, "”");
        str = str.replace(/:/g, ":");
        str = str.replace(/,/g, ",");
        str = str.replace(/;/g, ";");
        str = str.replace(/\./g, ".");
        str = str.replace(/\*/g, "*");
        str = str.replace(/\?/g, "?");
        str = str.replace(/</g, "<");
        str = str.replace(/>/g, ">");
        str = str.replace(/\|/g, "|");
        str = str.replace(/\//g, "/");
        str = str.replace(/[\s\f\n\r\t\v]/g, "_");
        if (blnMode && (this != str)){
            showDlg("ファイル名に使用できない文字は変換されました。");
        }
        return str;
    }
}

function Trim(){
    if (!this){
        return "";
    }
    else {
        return (this.replace(/^[\s\u3000]+/, "").replace(/[\s\u3000]+$/, ""));
    }
}

function AutoLoginParam(){
    this.IsSH = false;
    this.IsLogin = false;
    this.ScriptPath = "";
    this.ScriptTitle = "";
    this.SavePassword = false;
    this.PageTitle = "";
    this.PageURL = "";
    this.LoginURL = "";
    this.SubmitURL = "";
    this.IniSection = "";
    this.MainSyntax = "";
    this.SubmitSyntax = "";
    this.AcntNm = new Array();
    this.AcntValue = new Array();
    this.PassNm = new Array();
    this.PassValue = new Array();
    this.ChkTrue = new Array();
    this.ChkFalse = new Array();
    this.SelNm = new Array();
    this.SelIndex = new Array();
    this.FormNm = 0;
    this.FormAct = "";
    this.SubmitTag = "";
    this.SubmitNm = 0;
    AutoLoginParam.prototype.ScriptFullName = getFullName;

    function getFullName(){
        return (this.ScriptPath + "\\" + this.ScriptTitle + (P.IsSH?'.user':'') + ".js");
    }
}

/* ActiveDocumentClass */
function ActiveDocument(){
    this.self = null;
    this.elementSyntax = "";
    ActiveDocument.prototype.getDocument = GetDocument;

    function GetDocument(objDoc){
        var strSyntax = "";
        try {
            while (objDoc.activeElement.tagName.match(/FRAME$/i)){
                for (i = 0; i < objDoc.all.tags(objDoc.activeElement.tagName).length; i++){
                    if (objDoc.activeElement == objDoc.all.tags(objDoc.activeElement.tagName).item(i)){
                        strSyntax += (".frames.item(" + i + ").document");
                    }
                }
                objDoc = objDoc.activeElement.contentWindow.document;
            }
            return true;
        }
        catch(error) {
            return false;
        }
        finally {
            this.self = objDoc;
            this.elementSyntax = strSyntax;
        }
    }
}

/* Method GetParentActiveElement */
function GetParentActiveElement(strTag){
    var obj = this.self.activeElement;
    try {
        while (obj.tagName != strTag){
            obj = obj.parentElement;
        }
    }
    catch(error){
        obj = null;
    }
    finally {
        return obj;
    }
}

タイトル説明など。
カテゴリ: 1.xx互換スクリプト
記事No: 3 [関連記事]
投稿日: 2005/10/14(Fri) 20:07
投稿者sleepy(webmaster)
名前の通り、オートログイン用スクリプトを生成するスクリプトです。
Sleipnir2.xx + SeaHorseプラグイン導入済の環境の場合、SeaHorse用の
ログインスクリプトを作成することも可能です。

ファイルを生成するスクリプトですので、使おうとするとセキュリティ
ソフトの警告が出る場合があります。
悪意あるコードを書いたつもりはありませんが、それでも使用する際は
あくまで自己の責任においてお使いになって下さい。

また、Script.iniにパスワードを記録する設定で使用する場合、記録させた
パスワードの管理についても自己責任でお願いいたします。



使用方法は以下の通りです。

自動ログインを作成したいページを開きます。開いたら、ページのセキュ
リティをログインに必要なレベルに変更しておいて下さい(「スクリプト
の実行」を許可が必要なページが結構あるようです)。
また、「全てのダイアログを抑制」(1.xxでは「サイレントモード」)と
「ポップアップ広告のブロック」が実装されているSleipnirで使用する場合、
「全てのダイアログを抑制 / サイレントモード」は必ずオフにして実行して
下さい。また、「ポップアップブロック」についても、オンにしていると
支障の出るサイトがあるとの報告がありましたので、オフにしておくことを
推奨します。

次にアカウントやパスワードの入力欄をクリックし、キャレットが点滅して
いる状態、つまり文字入力が可能な状態にします。
この状態で、Auto Login Creator を実行して下さい。
(入力欄は空白の状態か、もしくはログインに必要なIDやパスワードを予め
記入しておいても構いません。後者の場合、作成されたスクリプトの初回実行
時に必要となるそれら項目の入力を省略することができます。)

実行中何度かダイアログが表示されますので、表示内容をよく読み、それに
従って実行していって下さい。自動ログインスクリプトが出来上がります。

なお、Script.iniに設定項目を記述することで、スクリプト作成時の動作を
ある程度変更できます。

設定項目の詳細は以下の通りです。(設定項目を記述しない場合は今まで通り
の動作をしますので、必要の無い方は読みとばしていただいて構いません。)

セクション名:
ALC_config

キー名:
waitTime
  -> ログインボタンをアクティブにする際の待ち時間。
     値には秒数を設定。値を設定しない場合のデフォルト値は5。
selectModeDlg
  -> 作成するスクリプトの種類(1.xx互換スクリプト / SeaHorseスクリプト)。
     SeaHorseプラグイン導入済の場合のみ参照される。
     0:ダイアログで指定(デフォルト)
     1:ダイアログを出さず、常に1.xx互換スクリプトとして作成
     2:ダイアログを出さず、常にSeaHorseスクリプトとして作成
showIncludeDlg
  -> 作成するスクリプトがSeaHorseスクリプトの場合の@include値の設定。
     SeaHorseスクリプトとして作成された場合のみ参照される。
     0:ダイアログで指定(デフォルト)
     1:ダイアログを出さず、常にAuto Login Creatorが設定する初期値を使用
isClickDlg
  -> 作成するスクリプトがSeaHorseスクリプトの場合のログイン動作設定。
     SeaHorseスクリプトとして作成された場合のみ参照される。
     0:ダイアログで指定(デフォルト)
     1:ダイアログを出さず、常にログインボタンはクリックしない
     2:ダイアログを出さず、常にログインまで自動化
showFolderDlg
  -> スクリプトを作成するディレクトリの設定。
     0:ダイアログで指定(デフォルト)
     1:ダイアログを出さず、常にscriptフォルダ直下に作成
     2:ダイアログを出さず、常に"scriptPath"キーで指定したディレクトリに作成
scriptPath
  -> スクリプトを保存するディレクトリ名。
     "showFolderDlg"キーの値が2の場合のみ参照される。
     値にはscriptフォルダ以下のディレクトリを示す文字列を設定。
     (ディレクトリの記述に使用できない文字列を設定するとエラーが出ます。)
showFileNameDlg
  -> スクリプト名の設定。
     0:ダイアログで指定(デフォルト)
     1:ダイアログを出さず、常にAuto Login Creatorが設定する初期値を使用
showOverwriteDlg
  -> スクリプト名重複時の、上書き確認の設定。
     "showFileNameDlg"キーの値が0の場合のみ参照される。
     0:確認ダイアログを表示(デフォルト)
     1:ダイアログを出さず、常に上書きを許可("showFileNameDlg"キーの値が1の場合は常にこの動作)
showIniSectDlg
  -> 作成するスクリプトが使用するIniセクション名の設定。
     0:ダイアログで指定(デフォルト)
     1:ダイアログを出さず、常にAuto Login Creatorが設定する初期値を使用
showSectExistDlg
  -> Iniセクション名重複時の、上書き確認の設定。
     "showIniSectDlg"キーの値が0の場合のみ参照される。
     0:確認ダイアログを表示(デフォルト)
     1:ダイアログを出さず、常に上書きを許可("showIniSectDlg"キーの値が1の場合は常にこの動作)
showSaveDatDlg
  -> パスワード保存の設定。
     0:ダイアログで指定(デフォルト)
     1:ダイアログを出さず、常に保存しない設定で作成
     2:ダイアログを出さず、常に保存する設定で作成

設定の一例:
Script.iniに以下の記述を追加すると、
「スクリプトの作成場所は\script\AutoLoginに固定、パスワードは常に保存しない」
設定となります(それ以外はデフォルトの動作となります)。

[ALC_config]
waitTime=5
selectModeDlg=0
isClickDlg=0
showFolderDlg=2
scriptPath="AutoLogin"
showFileNameDlg=0
showOverwriteDlg=0
showIniSectDlg=0
showSectExistDlg=0
showSaveDatDlg=1



出来上がったログインスクリプトを実行した時に何か問題が起こったら、
とりあえず以下を参考にしてみて下さい。

アカウントやパスワードが自動入力されなかったら
-> 作成開始時に、文字入力欄をクリックし忘れた可能性があります。
   正しい手順で再度作成し直してみてください。

アカウントやパスワードは自動入力されたが、ログインが実行されなかったら
-> 作成中二番目に表示されるダイアログで、ログインする際に押すボタンを右クリック
   するよう指示されるのですが、これを実行しなかった可能性があります。
   また、ログインするのにJavaScriptの実行が必要なページなのに、セキュリティの
   「スクリプトの実行」を許可しないまま作成を開始してしまった可能性もあります。
   正しい手順で再度作成し直してみてください。

アカウントやパスワードは自動入力されたが、入力される文字が間違っていたら
-> INIファイルに間違った値が登録されてしまった可能性があります。
   作成されたログインスクリプトを、Shiftキーを押しっぱなしにしながら実行してみて
   下さい(ログインページの読み込みが始まるぐらいまで押していれば大丈夫です)。
   アカウントやパスワードを入力するダイアログが表示されますので、正しい値を入れ
   直してください。

上記三点は確認したのに、それでもなぜかうまくいかない
-> 「サイレントモード」と「ポップアップ広告のブロック」が実装されているSleipnir
   で実行しているのであれば、それらの機能をオフにして再実行してみて下さい。

上記のいずれにもあてはまらなかった場合は、発生した問題、及びスクリプトを
作成したページのURLをご報告いただけるとありがたいです。

タイトルRe: 説明など。
カテゴリ: 1.xx互換スクリプト
記事No: 189 [関連記事]
投稿日: 2007/02/10(Sat) 15:28
投稿者DD
sleepy様

はじめまして、最近このスクリプトの存在を知り現在設定中ですが、
以下サイトでの自動ログインは可能でしょうか?

http://www.hangame.co.jp/

最終的にはログインできるのですが、サイトにアクセスしたときに
「フォームにアクセスできません」のメッセージが頻発し、ログインテーブルが
表示された後、ログインすることができます。
自動ログインを遅らせるコードなどありましたらご教授頂きたく思います。

Sleipnir.Ver:2.4.9
SeaHorse使用

タイトルRe: 説明など。
カテゴリ: 1.xx互換スクリプト
記事No: 190 [関連記事]
投稿日: 2007/02/12(Mon) 20:31
投稿者sleepy(webmaster)
DDさん、はじめまして。レスが遅くなり申し訳ないです。

> 以下サイトでの自動ログインは可能でしょうか?
>
> http://www.hangame.co.jp/
>
> 最終的にはログインできるのですが、サイトにアクセスしたときに
> 「フォームにアクセスできません」のメッセージが頻発し、ログインテーブルが
> 表示された後、ログインすることができます。
> 自動ログインを遅らせるコードなどありましたらご教授頂きたく思います。
>
> Sleipnir.Ver:2.4.9
> SeaHorse使用

本来「フォームにアクセスできません」のメッセージは、ログインに失敗した
場合の一度だけしか出ないはずなのですが、それが頻発し、かつ最終的にログ
インできるということは、ページの読み込みが完了するまでに、SeaHorseプラ
グインによってログインスクリプトが複数回呼び出されてしまっているのでは
ないかと考えられます。
何故このようなことが起こるのか分かりませんが、残念ながらこれをスクリプ
ト側で何とかすることは今のところ不可能です。

SeaHorse用に作成した場合、従来の(1.xx互換の)ログインスクリプトとの仕
様の違いから、サイトによっては対応できなかったり、また上記のように予期
せぬ動作をしてしまう可能性があります。

例えばご質問にある「自動ログインを遅らせるコード」ですが、1.xx互換スク
リプトとして作成したものにはそういった処理がすでに組み込んであります。
しかし、SeaHorse版で同様の処理を行うと、現在のSeaHorseプラグインの仕様
では問題が発生してしまうため、組み込むことを見合わせています。

仕様の違いをスクリプト側で吸収できれば良いのですが、現実にはなかなか難
しい為、現在のところは申し訳ないのですが、SeaHorse版で上手くいかなかっ
た場合は1.xx互換スクリプトとして作成し直し、そちらを使用することでひと
まず様子を見ていただけるとありがたいです。

以上、よろしくお願いします。

タイトルRe: 説明など。
カテゴリ: 1.xx互換スクリプト
記事No: 191 [関連記事]
投稿日: 2007/02/13(Tue) 21:07
投稿者DD
sleepy様

ご回答ありがとうございます。
原因も不明ということで1.xx互換スクリプトを
使用したいと思います。

これからもご進捗のほう拝見させて頂きますので
よろしくお願いいたします。

以上

タイトルRe: 説明など。
カテゴリ: 1.xx互換スクリプト
記事No: 230 [関連記事]
投稿日: 2007/05/16(Wed) 11:44
投稿者noguchi
いつもサイト拝見させてもらってます。

導入をしたのですがスクリプトを実行すると以下のメッセージが吐き出されます。

Error:Script error
 Description: オートメーション サーバーはオブジェクトを作成できません

ちなみにバージョンは2.5.12です。ご教授よろしくお願いします。

タイトルRe: 説明など。
カテゴリ: 1.xx互換スクリプト
記事No: 232 [関連記事]
投稿日: 2007/05/20(Sun) 17:27
投稿者まねき
オートメーション サーバーはオブジェクトを作成できません

でググったら

http://www.usjma.net/ctka/cbbs.cgi?id=ecosoft&mode=one&namber=691&type=683&space=45

タイトル更新しました。
カテゴリ: 1.xx互換スクリプト
記事No: 4 [関連記事]
投稿日: 2005/10/14(Fri) 20:09
投稿者sleepy(webmaster)
Auto Login Creator 更新しました。

実行環境がSleipnir2の場合、about:blankタブひとつの状態で作成した
スクリプトを実行したときナビゲートが起こらない問題への対策を組み
込みました。(ナビゲート直後にセキュリティを変更した場合に発生する
問題のようです。Sleipnir2の場合のみ、IsBusyがfalseを返してからセ
キュリティ変更するようにしています。)
また、スクリプト作成時、ファイル名/iniセクション名の重複確認の際に
上書きをキャンセルした場合、再度入力画面が表示されるようにしました。

タイトル一応ご報告させていただきます。
カテゴリ: 1.xx互換スクリプト
記事No: 11 [関連記事]
投稿日: 2005/10/18(Tue) 22:38
投稿者oji3

Auto Login Creator 更新ありがとうございました。いつもとっても便利に利用させていただいております。この問題は解決してほしかったので、大変うれしく思っております。

さて、もちろんすべてのページに有効というわけにはいかないのはわかっておりますが、次のログインページでabout:blankタブひとつの状態からログインできない状態にあります。私が利用しているログインページはここを除いて全部OKだったのですが。。。
もし、解決できる問題であれば対応していただければと思い、ご報告させていただきました。失礼をお許しください。

ETCマイレージサービス TOP http://www.smile-etc.jp/


ETCマイレージサービス ログインページ
https://www2.smile-etc.jp/NASApp/etcmlg/MlgReq?gvlddpef=1013000000&mdwsetmb=1013000000


タイトルRe: 一応ご報告させていただきます。
カテゴリ: 1.xx互換スクリプト
記事No: 12 [関連記事]
投稿日: 2005/10/19(Wed) 23:41
投稿者sleepy(webmaster)
oji3 さん、はじめまして。

> 次のログインページでabout:blankタブひとつの状態からログインできない状態にあります。
〜 中略 〜
> ETCマイレージサービス ログインページ
> https://www2.smile-etc.jp/NASApp/etcmlg/MlgReq?gvlddpef=1013000000&mdwsetmb=1013000000

ご報告ありがとうございます。ですが、なぜか私の環境では再現しませんで
した。
ただ、今回の修正(ナビゲート問題への対策)はあくまで応急処置的なもの
ですので、そのためもしかしたら私が想定しなかった部分で問題が発生して
いるのかもしれません。
ですので、お手数ですが、確認の意味も込めて以下の点をお試しいただけない
でしょうか?

まず、作成したETCマイレージサービス用のログインスクリプトをテキスト
エディタで開き、59行目あたりに下記のブロックが存在するかご確認ください。
(もしなければ、再度最新版のAuto Login Creatorでスクリプトを作り直して
ログインできるか確認してみてくさだい。)

// Sleipnir2対策ココカラ
if (Slpnr.Version >= 200){
    t = 0;
    do {
        WScript.Sleep(500);
        t += 500;
    } while ((Slpnr.IsBusy(id)) && (t < (timeout * 1000)));
    if (t >= (timeout * 1000)){
        Quit();
    }
}
// Sleipnir2対策ココマデ

次に、スクリプトの7行目あたりにある、変数"timeout"の値(デフォルトでは
20になっているはずです)を倍の40ほどに増やしてみてください。
Sleipnir2対策のループがタイムアウトになって自動ログインしない場合はこれ
で解決するはずなのですが、ナビゲート自体が発生しないとのご報告ですので、
実の所あまり関係ないかもしれません。
でも一応、念のためということでお願いします。

それでもまだ解決しない場合は、スクリプトの13〜19行目にある、ページを開く
際のセキュリティ設定用の変数の値を、全てfalseに(もしくは、Sleipnir2のデ
フォルトセキュリティと同じ値に)してみてください。
こうすることで、ページを開いた後のセキュリティ変更が行なわれなくなります
ので、正しくナビゲートされると思います(ただしログイン後に、ページの機能
を利用するのに必要なレベルまでご自身でセキュリティを変更をする必要がある
かもしれません)。

それでもまだ解決しないとなると、残念ながら今の所私には理由が分かりません。
解決のため、引き続き挙動についての情報をいただけるとありがたいです。追っ
て調査を続けてみたいと思います。
また、解決した場合も、上記のどの処置で上手くいったかをお教えいただけると
他の方の参考になるかもしれません

以上、よろしくお願いします。

タイトルありがとうございました。結果のご報告です。
カテゴリ: 1.xx互換スクリプト
記事No: 13 [関連記事]
投稿日: 2005/10/20(Thu) 21:30
投稿者oji3

こんばんわ。
早速のご返答ありがとうございました。結果の
ご報告をさせていただきたいと思います。
まず、59行目あたりのブロックの存在ですが、これはちゃんとありました。それを踏まえてですが、スクリプトの7行目あたりにある、変数"timeout"の値ですが、これは変えても何も変化はありませんでした。で、最後の望みの綱でスクリプトの13〜19行目にある、ページを開く際のセキュリティ設定用の変数の値を全てfalseにすることによって、この問題は解決いたしました。ちなみに、元の値とSleipnir2のデフォルトセキュリティと同じ値でしたので、迷わず全てfalseにしてみました。

あともうひとつ、問題と言えるかわかりませんが、気になっていますので、これも一応ご報告させていただきたいと思います。それは、これも同じETCマイレージサービスなんですが、ログインしてログアウトし、タブを閉じます。そして、再度ログインしようとすると、ログインできないのです。しかし、Sleipnirを一旦終了させて再起動させるとログインできるようになります。こちらの環境によるのかもしれませんが、1.66では問題はありませんでした。それで、特徴として2度目のログインのとき、ページのログインボタンのところに、IDの数字がペーストされるような形になります。これは、このETCマイレージサービスと同種であるETC前払割引サービスのログインでも同じ現象が起こるようです。
もし解決策があるようでしたら、よろしくお願いいたします。もしかしたら、スクリプトの問題ではなく、Sleipnir側の問題かもしれませんが、私にはそのへんのところはわかりません。やはり、1.xx用のスクリプトを2.00で使用するのには、まだ無理があるのでしょうか?
頭が悪くうまく説明ができません。申し訳ありません。ご理解いただけているかわかりませんが。。。
たびたびの投稿をお許しください。今後ともよろしくお願いいたします。


タイトルRe: ありがとうございました。結果のご報告です。
カテゴリ: 1.xx互換スクリプト
記事No: 16 [関連記事]
投稿日: 2005/10/21(Fri) 00:13
投稿者よこから
>それで、特徴として2度目のログインのとき、ページのログインボタンのところに、IDの数字がペーストされるような形になります。

クッキーにID情報が記憶されていて、2度目はこれが自動的に
表示されているのでは?

そのサイトのクッキーを拒否する設定にすれば
大丈夫かもです。

タイトルRe: ありがとうございました。結果のご報告です。
カテゴリ: 1.xx互換スクリプト
記事No: 22 [関連記事]
投稿日: 2005/10/23(Sun) 02:58
投稿者sleepy(webmaster)

とりあえずナビゲートの問題については解決したようで良かったです。

> それは、これも同じETCマイレージサービスなんですが、ログインして
> ログアウトし、タブを閉じます。そして、再度ログインしようとすると、
> ログインできないのです。
> しかし、Sleipnirを一旦終了させて再起動させるとログインできるように
> なります。
> こちらの環境によるのかもしれませんが、1.66では問題はありませんでした。
〜 中略 〜
> これは、このETCマイレージサービスと同種であるETC前払割引サービスの
> ログインでも同じ現象が起こるようです。

うーん、いまいち理由がわからないですね。
Sleipnir2特有の問題なのであれば、ETC関連のサイトでのみ発生するという
のが不思議ですし、サイト特有の問題なのであれば、1.66では発生しないと
いうのが謎ですね。Sleipnir2とそのサイト、という特別な組み合わせでのみ
発生するとか、そんなことがあり得るんですかねえ。

残念ながら、私はそのサイトのアカウントは所有していないので、実際に試
してみるということができず、的確な対応ができそうにないです。すみません。

ただ、よこからさんもおっしゃっているように、クッキーが影響していると
いうのが一番ありそうな気がします。クッキーの有無で、ソースレベルで異な
るページが表示されるようになっているのかもしれません。
よこからさんのおっしゃる通り、クッキーをブロック、または削除してみるか、
あるいは試しに、一度ログインした後、再度ログインページを表示させて、
別名で再度ログインスクリプトを作ってみられてはどうでしょう?


タイトルたびたびありがとうございます。
カテゴリ: 1.xx互換スクリプト
記事No: 23 [関連記事]
投稿日: 2005/10/23(Sun) 21:44
投稿者oji3

たびたび私のような初心者にご丁寧にお返事をいただき、ありがとうございます。お蔭様でとっても勉強にもなり助かっております。

またまた結果のご報告です。よこからさんのご指摘のようにクッキーが影響していたようです。クッキーをブロックさせましたら、問題なくなりました。Sleipnirを再起動させることなくログインできるようになりました。ただ、そのつどクッキーのレベルを変更しなければならないのが、面倒と言えば面倒です。クッキーのレベルをそのページだけ変更でき、また元に戻るよう自動ログインスクリプトに組み入れることは可能でしょうか?もし可能であれば、ご教授いただきたく思います。ただ、このクッキーのレベルの変更はグローバルのようですので、無理な話でしょうか?
ただ、まったく同じ設定で1.66では問題がなかったのが不思議です。

ところで、下記の件ですが、

> あるいは試しに、一度ログインした後、再度ログインページを表示させて、別名で再度>ログインスクリプトを作ってみられてはどうでしょう?

試みようとしましたが、一度ログインした後、再度ログインページを表示させるとすでにログインした状態になってしまい、ログインページを表示させることはできませんでした。


タイトルRe: たびたびありがとうございます。
カテゴリ: 1.xx互換スクリプト
記事No: 25 [関連記事]
投稿日: 2005/10/24(Mon) 00:29
投稿者よこから
クッキーのレベルを高にして、必要なサイトのみ受け入れるように
すれば、クッキーの設定はほとんど触らなくていいはずです。

タイトルすべて解決
カテゴリ: 1.xx互換スクリプト
記事No: 27 [関連記事]
投稿日: 2005/10/24(Mon) 23:15
投稿者oji3

こんばんわ。
よこからさん、無知な初心者的な質問に対応していただき、ありがとうございました。
そうですね。そうでしたね。ほんと、私が無知でした。おかげさまで、無事解決いたしました。ありがとうございました。
ただ、何度も書きますが、1.66でも同じ設定なのに、何もしなくても問題がなかったのが不思議です。。。。
今後ともwebmasterのsleepyさんをはじめ、よろしくお願い申し上げます。この度は、本当にありがとうございました。勉強になりました。


タイトルお気に入りからのAuto Loginの方法
カテゴリ: 1.xx互換スクリプト
記事No: 111 [関連記事]
投稿日: 2006/08/24(Thu) 20:30
投稿者じょん
> Auto Login Creator 更新しました。
大事に使わせていただいておりますが、通常は、メニューの中からスクリプトを実行しますが、お気に入りのURLのところにスクリプトファイルの場所を記述することにより、Auto Login を実行できる方法があったと思いますが、いろいろ捜したり試したりしましたが分かりませんでした。
どうぞご教授ください、よろしくお願いいたします。
ちなみにVer1.66を使っております。

タイトルRe: お気に入りからのAuto Loginの方法
カテゴリ: 1.xx互換スクリプト
記事No: 112 [関連記事]
投稿日: 2006/08/25(Fri) 19:06
投稿者sleepy(webmaster)

じょんさん、はじめまして。

> 大事に使わせていただいておりますが、通常は、メニューの中からスクリプトを実行しますが、お気に入りのURLのところにスクリプトファイルの場所を記述することにより、Auto Login を実行できる方法があったと思いますが、いろいろ捜したり試したりしましたが分かりませんでした。
> どうぞご教授ください、よろしくお願いいたします。
> ちなみにVer1.66を使っております。

以下はVer.1.66のdocumentsフォルダにあるscript.txtよりの抜粋です。

「なお、URL に http://www.sample-url.com/<script=test\xxx.vbs> のように指定すると、
ページ読み込み後に <ini_dir>\scripts\test\xxx.vbs を実行します。実行できるのは
拡張子が .vbs と .js のみです。この機能を使用するのは「Sleipnir オプション|ス
クリプト|読み込み完了時スクリプトを実行する」のチェックを有効にしてください。」

実際に登録する際には、

http://www.sample-url.com/」の部分は、作成したスクリプトのソース内の
変数"pageURL"の文字列値(URL)と完全に一致するように記述する。

<script=test\xxx.vbs>の「test\xxx.vbs」の部分は、実行させたいスクリプト
のファイル名、種類、及びその保存場所に合わせて適宜変更する。

という二点について特に注意して下さい。

なお、上の説明の通りにしてもうまくいかない場合は、ログインスクリプトが
読み込み完了時スクリプトに未対応のものである可能性があります。その時は、
お気に入りから実行させたいログインスクリプトを、最新版(2006/06/30更新分)
の Auto Login Creator で作成し直して下さい。
この場合、できたスクリプトをテキストエディタで開くと、コメント部分に登録
の仕方が出力されていますので、それを参考にされると分かりやすいと思います。


タイトルありがとうございました
カテゴリ: 1.xx互換スクリプト
記事No: 113 [関連記事]
投稿日: 2006/08/25(Fri) 20:42
投稿者じょん
sleepyさんへ

うまくいきましてた、ありがとうございます、
長い間、方法が分からず悩んでおりました。

古い AutoLoginCreator では、ウインドウが二重に開いてしまいましたが、最新版で作成したものでは、うまく使えており、とても快適です、

ありがとうございました。

タイトル再度更新しました。
カテゴリ: 1.xx互換スクリプト
記事No: 34 [関連記事]
投稿日: 2005/11/13(Sun) 02:14
投稿者sleepy(webmaster)

Auto Login Creator 再度更新しました。

実行環境がSleipnir2の場合の対策を調整。IsBusyがfalseを返してから
セキュリティ変更してもなお上手くいかない場合があるようなので、セ
キュリティ変更前にさらに待ち時間を入れるように変更しました。
この待ち時間は、作成したスクリプトのwaitforV2という変数の値で設定
するようにしてありますので、各自の環境で最適な数値に変更してくだ
さい(デフォルトは2秒にしています)。

また、スクリプト作成時、Sleipnir2でExecCommandが未実装である旨の
ダイアログが表示されていましたが、これを表示しないように修正しま
した。

使用方法は変わっていません。記事No.3をご参照下さい。


タイトル再度更新しました。(2005/11/27)
カテゴリ: 1.xx互換スクリプト
記事No: 36 [関連記事]
投稿日: 2005/11/28(Mon) 00:49
投稿者sleepy(webmaster)
Auto Login Creator 再度更新しました。

- ファイル名に使用できない文字を変換するための関数の仕様を、BBStoTextFile
での実装形式と合わせました。(全角文字に変換するようにしました。また、
ファイル名入力後に文字の変換が行われた場合、変換が行なわれたことをダイ
アログで表示するようにしました。)
- デフォルトで設定されるiniセクション名を決定するための変換関数を新た
に作成しました。
- 作成したスクリプトのコメント部分に、読込完了時スクリプトとして利用す
る場合に指定するURLを出力するようにしました。読込完了時スクリプトの機能
を利用する方は、参照していただければと思います。

使用方法は変わっていません。記事No.3をご参照下さい。

なお、Sleipnir 2.xx で Auto Login Creator を使用した際、作成後 Sleipnir
の再起動をしないとメニューに作成したスクリプトが反映されなくて困っている
方、もしおられましたら、スクリプトフォルダのルートにではなく、すでに存在
しているサブフォルダに保存するようにしてみてください。
作成後、すぐにメニューに反映されるかと思います。
既知の現象なのかもしれませんが、ルートフォルダに作成したアイテムはなぜか
再起動後にしか認識されないようです。

タイトルログインが実行されないサイトについて
カテゴリ: 1.xx互換スクリプト
記事No: 47 [関連記事]
投稿日: 2006/01/03(Tue) 11:19
投稿者snow
Auto Login Creatorにはお世話になっております。
早速ですが、
「アカウントやパスワードは自動入力されたが、ログインが実行されない」サイトが
複数ありました。
ご指摘されている部分はすべてクリアしてると思うのですが、
ログインボタンを押さないとログインできません。
アドバイスしていただけるところがございましたら、お教え願えませんか。
使用しているSleipnirのバージョンは1.66です。

エクスプレス予約
http://expresscard.jp/exp.nsf/member/index

hotmail
http://login.passport.net/uilogin.srf?lc=1041&id=2

なお、「My DoCoMo」や「biglobe」や「xrea」は問題なくオートログインできました。

タイトルRe: ログインが実行されないサイトについて
カテゴリ: 1.xx互換スクリプト
記事No: 48 [関連記事]
投稿日: 2006/01/03(Tue) 17:40
投稿者sleepy(webmaster)
snow さん、はじめまして。明けましておめでとうございます。

> 早速ですが、
> 「アカウントやパスワードは自動入力されたが、ログインが実行されない」サイトが
> 複数ありました。
> ご指摘されている部分はすべてクリアしてると思うのですが、
> ログインボタンを押さないとログインできません。
> アドバイスしていただけるところがございましたら、お教え願えませんか。
> 使用しているSleipnirのバージョンは1.66です。
>
> エクスプレス予約
> http://expresscard.jp/exp.nsf/member/index
>
> hotmail
> http://login.passport.net/uilogin.srf?lc=1041&id=2

こちらで試しに作成してみましたが、両者とも問題なく動作している
ようです(ログインボタンは自動的に押されました)。

何故 snow さんの環境で上手くいかないのかは正直よく分からないの
ですが、もしかしたらセキュリティ設定の問題かなにかではないでしょ
うか?
ちなみに私はJavaScript の実行と画像の再生のみ許可した状態で
Auto Login Creatorを実行し、自動ログインスクリプトを作成しました。
もし同じ条件で実行しているにもかかわらず上手くいかないのであれば、
URLアクションの機能で自動的にセキュリティ設定が変更されていないか
どうかなどもご確認ください。

上記の点と Auto Login Creator の使用方法を今一度ご確認の上、再度
試していただけると幸いです。

タイトル解決しました
カテゴリ: 1.xx互換スクリプト
記事No: 49 [関連記事]
投稿日: 2006/01/04(Wed) 14:48
投稿者snow
エクスプレス予約、hotmailともうまくいきました。
私のミスでした。
すいません。
下記に「右クリック」するように記載されていましたが、
普通に「クリック(左クリック)」していました。
> アカウントやパスワードは自動入力されたが、ログインが実行されなかったら
> -> 作成中二番目に表示されるダイアログで、ログインする際に押すボタンを右クリック
>    するよう指示されるのですが、これを実行しなかった可能性があります。

スクリプト部分では
var pageURL、var submitTag、var submitNumberの三箇所に違いがありました。

タイトル再度更新しました。(2006/03/05)
カテゴリ: 1.xx互換スクリプト
記事No: 66 [関連記事]
投稿日: 2006/03/06(Mon) 00:14
投稿者sleepy(webmaster)
Auto Login Creator 再度更新しました。

- SeaHorse用スクリプトの作成機能を追加。SeaHorseプラグイン自体がまだ
公式に公開されていないテスト版ということですので、あくまで暫定対応と
いうことで。

\plugins\extension\ に、SeaHorseExtension.fxが存在する場合、実行直後
に「SeaHorse用スクリプトとして作成しますか?」というダイアログが出ま
す。「はい」を選択するとSeaHorse用として作成されます。

SeaHorse用として作成すると、作成途中で「ボタンクリックまで自動化しま
すか?」という問い合わせダイアログが出ますが、ダイアログにも表示され
る通り、自動化は非推奨です。
SeaHorse用スクリプトは、ページが開かれた際必ず実行される為、ログイン
まで実行するようにしてしまうと、ログアウト後にログインページが表示さ
れるような作りのサイトで、延々とログインを繰り返してしまうとことになっ
てしまいます。また、複数のアカウントを使い分けているような場合にも困っ
たことになるでしょう。
一応、ページが開かれた後にCtrlキーを押しっぱなしにすることで、ログイ
ンを行なわないようにする機能も組み込んでおきましたが、ボタンクリック
の自動化は極力行なわないほうがよいと思います。
なお、ボタンクリックの自動化を行なわないことを選択した場合、フォーム
へアカウント・パスワードを入力し、(可能であれば)ログインボタンをア
クティブにする、という動作を行なうスクリプトが作成されます。

なお、SeaHorse用として作成した場合、通常作成される自動ログインスクリ
プトと以下の点が大きく異なります。

- \plugins\seahorse\ にスクリプトが作成されます。
- セキュリティ切り替え機能がありません(現時点のSeaHorseプラグインの
仕様では、タブIDの取得が手間なためです)。
- Shiftキーを押しながら実行することで可能な、データ初期化機能がありま
せん(お気に入りやリンクなどからページを開く動作は、Shiftキーを押しな
がら行なう場合が考えられる為、誤消去をしないようにとの考えからです)。

なお、SeaHorseプラグインの更新に伴い、作成したスクリプトが使用できなく
なる可能性もあると思いますので、そのあたりも考慮の上ご使用ください。

タイトルErrが発生して使用できない場合があります。
カテゴリ: 1.xx互換スクリプト
記事No: 69 [関連記事]
投稿日: 2006/03/22(Wed) 21:45
投稿者shige
JNBなどはうまく作動するのですがなぜか
getMainDoc -> 書き込みできません。

というアラートが出てしまう場合があります。
社内イントラなのでURIの記載ができないのですが

getMainDoc -> 書き込みできません。
というエラーがローカルにファイルをかけないものなのか
そのほかの原因なのかお教え願えないでしょうか?

タイトルRe: Errが発生して使用できない場合があります。
カテゴリ: 1.xx互換スクリプト
記事No: 70 [関連記事]
投稿日: 2006/03/24(Fri) 01:30
投稿者sleepy(webmaster)
shige さん、はじめまして。

> JNBなどはうまく作動するのですがなぜか
> getMainDoc -> 書き込みできません。
>
> というアラートが出てしまう場合があります。
> 社内イントラなのでURIの記載ができないのですが
>
> getMainDoc -> 書き込みできません。
> というエラーがローカルにファイルをかけないものなのか
> そのほかの原因なのかお教え願えないでしょうか?

この「書き込みできません。」というメッセージは、実行時エラーが
発生した時に出力されるものです。
主として権限の与えられていないファイル/ディレクトリに対して書き
込みを行おうとした際に発生するもので、それ故このようなメッセー
ジになっているのでしょうが、英語では「Permission Denied」であり、
本来は「(要求が)許可されませんでした」という意味のものです。

このメッセージについて調べてみた所、以下の様なページが見つかり
ました。

[InetSDK]windowのName属性取得で実エラー 70 書き込みできません
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B413060

タイトル及び概要のところに書かれている内容は今回ご指摘の状況とは
異なりますが、発生理由については今回の問題と同じではないかと考え
られます。

つまり、現象のところに書かれている通り、本来イントラネットゾーン
であるはずのサイトをインターネットゾーンと誤認識し、それが原因で
セキュリティ仕様にひっかかってエラーが出ている、ということになり
ます。

この手のエラーはスクリプト側では対処できませんので、回避策として
は上記ページに書かれている方法(回避策bの方が無難だと思います)
を試してみるぐらいしか無い、ということになります。(社内イントラ
での問題とのことで、回避策を試す=会社のPCの設定に変更を加えると
いうことになりますので、試す場合はあらかじめシステム管理者の方に
許可を取っておいたほうが良いかと思います)。

申し訳ありませんが、以上よろしくお願いします。

タイトルRe: Errが発生して使用できない場合があります。
カテゴリ: 1.xx互換スクリプト
記事No: 71 [関連記事]
投稿日: 2006/03/27(Mon) 14:27
投稿者shige
対応を試して見ます。
ありがとう御座いました。

タイトルUserAction Extension
カテゴリ: UserActionスクリプト
記事No: 85 [関連記事]
投稿日: 2006/06/23(Fri) 23:24
投稿者Mr.Jazzy
先日Fenrir Extensions Centerで公開されたプラグイン、
UserAction Extensionを使ってAuto Login Creatorで作成した任意のログインページを
マウスジェスチャーで実行してみました。
 
すると、アウトプット欄に
「Error: Script error.
   Description: 'WScript' は宣言されていません。」
とのエラーが表示されました。
 
Fenrir Extensions Centerの説明によると、
「[Sleipnir インストールフォルダ]\plugins\scripts に
作成したスクリプトファイルを配置してください」と記載されていたので、
Auto Login Creatorと任意のログオンページの両方を上記フォルダにコピーし、
その両方をマウスジェスチャーで実行したのですが、やはり同じ結果でした。
 
この問題はどうすれば解決できるでしょうか?

タイトルRe: UserAction Extension
カテゴリ: UserActionスクリプト
記事No: 86 [関連記事]
投稿日: 2006/06/25(Sun) 14:01
投稿者sleepy(webmaster)
Mr.Jazzy さん、はじめまして。

> 先日Fenrir Extensions Centerで公開されたプラグイン、
> UserAction Extensionを使ってAuto Login Creatorで作成した任意のログインページを
> マウスジェスチャーで実行してみました。
>  
> すると、アウトプット欄に
> 「Error: Script error.
>    Description: 'WScript' は宣言されていません。」
> とのエラーが表示されました。
>  
> Fenrir Extensions Centerの説明によると、
> 「[Sleipnir インストールフォルダ]\plugins\scripts に
> 作成したスクリプトファイルを配置してください」と記載されていたので、
> Auto Login Creatorと任意のログオンページの両方を上記フォルダにコピーし、
> その両方をマウスジェスチャーで実行したのですが、やはり同じ結果でした。
>  
> この問題はどうすれば解決できるでしょうか?

ご質問の件ですが、UserAction Extension用のスクリプトは、旧来の(1.xx互換の)
スクリプトとは仕様・記述法が異なっています。そのため、Auto Login Creatorや
それで作成したログインスクリプトなど、旧来のスクリプトをそのままUserAction
Extension用のディレクトリにコピーしても、UserActionとしては使えません。

これを解決するには、旧来のスクリプトをUserAction Extension用に書き直すか、
もしくは旧来のスクリプトを実行する機能を持ったUserAction用スクリプトを作成
する、といった方法が考えられます。

後者の方法であれば、拙作の「ユーザーツール登録.js」というスクリプトが使える
と思います(当掲示板内の記事No.79「ユーザーツール登録.js」から始まるツリー
をご覧下さい)。

「ユーザーツール登録.js」自体は旧来の仕様で書かれたスクリプトですが、これは他
のアプリケーションやスクリプトを実行するためのUserAction(スクリプト)を作成
するスクリプトです。Auto Login Creatorのような感じでUserActionを作成するスク
リプトだと思っていただければ分かりやすいのではないかと思います。

「ユーザーツール登録.js」はUserAction ExtensionがまだTest配布しかされていな
かった時に作成したものなので、現在公開されている正式版の仕様に完全に対応して
いるとは言えないものなのですが、こちらで試してみた所、特に問題なく使えるよう
です。

以上、参考になりましたでしょうか。
なにか分からないことがありましたら、またご質問ください。

タイトルRe: UserAction Extension
カテゴリ: UserActionスクリプト
記事No: 87 [関連記事]
投稿日: 2006/06/26(Mon) 14:50
投稿者Mr.Jazzy
ご回答ありがとうございました。
「ユーザーツール登録.js」を使ったところ、問題なく動作しました。
ありがとうございました。

タイトル再度更新しました。(2006/06/30)
カテゴリ: 1.xx互換スクリプト
記事No: 88 [関連記事]
投稿日: 2006/06/30(Fri) 18:56
投稿者sleepy(webmaster)
Auto Login Creator 再度更新しました。

SeaHorseスクリプトの作成機能を更新。SeaHorse正式版用ログインスクリプト
を作成できるようにしました(プラグインの仕様が大きく変わったため、Test
版のSeaHorseプラグインでは動作しなくなりました。ご了承ください)。

\plugins\extension\ に、SeaHorseExtension.fxが存在する場合、フォームの
情報を取得後「SeaHorse用スクリプトとして作成しますか?」というダイアロ
グが出ます(暫定対応版と表示されるタイミングが変わりました)。
「はい」を選択するとSeaHorse用として作成されますので、以後表示されるダイ
アログに従って作成を進めてください。

なお、従来の1.xx互換スクリプトとSeaHorseスクリプトの仕様の違いから、今
の所、従来版のスクリプトでログインできる場合でもSeaHorse版ではログイン
に失敗する、といったことが起こり得ると思いますが、これはそんなものだと
思っておいてください。今後改善していけるようであれば改善していきます。

SeaHorse用スクリプトの作成機能は必要ないと思われる方は、Script.iniに以下
の項目を追加しておいてください。「SeaHorse用スクリプトとして〜」のダイア
ログが表示されなくなります。

[ALC_config]
selectModeDlg=1

「説明など。」(記事No.3)に、これらの設定項目についての説明を加筆して
おきましたので、興味のある方はご参照ください。

タイトルVer2.48でお気に入りからのAuto Loginの方法
カテゴリ: 1.xx互換スクリプト
記事No: 135 [関連記事]
投稿日: 2006/10/24(Tue) 14:28
投稿者ゆう
最新のSleipnir Ver2.48を使ってみたのですが、
1.66の時のように記事112の方法 http://sleepy.dw.land.to/bbs/wforum.cgi?&no=2&mode=allread#NO112 で
お気に入りからAutoLoginCreatorを使う事が出来ません。

私の場合scriptsフォルダの下にAutoLoginフォルダを作りjsファイルを保存しています。
URLに about:blank<script=\AutoLogin\xxx.js> として1.66の時は普通に利用できていました。
2.48の場合<script=\AutoLogin\xxx.js>の部分をどのように変更すればいいのでしょうか?
「Sleipnir オプション|スクリプト|読み込み完了時スクリプトを実行する」のチェックは有効にしています。

それと1.66の時に作成したxxx.js、Script.iniを2.48に受け継ぐ事は出来ないのでしょうか?
試してみましたが上手くいかなかったです。

タイトルRe: Ver2.48でお気に入りからのAuto Loginの方法
カテゴリ: 1.xx互換スクリプト
記事No: 137 [関連記事]
投稿日: 2006/10/28(Sat) 18:16
投稿者fufu

自分も <script=> 形式は非常に重宝していたのですが、残念ながら Slepinir2 では
いまだ実装されていません。
今までブックマークしていた多くのものが全てアドレスエラーになるのはちょっと
既存ユーザーとして納得いかないですが、無料で使わせてもらってるものなので
仕方ないと諦めてます。
で、その代わりにこの AutoLoginCreator が SeaHource プラグイン用スクリプトを
作成してくれます。(sleepyさんに感謝!)ちょっと仕組みは変わりますが、同じ
ような完全自動ログインはできますよ。


タイトルRe: Ver2.48でお気に入りからのAuto Loginの方法
カテゴリ: 1.xx互換スクリプト
記事No: 140 [関連記事]
投稿日: 2006/10/29(Sun) 14:57
投稿者sleepy(webmaster)
ゆうさん、はじめまして。レスが遅くなり申し訳ないです。

fufuさんがおっしゃっている通り、2.xxでは<script=> 形式は未実装です。
かわりにSeaHorseプラグインという、特定のページが開かれた際にスクリプト
を自動実行してくれるプラグインが公開されており、Auto Login Creatorで
このプラグイン用のスクリプトを作成することが可能です。

以下が導入方法になりますので、ご参考ください。

1.タブブラウザ Sleipnir プラグイン|Fenrir Extensions Center
  http://extensions.tabbrowser.jp/plugins/index.php
  にて、SeaHorseプラグインをダウンロード。
  ダウンロード完了後、Sleipnirを再起動。

2.最新版のAuto Login Creatorで、自動実行を行ないたいサイトのログイン
  スクリプトを作成。途中でSeaHorse用スクリプトとして作成するかを聞か
  れるのでYESを選択。あとはダイアログに従ってスクリプトを作成。

3.Sleipnirオプション > 拡張機能 > SeaHorseを開き、再読み込みを実行。

これで、作成時に設定した「スクリプトが動作するURL」が開かれた場合に、
自動的にスクリプトが実行されるようになります。お試しください。

# fufuさん、フォローありがとうございました。

タイトルRe: Ver2.48でお気に入りからのAuto Loginの方法
カテゴリ: 1.xx互換スクリプト
記事No: 147 [関連記事]
投稿日: 2006/11/05(Sun) 17:03
投稿者ゆう
遅くなりました。
私にとってSleipnirの大きな利点であり絶対に欠かせないのがAuto Login Creatorだったので
どうしようかと思っていましたが対策があるのですね。
助かりました。
これからも重宝させていただきます。

タイトル再度更新しました。(2006/10/29)
カテゴリ: 1.xx互換スクリプト
記事No: 139 [関連記事]
投稿日: 2006/10/29(Sun) 14:56
投稿者sleepy(webmaster)
Auto Login Creator 再度更新しました。

SeaHorse用ログインスクリプト作成時に、作成したスクリプトが動作するURL
(つまり、@includeの値)を設定するダイアログが表示されるようにしました。
なお、デフォルトの値はスクリプトを作成したURLになります。

この機能が必要ないと思われる方は、Script.iniに以下の項目を追加しておいて
ください。設定ダイアログが表示されず、常にデフォルトの値を使用するように
なります(つまり、ひとつ前のバージョンと同じ動作になります)。

[ALC_config]
showIncludeDlg=1

その他の使用方法は変わっていません。記事No.3をご参照下さい。

タイトルフォームとログイン
カテゴリ: 1.xx互換スクリプト
記事No: 182 [関連記事]
投稿日: 2007/01/28(Sun) 21:07
投稿者もぐもぐ

こんな良い物があるなんて、最近知りました
ロボフォームやID Managerより重宝してます
素人なりに、いろいろやったんですが、どうしても、ログインしたのに、【ログインできませんでした】とか【フォームにアクセスできませんでした】と出てしまいます
いろんな所で起こるんですが、yahooのトップページが特に多いです
Sleipnir2.5.1を使ってるんですが、Sleipnirの設定で対応出来るのでしょうか?
それとも、jsを書き直して、ログインとフォームのエラーメッセージを出さないようにするには、何処から何処を変更とか削除すればいいのでしょうか?

お解りの方、宜しくお願いします


タイトルRe: フォームとログイン
カテゴリ: 1.xx互換スクリプト
記事No: 184 [関連記事]
投稿日: 2007/01/30(Tue) 01:42
投稿者sleepy(webmaster)
もぐもぐさん、はじめまして。

> 素人なりに、いろいろやったんですが、どうしても、ログインしたのに、【ログインできませんでした】とか【フォームにアクセスできませんでした】と出てしまいます
> いろんな所で起こるんですが、yahooのトップページが特に多いです
> Sleipnir2.5.1を使ってるんですが、Sleipnirの設定で対応出来るのでしょうか?
> それとも、jsを書き直して、ログインとフォームのエラーメッセージを出さないようにするには、何処から何処を変更とか削除すればいいのでしょうか?

「ログインしたのに」ということは、ログイン自体は成功して
いるということでしょうか。
もしそうであれば、他のログイン機能も同時に有効になってい
るということはないでしょうか(例えばサイトの機能として用
意されているログイン機能が有効になっていたり、また通常の
ログインスクリプトとSeaHorse用のログインスクリプトが同時
に実行されていたりなど)。
その場合、他のログイン機能が働かない状態にして試してみて
ください。

タイトルRe: フォームとログイン
カテゴリ: 1.xx互換スクリプト
記事No: 185 [関連記事]
投稿日: 2007/01/30(Tue) 04:07
投稿者ネットへの書き込みchoー久々
ちょっと、通りすがりついでに・・・私の場合ですが
Sleipnirで、Yahoo Japan の Top page
http://www.yahoo.co.jp/
へ行きます。
セキュリティの設定で、JavaScriptを無効にしている場合は、「JavaScriptの実行を許可」にして下さい。
そして、右上部にある「ログイン」をクリックすると
https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp
へ導かれると思いますが、そこから
Auto Login Creator で、Yahooのログインスクリプトを作成して
IDやパスワードを設定してスクリプトを作成してみて下さい。

私は、それでうまくいってますが・・・。

Yahooは、ログイン場所が、各サービスでいろいろ違っているため
私の場合、半年ほど前には、Auto Login Creator を使用しての、YahooへのログインするURIを
Topページや、My Yahoo!、Yahoo!メールからの「ログインページ」・・・・・・E.T.C.
どこから、Yahooのログインスクリプトを作成したらいいのか
悩んで、いろいろ試してみていた事もありまして、この掲示板で聞こうかとも思っておりました。

でも、今日現在、私は
https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp
から、Auto Login Creator で、Yahooのログインスクリプトを作成して、うまくいってます。

私は、ロボフォームは、使用した事はなく、メインはID Managerを使っております。
Auto Login Creator は、特に頻繁に使用するサイト、Yahoo やGoogleに使用してます。
Sleipnirも、 sleepyさんが提供して下さってる、Auto Login Creator も大変重宝させてもらってますが

出来る事なら、もう少し、ビギナーが必要な情報をわかりやすく得られるようになってくれたら・・
などと思う今日この頃でした。

ちょっと酔っ払ってますので
文章おかしいカモ?しんないけど
参考になったらGoodッス

それでわ

タイトルRe: フォームとログイン
カテゴリ: 1.xx互換スクリプト
記事No: 186 [関連記事]
投稿日: 2007/01/30(Tue) 18:55
投稿者もぐもぐ
ネットへの書き込みchoー久々さん
おお!
これは上手くいきますね^^
スクリプトを作る場所を変えるってのは、盲点でした^^;
なんの知識も無い為、弄りながら独学で、この手の物を覚えようと、必死でして
参考になりました
有り難うございます
スクリプトは、魔法の呪文ですね
エラーメッセージを出さないようにするには、どうすればいいのかなぁ

タイトルRe: フォームとログイン
カテゴリ: 1.xx互換スクリプト
記事No: 187 [関連記事]
投稿日: 2007/01/30(Tue) 19:12
投稿者もぐもぐ
sleepyさん
初めまして
AutoLoginCreator 大変重宝してます
す・すいません
二人分の返信を、書く前に投稿してしまいました^^;
そうです、ログイン成功後に、【ログインできませんでした】とか【フォームにアクセスできませんでした】と出てしまって...
(SeaHorse用に作りますか)で作ってしまうと、エラーが出るんですよねぇ
SeaHorse用に作らず、スクリプトフォルダに直接作れば、大丈夫だったかと
SeaHorse用に作って、SeaHorseを無効にすると、自動ログインは出来ないですよね
もう少し試してみます

今後も、AutoLoginCreatorのバージョンアップを期待してます

タイトルRe: フォームとログイン
カテゴリ: 1.xx互換スクリプト
記事No: 200 [関連記事]
投稿日: 2007/03/09(Fri) 16:09
投稿者プヨぷよ
はじめまして。AutoLoginCreatorを1.66の頃から愛用させて頂いてます。
 
> 「ログインしたのに」ということは、ログイン自体は成功して
> いるということでしょうか。
> もしそうであれば、他のログイン機能も同時に有効になってい
> るということはないでしょうか(例えばサイトの機能として用
> 意されているログイン機能が有効になっていたり、また通常の
> ログインスクリプトとSeaHorse用のログインスクリプトが同時
> に実行されていたりなど)。
> その場合、他のログイン機能が働かない状態にして試してみて
> ください。

この件ですが、私自身はWSH用で作成して利用してるので見当違いかもしれませんが、
ログイン後とログイン前でURIが変化しないようなサイトだと再現しそうな気がします。
例えば、mixiのホーム、http://mixi.jp/home.plだとログイン前だと
ログインフォームだけのページが表示されるのでここでSeaHorse用スクリプトを作成した場合、
該当URIアクセスするとログインは成功しますがログイン後もURIがマッチするのでもう一度実行され、
ログイン済みなのでログインフォームがみつからないという状況になるような気がします。
もし対策済みでしたらすいません。

タイトルRe: フォームとログイン
カテゴリ: 1.xx互換スクリプト
記事No: 201 [関連記事]
投稿日: 2007/03/16(Fri) 20:20
投稿者sleepy(webmaster)
プヨぷよさん、はじめまして。公式フォーラムでの活動ご苦労さま
です。レスが非常に遅くなってしまい申し訳ありません。

> この件ですが、私自身はWSH用で作成して利用してるので見当違いかもしれませんが、
> ログイン後とログイン前でURIが変化しないようなサイトだと再現しそうな気がします。
> 例えば、mixiのホーム、http://mixi.jp/home.plだとログイン前だと
> ログインフォームだけのページが表示されるのでここでSeaHorse用スクリプトを作成した場合、
> 該当URIアクセスするとログインは成功しますがログイン後もURIがマッチするのでもう一度実行され、
> ログイン済みなのでログインフォームがみつからないという状況になるような気がします。

ご指摘ありがとうございます。おっしゃる通りですね。
当初は他のログイン機能との衝突なのではないかと考えていたので
すが、その後検証中に、ページが開かれた際に同じスクリプトが二
度実行されているように見受けられる場合があることに気付き、こ
の現象への対策はなにか無いだろうか、とは思案していたのですが、
そもそもURIに変化が無い場合もある、ということには全く思い当り
ませんでした。

別に特殊な状況でなくても重複実行されることはありうる、という
事がわかりましたので、とりあえず、SeaHorse用として作成した場
合はエラーをダイアログで表示するのは止めにする(代わりにアウ
トプットに出力する)、という方法で回避することにしようと思い
ます。

利用者の皆様にはご迷惑をおかけしますが、更新までもうしばらく
お待ちいただけますでしょうか。

タイトル再度更新しました。(2007/03/21)
カテゴリ: 1.xx互換スクリプト
記事No: 204 [関連記事]
投稿日: 2007/03/22(Thu) 01:55
投稿者sleepy(webmaster)
Auto Login Creator 再度更新しました。

SeaHorse用ログインスクリプトとして作成した場合、ログイン失敗時のメッセー
ジはアウトプットに出力するようにしました。ここのところよく報告されていた、
ログインに成功したのにエラーダイアログが表示される問題への対策です。
アウトプットの開閉状態は変更しないので、エラーメッセージが出力されても、
邪魔にはならなくなっていると思います。

その他の使用方法は変わっていません。記事No.3をご参照下さい。

タイトルお詫びと再更新のお知らせ
カテゴリ: 1.xx互換スクリプト
記事No: 205 [関連記事]
投稿日: 2007/03/22(Thu) 12:49
投稿者sleepy(webmaster)
昨晩の更新時、動作チェックに用いた未完成のスクリプトを間違えて貼り付けて
しまいました。

本来貼るはずだった完成版との相違点は、ログイン失敗時に出力するメッセージ
の文言ぐらいですので、そのままお使いいただいても動作に問題はないのですが、
記事No.2は再度更新し、完成版のスクリプトに差し替えさせていただきました。
スクリプトのバージョンは(2007/03/22)版とし、昨晩貼った(2007/03/21)版
との違いが確認できるようにしてあります。

以上、本当に申し訳ございませんでした。

タイトル度々すいません
カテゴリ: 1.xx互換スクリプト
記事No: 206 [関連記事]
投稿日: 2007/03/23(Fri) 21:06
投稿者もぐもぐ
更新お疲れ様です
この前までXPを使ってましたが、VISTAにしてから、エラーが出るようになりました
エラー内容

行: 3
文字: 10
エラー: `;`がありません
コード: 800A03EC
ソース: Microsoft jscript コンパイルエラー

エラーはちょっと違うかもしれませんが、これって設定の問題なんでしょうか?

タイトルRe: 度々すいません
カテゴリ: 1.xx互換スクリプト
記事No: 207 [関連記事]
投稿日: 2007/03/25(Sun) 20:22
投稿者sleepy(webmaster)
もぐもぐさん、こんにちは。

> この前までXPを使ってましたが、VISTAにしてから、エラーが出るようになりました
> エラー内容
> 
> 行: 3
> 文字: 10
> エラー: `;`がありません
> コード: 800A03EC
> ソース: Microsoft jscript コンパイルエラー

エラーが出るのは、Auto Login Creator自体でしょうか?それとも作成した
スクリプトのほうでしょうか?

手元にVista RC1の環境があったので、そこにSleipnir2.5.10及びAuto Login
Creator最新版を導入し、テストを行ってみましたが、いずれの場合もこちら
ではエラーは再現しませんでした。

> エラーはちょっと違うかもしれませんが、

この文の意味がよくわからないのですが、先に引用したエラーの通りであれば、
設定の問題ではなく、文字通り必要なセミコロンが抜けているのだと思います。
作成したスクリプトでエラーが出ている場合は的外れになるかもしれませんが、
もしAuto Login Creator自体でエラーが出るのであれば、もぐもぐさんが掲示
板の記事からスクリプトを作成(更新)する際、作業のどこかで脱字が発生し
たということはないでしょうか?試しにもう一度、この作業をやり直してみる
とどうでしょうか。

タイトルもう少しなのに
カテゴリ: 1.xx互換スクリプト
記事No: 208 [関連記事]
投稿日: 2007/03/25(Sun) 22:15
投稿者もぐもぐ
はい
エラーはAuto Login Creatorを押した時に出ました
また新しくjsを作り直した所、今度はちゃんと出来そうでしたが、最後のiniの保存に失敗します

error:
createscriptfile->writescript->書き込みできません
と、なってしまいます

sleepyさんのRC1は、UACは切ってあるのでしょうか?

タイトルRe: もう少しなのに
カテゴリ: 1.xx互換スクリプト
記事No: 209 [関連記事]
投稿日: 2007/03/25(Sun) 22:54
投稿者もぐもぐ
すいません 書き忘れました
これって、C:\Program Files\Fenrir & Co\Sleipnir\settings\ユーザー名のiniに保存してるのですか?
settingsファイルが、C:\ユーザー\Users\PCUser\AppData\Roaming\Fenrir & Co\Sleipnirにあるんですが^^;

タイトルRe: もう少しなのに
カテゴリ: 1.xx互換スクリプト
記事No: 210 [関連記事]
投稿日: 2007/03/27(Tue) 02:38
投稿者sleepy(webmaster)
> また新しくjsを作り直した所、今度はちゃんと出来そうでしたが、最後のiniの保存に失敗します
> 
> error:
> createscriptfile->writescript->書き込みできません
> と、なってしまいます

このエラーメッセージはiniへのデータ記録失敗を示すものではありません。
スクリプトを作成しようとしているディレクトリに必要な権限が設定されて
いない為、ファイルの作成が拒否されたというエラーです。

確認のため、Sleipnirをインストーラで導入しなおしてみた所、症状が再現
されました。

これは、〜\scripts\、及び〜\plugins\seahorse\における、Usersグループ
のアクセス権限をフルコントロールに変更することで回避できます(〜は
Sleipnirをインストールしたディレクトリに読み替えてください。以下も同
様)。
全ユーザにフルコントロールを与えるのは抵抗がある、という場合は、もぐ
もぐさんのユーザアカウントを各ディレクトリに追加し、それにフルコント
ロールを与える、という方法でも構いません。
また、今回は関係ありませんが、UserActionスクリプトも良く利用されてい
るのであれば、同様の作業を〜\plugins\scripts\に対しても行っておくと
良いかもしれません。

なお、もしアクセス権限の変更の仕方が分からない場合は、〜\documents\
にあるForVista.txtが参考になると思います。

> sleepyさんのRC1は、UACは切ってあるのでしょうか?

切らずに検証を行いました。以上は全てUACを有効にしている前提での話です。

> これって、C:\Program Files\Fenrir & Co\Sleipnir\settings\ユーザー名のiniに保存してるのですか?
> settingsファイルが、C:\ユーザー\Users\PCUser\AppData\Roaming\Fenrir & Co\Sleipnirにあるんですが^^;

そもそもiniは今回関係ないとは思いますが一応お答えしておきますと、APIが
適切な設定保存場所に対して動作を行ってくれます。私もAppData以下に設定
を保存するようにして検証を行いましたが、データはそちらの方に正しく記録
されていました。

タイトルRe: もう少しなのに
カテゴリ: 1.xx互換スクリプト
記事No: 211 [関連記事]
投稿日: 2007/03/27(Tue) 20:00
投稿者もぐもぐ
詳しい説明、有難うございます
フルコントロールに変更にしたら、無事使えるようになりました
 AutoLoginCreatorに関係無いと思いますが、何度かYAHOOのトップページで、ユーザーIDの書き込み?を要求されました
あ・もう出なくなったので、気にしないで下さい^^;

いろいろと、ありがとうございました

タイトル使えないサイト
カテゴリ: 1.xx互換スクリプト
記事No: 289 [関連記事]
投稿日: 2007/10/07(Sun) 02:59
投稿者もぐもぐ

Google Analyticsのログインページで、AutoLoginCreator.js が使えません^^;
Google AdSense の方では作れますが、sleepy様か、原因をご存知の方、コメントを頂けませんでしょうか?

エラー内容
スクリプト作成失敗
入力フォームの存在するドキュメントを習得できません

OS Vista
Sleipnir 2.5.17
SeaHorse使用
UserAction Extension使用


タイトルRe: 使えないサイト
カテゴリ: 1.xx互換スクリプト
記事No: 292 [関連記事]
投稿日: 2007/10/14(Sun) 01:57
投稿者sleepy(webmaster)
もぐもぐさん、こんにちは。レスが遅くなり申し訳ないです。

> Google Analyticsのログインページで、AutoLoginCreator.js が使えません^^;
> Google AdSense の方では作れますが、sleepy様か、原因をご存知の方、コメントを頂けませんでしょうか?

Google Analyticsのログインページを確認してみたところ、ログインフォームは
iframeを使用して、ページトップとは異なるドキュメントを表示しているようです。
その際、セキュリティ上の制限により、ログインフォームの存在するドキュメント
の取得に失敗しています。

このような現象が発生するページでスクリプトを作成したい場合、ログインフォーム
の存在するドキュメントのURLを右クリック→プロパティなどで調べ、そのURLを新規
ウィンドウとして開き、そこでAuto Login Creatorを実行してみてください。
たいていの場合は、この方法でうまくいくはずです。
(なお、Google Analyticsの場合は、Auto Login Creator実行時にJavaScriptの実行
を許可した状態にしておくとよいようです。)

タイトルRe: 使えないサイト
カテゴリ: 1.xx互換スクリプト
記事No: 295 [関連記事]
投稿日: 2007/10/15(Mon) 18:07
投稿者もぐもぐ

うまく出来ました
sleepyさん、ありがとうございました


タイトル自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 324 [関連記事]
投稿日: 2007/11/16(Fri) 12:55
投稿者okb
2.6に乗り換え、AutoLoginCreaterで作成したスクリプトで動作できません。
自動入力はされるのですが、ボタンをクリックしてくれません。
説明にありました「スクリプトの実行」等はチェックしました。
作成されたスクリプトは、下記の通りです。

ついでに、お気に入りからスクリプトを実行するときのURLの書き方は、1.66と同じでよろしいでしょうか?

// 自動ログイン : カブドットコム証券
// generated by "Auto Login Creator(2007/03/22)"

// このスクリプトの改変は自由に行っていただいてかまいません。

// 任意の値を設定してください。
var timeout       = 20;        // タイムアウトまでの待ち時間(単位:秒)
var waitforV2     = 2;         // Sleipnir2対策・セキュリティ切替実行までの待ち時間(単位:秒)
var savePassword  = true;        // パスワードを Script.ini に保存する:true、保存しない:false
var accountPromptName_0  = "ユーザID";        // アカウント入力ダイアログの項目名
var passwordPromptName_0 = "パスワード";        // パスワード入力ダイアログの項目名
// 以下、ページを開く際のセキュリティ設定。作成時に設定し忘れた場合変更して下さい。
// trueがオン(ログイン時に必要)、falseがオフ(ログイン時特に必要なし)です。
var blnScr        = true;        // JavaScriptの実行
var blnJav        = true;        // Javaの実行
var blnAct        = true;        // ActiveXの実行
var blnAdl        = false;        // ActiveXのダウンロード
var blnPic        = true;        // 画像の再生
var blnSou        = true;        // サウンドの再生
var blnVid        = true;        // ビデオの再生
// 設定ここまで。

var Slpnr = new ActiveXObject("Sleipnir.API");
var Arg = WScript.Arguments;
var document;
var window;
var id;
var resetIniData  = Slpnr.ShiftDown;
var t;

var loginPage     = "s10kabucojp";
var pageURL       = "https://s10.kabu.co.jp/_mem_bin/members/login.asp?/members";
var accountTag_0  = 0;
var passwordTag_0 = 1;
var checkTag_0    = 2;
var checkTag_1    = 6;
var uncheckTag_0  = 3;
var formNumber    = 0;
var submitTag     = "INPUT";
var submitNumber  = 1;

var account_0     = "";
var password_0    = "";

Main();

window = null;
document = null;
Arg = null;
Slpnr = null;

function Main(){
    var ArgChk = false;
    if (Arg.length != 0){
        try {
            if (Slpnr.GetWindowObject(Arg(0)).location.href == pageURL){
                ArgChk = true;
            }
        }
        catch(error){
        }
    }
    if (ArgChk){
        id  = Arg(0);
    }
    else if (Slpnr.URL != pageURL){
        id  = Slpnr.NewWindow(pageURL, true);
    }
    else {
        id = Slpnr.GetDocumentID(Slpnr.ActiveIndex);
    }
    // Sleipnir2対策ココカラ
    if (Slpnr.Version >= 200){
        t = 0;
        do {
            WScript.Sleep(500);
            t += 500;
        } while ((Slpnr.IsBusy(id)) && (t < (timeout * 1000)));
        if (t >= (timeout * 1000)){
            Quit();
            return false;
        }
        else {
            WScript.Sleep(waitforV2 * 1000);
        }
    }
    // Sleipnir2対策ココマデ
    if ((blnScr && !Slpnr.IsJavaScriptEnabled(id)) || (blnJav && !Slpnr.IsJavaEnabled(id))
     || (blnAct && !Slpnr.IsRunActiveXEnabled(id)) || (blnAdl && !Slpnr.IsDownloadActiveXEnabled(id))
     || (blnPic && !Slpnr.IsPictureEnabled(id)) || (blnSou && !Slpnr.IsSoundEnabled(id))
     || (blnVid && !Slpnr.IsVideoEnabled(id))){
        Slpnr.SetSecurity(id, blnScr, blnJav, blnAct, blnAdl, blnPic, blnSou, blnVid);
    }

    // ドキュメント取得を待つ。
    t = 0;
    do {
        WScript.Sleep(500);
        t += 500;
    } while ((document = Slpnr.GetDocumentObject(id)) == null && (t < (timeout * 1000)));
    if (t >= (timeout * 1000)){
        Quit();
        return false;
    }

    window = document.parentWindow;

    if (!resetIniData){
        // 設定を読み込む。
        account_0  = Slpnr.GetProfileStringCipher("AutoLogin_" + loginPage, "Account_0", "");
        password_0 = Slpnr.GetProfileStringCipher("AutoLogin_" + loginPage, "Password_0", "");
    }

    // ユーザーから入力を促す。
    if (account_0 == "") {
        account_0 = window.prompt(accountPromptName_0 + "を入力して下さい(値はScript.ini に保存されます)。", "");
        if (account_0 == null){
            account_0 = "";
        }
        else {
            account_0 = String(account_0.match(/^[^\x00]*/));
        }
        Slpnr.WriteProfileStringCipher("AutoLogin_" + loginPage, "Account_0", account_0);
    }
    if (savePassword){
        if (password_0 == ""){
            try {
                password_0 = Slpnr.MaskedInputBox(passwordPromptName_0 + "を入力してください(値は Script.ini に保存されます)。", "");
            }
            catch(error){
                password_0 = window.prompt(passwordPromptName_0 + "を入力してください(値は Script.ini に保存されます)。", "");
            }
            finally {
                if (password_0 == null){
                    password_0 = "";
                }
                else {
                    password_0 = String(password_0.match(/^[^\x00]*/));
                }
                Slpnr.WriteProfileStringCipher("AutoLogin_" + loginPage, "Password_0", password_0);
            }
        }
    }
    else{
        if (password_0 != "" || resetIniData){
            if (window.confirm("Script.ini にこのページのパスワードが保存されている場合、削除します。\n" +
                               "よろしいですか?(OK:削除する、キャンセル:削除しない)")){
                try {
                    Slpnr.DeleteProfileKey("AutoLogin_" + loginPage, "Password_0");
                }
                catch(error){
                    Slpnr.WriteProfileString("AutoLogin_" + loginPage, "Password_0", "");
                }
            }
        }
        try {
            password_0 = Slpnr.MaskedInputBox(passwordPromptName_0 + "を入力してください", "");
        }
        catch(error){
            password_0 = window.prompt(passwordPromptName_0 + "を入力してください", "");
        }
        finally {
            if (password_0 == null){
                password_0 = "";
            }
            else {
                password_0 = String(password_0.match(/^[^\x00]*/));
            }
        }
    }

    while (!DoLogin(document)){
        if ((t > (timeout * 1000)) || Slpnr.GetDocumentObject(id) == null){
            Slpnr.MessageBox("AutoLogin Error : カブドットコム証券.js\nログインできませんでした。");
            break;
        }
        WScript.Sleep(500);
        t += 500;
    }
}

function DoLogin(objDoc){
    var document = objDoc;
    try {
        document.forms(formNumber).elements(accountTag_0).value = account_0;
        document.forms(formNumber).elements(passwordTag_0).value = password_0;
        document.forms(formNumber).elements(checkTag_0).checked = true;
        document.forms(formNumber).elements(checkTag_1).checked = true;
        document.forms(formNumber).elements(uncheckTag_0).checked = false;
        document.all.tags(submitTag).item(submitNumber).click();
        return true;
    }
    catch(error){
        return false;
    }
}

function Quit(){
    Slpnr.MessageBox("AutoLogin Error : カブドットコム証券.js\nタイムアウトしました。");
}

タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 325 [関連記事]
投稿日: 2007/11/17(Sat) 10:00
投稿者
助けてください。
オートログインさえ動作すれば、1.66から2.6へ移行できるのですが…。
説明にあった下記現象で困っています。

アカウントやパスワードは自動入力されたが、ログインが実行されなかったら
-> 作成中二番目に表示されるダイアログで、ログインする際に押すボタンを右クリック
   するよう指示されるのですが、これを実行しなかった可能性があります。
   また、ログインするのにJavaScriptの実行が必要なページなのに、セキュリティの
   「スクリプトの実行」を許可しないまま作成を開始してしまった可能性もあります。
   正しい手順で再度作成し直してみてください。

タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 326 [関連記事]
投稿日: 2007/11/17(Sat) 19:18
投稿者koba
横レスで的外れなことを言っていたら申し訳ないですが・・・

> 作成中二番目に表示されるダイアログで、ログインする際に押すボタンを右クリック
> するよう指示されるのですが、これを実行しなかった可能性があります。

40行目: var submitNumber  = 1;
ここ 1 ではなく 5 にすれば上手くいくのではないでしょうか。

> また、ログインするのにJavaScriptの実行が必要なページなのに、セキュリティの
> 「スクリプトの実行」を許可しないまま作成を開始してしまった可能性もあります。

14行目: var blnScr        = true;        // JavaScriptの実行
JavaScriptの実行は true となっているので問題ないと思います。

タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 328 [関連記事]
投稿日: 2007/11/17(Sat) 20:06
投稿者okb
> 40行目: var submitNumber  = 1;
> ここ 1 ではなく 5 にすれば上手くいくのではないでしょうか。
5にすれば、ログインできました。
わたしはスクリプトの知識はありませんが、1.66で使っていたcreaterは,このような問題なく利用できました。

これってバグなんですか?
1と5の違いは何なんでしょう?

いづれにしろ、うまくいき感謝です。

タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 327 [関連記事]
投稿日: 2007/11/17(Sat) 20:02
投稿者sleepy(webmaster)
okbさん、はじめまして。

> 助けてください。
> オートログインさえ動作すれば、1.66から2.6へ移行できるのですが…。
> 説明にあった下記現象で困っています。

> アカウントやパスワードは自動入力されたが、ログインが実行されなかったら
> -> 作成中二番目に表示されるダイアログで、ログインする際に押すボタンを右クリック
>    するよう指示されるのですが、これを実行しなかった可能性があります。
>    また、ログインするのにJavaScriptの実行が必要なページなのに、セキュリティの
>    「スクリプトの実行」を許可しないまま作成を開始してしまった可能性もあります。
>    正しい手順で再度作成し直してみてください。

こちらで検証してみましたが、作成時に操作を間違われた可能性が高いです。
上記引用の、

> -> 作成中二番目に表示されるダイアログで、ログインする際に押すボタンを右クリック
>    するよう指示されるのですが、これを実行しなかった可能性があります。

まさにこの部分が該当すると思います(調べたところ、パスワード入力欄がアクティブ
の状態で最後まで作成されたようです)。
正しい手順で作成された場合、kobaさんがおっしゃっている通り、submitNumber  = 5
になるはずです。

なお、お気に入りからスクリプトを実行する機能(URL末尾に<script=スクリプト名>)
はSleipnir2では廃止されました。ですので、現在のAuto Login Creatorでは、代わりに
SeaHorseスクリプトの作成機能を追加してあります。
予め公式サイトでSeaHorseプラグインを導入し、Auto Login Creatorを実行してください。
あとはダイアログに従って進めていけば作成可能ですが、良く分からないという場合は、
sidusさんのサイトで詳しい作成手順をご説明いただいていますので、そちらをご覧下さい

Autologincreaterをスクリプトにして導入して使うまでをなるべく分かりやすく説明したいなーと。|Sleipnirを初心者がいじりまくるブログ
http://sidus.blog5.fc2.com/blog-entry-42.html

(※上記ページを見てもなお不明な点がある場合、質問はsidusさんにではなくこちらにお願いします。)

なお、この掲示板の入り口のページにも書いてあります通り、多忙の為、私のレスは遅く
なってしまうことが多いです。
回答をお急ぎの方にはご迷惑をお掛けしますが、その点ご了承いただけるとありがたいです。


> kobaさん
フォローありがとうございます。助かります。


> sidusさん
勝手にリンクしてしまってすみません。もし不都合があるようでしたら、いつでもご連絡
下さい。

タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 329 [関連記事]
投稿日: 2007/11/17(Sat) 20:18
投稿者okb
sleepyさん、こんばんは。
かなり以前にsleepyさんには、お世話になった記憶があります。

ご丁寧な回答に感謝します。
バグなんて、とんでもない失礼をしたようです。
どうも、すみませんでした。

タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 330 [関連記事]
投稿日: 2007/11/18(Sun) 01:03
投稿者sidus
URLhttp://sidus.blog5.fc2.com/
sidusです。勝手にリンクなんてとんでもないです。
Sleepyさんにはとてもお世話になっていますので、
ぜひご活用いただければ幸いです。

> sidusさんのサイトで詳しい作成手順をご説明いただいていますので、そちらをご覧下さい
> 
> Autologincreaterをスクリプトにして導入して使うまでをなるべく分かりやすく説明したいなーと。|Sleipnirを初心者がいじりまくるブログ
> http://sidus.blog5.fc2.com/blog-entry-42.html
> 
> (※上記ページを見てもなお不明な点がある場合、質問はsidusさんにではなくこちらにお願いします。)
> 
> なお、この掲示板の入り口のページにも書いてあります通り、多忙の為、私のレスは遅く
> なってしまうことが多いです。
> 回答をお急ぎの方にはご迷惑をお掛けしますが、その点ご了承いただけるとありがたいです。
> 
> 
> > kobaさん
> フォローありがとうございます。助かります。
> 
> 
> > sidusさん
> 勝手にリンクしてしまってすみません。もし不都合があるようでしたら、いつでもご連絡
> 下さい。

タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 331 [関連記事]
投稿日: 2007/11/18(Sun) 16:38
投稿者okb
「Sleipnirを初心者がいじりまくるブログ」の、Fenrir User Communityのログインページのスクリプトを作ったのですが、ログインボタンを押してくれません。
作成手順は、次のとおりです。
1.ログイン画面を表示。
2.ID入力>タブ押下>パスワード入力>タブ押下
3.AutoLoginCreaterを実行
4.ボタン上で右マウス
5.指示に従って入力

1.66のときは、こんな感じだったと思います。

またログイン後、たとえば質問フォーラムhttp://community.tabbrowser.jp/forum/viewforum.php?f=1
を開きたとき、どこを修正すればいいでしょうか?

以上、よろしくお願いします。



// ==UserScript==
// @name 自動ログイン : Fenri_Community
// @author "Auto Login Creator(2007/03/22)"
// @include http://community.tabbrowser.jp/forum/login.php
// @type SleipnirScript
// ==/UserScript==

// このスクリプトの改変は自由に行っていただいてかまいません。

// 任意の値を設定してください。
var savePassword  = true;        // パスワードを Script.ini に保存する:true、保存しない:false
var accountPromptName_0  = "ユーザID";        // アカウント入力ダイアログの項目名
var passwordPromptName_0 = "パスワード";        // パスワード入力ダイアログの項目名
// 設定ここまで。

var Slpnr = new ActiveXObject("Sleipnir.API");
var document = _document;
var window;
var t;

var loginPage     = "communitytabbrowserjp";
var accountTag_0  = 0;
var passwordTag_0 = 1;
var uncheckTag_0  = 2;
var formNumber    = 1;
var submitTag     = "INPUT";
var submitNumber  = 12;

var account_0     = "";
var password_0    = "";

Main();

window = null;
document = null;
Slpnr = null;

function Main(){
    window = document.parentWindow;

    account_0  = Slpnr.GetProfileStringCipher("AutoLogin_" + loginPage, "Account_0", "");
    password_0 = Slpnr.GetProfileStringCipher("AutoLogin_" + loginPage, "Password_0", "");

    // ユーザーから入力を促す。
    if (account_0 == "") {
        account_0 = window.prompt(accountPromptName_0 + "を入力して下さい(値はScript.ini に保存されます)。", "");
        if (account_0 == null){
            account_0 = "";
        }
        else {
            account_0 = String(account_0.match(/^[^\x00]*/));
        }
        Slpnr.WriteProfileStringCipher("AutoLogin_" + loginPage, "Account_0", account_0);
    }
    if (savePassword){
        if (password_0 == ""){
            try {
                password_0 = Slpnr.MaskedInputBox(passwordPromptName_0 + "を入力してください(値は Script.ini に保存されます)。", "");
            }
            catch(error){
                password_0 = window.prompt(passwordPromptName_0 + "を入力してください(値は Script.ini に保存されます)。", "");
            }
            finally {
                if (password_0 == null){
                    password_0 = "";
                }
                else {
                    password_0 = String(password_0.match(/^[^\x00]*/));
                }
                Slpnr.WriteProfileStringCipher("AutoLogin_" + loginPage, "Password_0", password_0);
            }
        }
    }
    else{
        if (password_0 != ""){
            if (window.confirm("Script.ini にこのページのパスワードが保存されている場合、削除します。\n" +
                               "よろしいですか?(OK:削除する、キャンセル:削除しない)")){
                try {
                    Slpnr.DeleteProfileKey("AutoLogin_" + loginPage, "Password_0");
                }
                catch(error){
                    Slpnr.WriteProfileString("AutoLogin_" + loginPage, "Password_0", "");
                }
            }
        }
        try {
            password_0 = Slpnr.MaskedInputBox(passwordPromptName_0 + "を入力してください", "");
        }
        catch(error){
            password_0 = window.prompt(passwordPromptName_0 + "を入力してください", "");
        }
        finally {
            if (password_0 == null){
                password_0 = "";
            }
            else {
                password_0 = String(password_0.match(/^[^\x00]*/));
            }
        }
    }

    if (!DoLogin(document)){
            sleipnir.Echo("AutoLogin Error : Fenri_Community.user.js");
            sleipnir.Echo("    ログインできませんでした。");
    }
}

function DoLogin(objDoc){
    var document = objDoc;
    try {
        document.forms(formNumber).elements(accountTag_0).value = account_0;
        document.forms(formNumber).elements(passwordTag_0).value = password_0;
        document.forms(formNumber).elements(uncheckTag_0).checked = false;
        if (Slpnr.CtrlDown){
            sleipnir.beep();
        }
        else {
            document.all.tags(submitTag).item(submitNumber).click();
        }
        return true;
    }
    catch(error){
        return false;
    }
}

タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 332 [関連記事]
投稿日: 2007/11/18(Sun) 17:22
投稿者プヨぷよ
> 「Sleipnirを初心者がいじりまくるブログ」の、Fenrir User Communityのログインページのスクリプトを作ったのですが、ログインボタンを押してくれません。
> 作成手順は、次のとおりです。
> 1.ログイン画面を表示。
> 2.ID入力>タブ押下>パスワード入力>タブ押下
> 3.AutoLoginCreaterを実行
> 4.ボタン上で右マウス
> 5.指示に従って入力
横槍失礼します。フォーラムでのやり取りを見る限り、
右クリックにExtendedMenuを割り当ていらっしゃるかと思います。
そのためボタン上で右クリックしてもフォーカスがボタンへ移らないため、
ログインボタンの取得に失敗しているのだと思います。
対処法として右クリックの代わりにCtrl+右クリックか、
左→右クリックを使ってフォーカスをあてるようにすれば
正常にログインスクリプトを作成できるかと。

タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 333 [関連記事]
投稿日: 2007/11/18(Sun) 19:15
投稿者okb
> 右クリックにExtendedMenuを割り当ていらっしゃるかと思います。
> そのためボタン上で右クリックしてもフォーカスがボタンへ移らないため、
さすがですね。
ExtendedMenuを割り当てをはずすと、うまくいきました。
Ctrl+右クリックではダメでした。
他のサイトでは、割り当てをはずさなくてもうまくいったんですけど。

ブヨぶよさん、ついでに記事No331のログイン後に別のサイトを自動で開けるためにスクリプトのどこを修正したらいいかレスいただければ、うれしいです。

タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 336 [関連記事]
投稿日: 2007/11/20(Tue) 19:07
投稿者プヨぷよ
> > 右クリックにExtendedMenuを割り当ていらっしゃるかと思います。
> > そのためボタン上で右クリックしてもフォーカスがボタンへ移らないため、
> さすがですね。
> ExtendedMenuを割り当てをはずすと、うまくいきました。
> Ctrl+右クリックではダメでした。
> 他のサイトでは、割り当てをはずさなくてもうまくいったんですけど。
> 
> ブヨぶよさん、ついでに記事No331のログイン後に別のサイトを自動で開けるためにスクリプトのどこを修正したらいいかレスいただければ、うれしいです。
SeaHorse形式だとログインスクリプトが終了しないとログイン完了しないので
    if (!DoLogin(document)){
            sleipnir.Echo("AutoLogin Error : Fenri_Community.user.js");
            sleipnir.Echo("    ログインできませんでした。");
    }
のあとにelseブロック作って、そこでログイン完了まで待機してナビゲートさせる
WSH(1.xx形式)スクリプトを起動することになるかと。

それが手間でしたらSeaHorseスクリプトでコミュニティトップから質問フォーラムに飛ばすようにすれば、
他のフォーラムに行くのに工夫がいりますがスクリプト自体は
window.location = "http://community.tabbrowser.jp/forum/viewforum.php?f=1";
で済みます。
@type無記入(javascriptとして動作させる)ならばjavascriptオフで無効にできます。

タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 337 [関連記事]
投稿日: 2007/11/21(Wed) 17:49
投稿者okb
> SeaHorse形式だとログインスクリプトが終了しないとログイン完了しないので
そう言うことですか。
1.66のときは、たとえば次の2行の追加で出来たのですが、SeaHorse形式だと無理なんですね。
//ログイン後、開きたいURLの指定(AutoLoginCreaterでは生成されない)
WScript.Sleep(1500);
Slpnr.Navigate(id,"http://s20.si0.kabu.co.jp/Members/TradeTool/MUSResearchReport/");
//ここまで

左程困らないので、複雑なようであれば諦めます。

なお、旅行で返信が遅れました。

タイトルログイン時のURLと同じ場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 369 [関連記事]
投稿日: 2007/12/15(Sat) 15:52
投稿者ピコ麻呂
Auto Login Creator、ありがたく使わせてもらっています。
SeaHorse用スクリプトにして自動的にログインするようにしているんですが・・・

たとえば、ログインページのアドレス(スクリプトが作動するURL)が
http://example.com/control.php
で、なんらかの編集ページのアドレスも
http://example.com/control.php
であった場合、後者のページのテキストボックスにも自動的にIDが入力されてしまいます。
なんとか防ぐことはできないでしょうか・・・

タイトルRe: ログイン時のURLと同じ場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 372 [関連記事]
投稿日: 2007/12/16(Sun) 21:54
投稿者sleepy(webmaster)
ピコ麻呂さん、はじめまして。

> たとえば、ログインページのアドレス(スクリプトが作動するURL)が
> http://example.com/control.php
> で、なんらかの編集ページのアドレスも
> http://example.com/control.php
> であった場合、後者のページのテキストボックスにも自動的にIDが入力されてしまいます。
> なんとか防ぐことはできないでしょうか・・・

現状、URLが全く同じだとそうなってしまいますね。
スクリプト側で対処するには動作するべきページかどうかの判定をURL以外でも
行うようにする必要がありますが、その場合、どこで判定するかを考えないと
いけませんね。ぱっと思いついたのはページタイトルでの判定ですが、それで
大丈夫でしょうか?もし、他の箇所で判定する方が良いというのであれば、どこ
で行うのが良いかお教え下さい。

現在、なかなか私の方で作業時間が取れないような状況にありますので、対応
には少し時間がかかると思いますが、どうかご了承下さい。

暫定的な対処法としては、例えばお気に入りから開いた場合のみスクリプトが
動作するようにする方法として、ログインページのURLを
http://example.com/control.php#
のように末尾に#を付けて登録し、ログインスクリプトの@includeの値もそれに
合わせて書き換える、というやり方があります。もし良ければ一度お試し下さい。

タイトルRe: ログイン時のURLと同じ場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 373 [関連記事]
投稿日: 2007/12/17(Mon) 00:57
投稿者ピコ麻呂
お忙しい中返信いただき、ありがとうございます。

> 暫定的な対処法としては、例えばお気に入りから開いた場合のみスクリプトが
> 動作するようにする方法として、ログインページのURLを
> http://example.com/control.php#
> のように末尾に#を付けて登録し、ログインスクリプトの@includeの値もそれに
> 合わせて書き換える、というやり方があります。もし良ければ一度お試し下さい。

試してみました。
お気に入りから1度目のアクセスをしたときはログイン後の編集ページでも入力はされませんでしたが、
2度目のアクセスをしたときはログイン状態が維持されていて、編集ページへそのまま飛んでしまうので
入力されてしまいました。

> スクリプト側で対処するには動作するべきページかどうかの判定をURL以外でも
> 行うようにする必要がありますが、その場合、どこで判定するかを考えないと
> いけませんね。ぱっと思いついたのはページタイトルでの判定ですが、それで
> 大丈夫でしょうか?もし、他の箇所で判定する方が良いというのであれば、どこ
> で行うのが良いかお教え下さい。

自分の場合タイトルで判定でOKなんですが、スクリプトに詳しくない自分が偉そうに言えることではありませんが、
URLやタイトル以外でも判定したほうがいいような気がします。3つ4つくらいでOKかとおもいますが。。。
スクリプトをザッと見れば、フォームのn番目のテキストBOXにxを入力する・・・という感じのようですが(ちょっとしかJavaやってないからわからないけど)
それだけじゃちょっと頼りない気がします・・・。

いろいろと偉そうに言いましたが、些細なことなので我慢できる範囲ですし、ゆっくり対応してくだされば嬉しいです。

タイトルRe: ログイン時のURLと同じ場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 374 [関連記事]
投稿日: 2007/12/19(Wed) 18:10
投稿者ピコ麻呂
話が変わりますが、Gmailの自動入力がどうもうまくいきません。
スクリプトを作成しなおしたりもしましたが、IDが入力されなかったり、IDのところにパスワードが入力されたりします。

タイトルRe: ログイン時のURLと同じ場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 375 [関連記事]
投稿日: 2007/12/19(Wed) 19:16
投稿者ピコ麻呂
> 話が変わりますが、Gmailの自動入力がどうもうまくいきません。
> スクリプトを作成しなおしたりもしましたが、IDが入力されなかったり、IDのところにパスワードが入力されたりします。

自分でスクリプトのフォームの番号を弄ったらちゃんと入力されました。
自分の設定の仕方が悪かっただけかもしれません・・・

タイトルRe: ログイン時のURLと同じ場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 423 [関連記事]
投稿日: 2008/04/04(Fri) 00:44
投稿者AbsN
私も同じことが気になっていました。

> 自分の場合タイトルで判定でOKなんですが、スクリプトに詳しくない自分が偉そうに言えることではありませんが、
> URLやタイトル以外でも判定したほうがいいような気がします。3つ4つくらいでOKかとおもいますが。。。
> スクリプトをザッと見れば、フォームのn番目のテキストBOXにxを入力する・・・という感じのようですが(ちょっとしかJavaやってないからわからないけど)
> それだけじゃちょっと頼りない気がします・・・。

JavaScriptは殆ど触ったことが無いので、出来るかどうか分からないのですが
formのactionで指定されているターゲットURLを拾えるのならいいのですが・・・・・・

タイトル更新しました。(2008/04/05)
カテゴリ: 1.xx互換スクリプト
記事No: 424 [関連記事]
投稿日: 2008/04/05(Sat) 20:15
投稿者sleepy(webmaster)
Auto Login Creator 更新しました。

まず、最初に問題の報告がされてから、修正するまでに随分時間がかかってしまったこと
をお詫びします。
ピコ麻呂さん、AbsNさん、申し訳ありませんでした。

SeaHorse用ログインスクリプトとして作成した場合、ページタイトル及び対象formのaction
属性値が作成したURLのものと異なっている場合は、スクリプトを実行しないようにしました。
(AbsNさんにご提示いただいた方法を採用させていただきました。どうもありがとうございます。)

なお、作成されたスクリプトをテキストエディタで開き、変数blnPageChkの値をfalseに変更
することで、ページタイトル及びform.actionのチェックを行わないようにすることも可能に
してあります。

その他の使用方法は変わっていません。記事No.3をご参照下さい。

タイトルRe: 更新しました。(2008/04/05)
カテゴリ: 1.xx互換スクリプト
記事No: 444 [関連記事]
投稿日: 2008/05/02(Fri) 19:52
投稿者AbsN
> Auto Login Creator 更新しました。
> 
> まず、最初に問題の報告がされてから、修正するまでに随分時間がかかってしまったこと
> をお詫びします。
> ピコ麻呂さん、AbsNさん、申し訳ありませんでした。

更新お疲れ様です。
私も仕事がアレでして、更新されてるのに気づいたのが先月末でした^^;

おかげさまでmixiやニコニコ等で問題だった動作が解決されて
非常に使いやすくなりました。

あと、これは現時点で特に問題が出ているというわけではないのですが、
ページタイトルチェックとform.actionチェックを個別にON/OFF出来たほうが
いいかもしれません。
(form.actionをポンポン書き換える人はまずいないと思いますが、
ページタイトルの場合ありうるので)

タイトル再度更新しました。(2008/05/04)
カテゴリ: 1.xx互換スクリプト
記事No: 448 [関連記事]
投稿日: 2008/05/04(Sun) 09:39
投稿者sleepy(webmaster)
AbsNさん、こんにちは。

> あと、これは現時点で特に問題が出ているというわけではないのですが、
> ページタイトルチェックとform.actionチェックを個別にON/OFF出来たほうが
> いいかもしれません。
> (form.actionをポンポン書き換える人はまずいないと思いますが、
> ページタイトルの場合ありうるので)

上記の件、最新版のAuto Login Creatorにて対応しました。
…といいますか、どうも前回の更新では間違えて作成途中のスクリプトをアップ
してしまっていた様で、作成したスクリプトにチェックのON/OFFを行うコードが
含まれていませんでした。。。申し訳ないです。

チェックのON/OFFを行う必要がある場合、最新版のAuto Login Creatorでログイン
スクリプトを作成し直してください。よろしくお願いします。

タイトルRe: ログイン時のURLと同じ場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 440 [関連記事]
投稿日: 2008/04/29(Tue) 23:08
投稿者黒子
はじめまして。

>動作すべきページかどうかの判定
ですが、ログイン後のページにはかなり高い確率で"ログアウト"へのリンクがありませんか?

スクリプトの事は良く分らないのですが、何かの手がかりになりませんでしょうか。

タイトルRe: ログイン時のURLと同じ場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 445 [関連記事]
投稿日: 2008/05/02(Fri) 20:41
投稿者黒子
すいません、すでに対策なされていたんですね、失礼しましたorz

タイトルRe: ログイン時のURLと同じ場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 449 [関連記事]
投稿日: 2008/05/04(Sun) 09:41
投稿者sleepy(webmaster)
黒子さん、はじめまして。

> すいません、すでに対策なされていたんですね、失礼しましたorz

いえいえ、アイディアの提供は大歓迎ですので、お気になさらず。
ただ、今回の黒子さんの方法では、うまくいくページとそうでないページが
あると思いますので、申し訳ないですが採用は見送らせていただきました。
なるべく確率に左右されない手段を取りたかったので、あしからずご了承ください。

タイトルログイン時及びログイン後のURLがランダムの場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 467 [関連記事]
投稿日: 2008/05/27(Tue) 03:14
投稿者aqua
はじめまして、
Auto Login Creatorいつも使わせてもらっています。

ログイン時及びログイン後のURLがランダムの場合、普通に設定しても毎回ログイン時のURLが変わってしまうため自動入力及び自動ログインが機能しません。

設定しだいでどうにかなるものなのでしょうか。

タイトルRe: ログイン時及びログイン後のURLがランダムの場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 469 [関連記事]
投稿日: 2008/05/29(Thu) 22:08
投稿者ぬこぬこ
はじめまして。

ニコニコ動画が先日のメンテでログイン画面を変更して
しまったため、ピコ麻呂さんと同様な症状が出て、
スクリプトエラー「オブジェクトがありません」の状態になります。
ちなみにピアプロもほぼ同様な症状です。

記事を読んでいる限り、ピコ麻呂さんのご指摘そのままだと思うのですが、
確か修正されたと思いました。微妙に違うものなのでしょうか?

タイトルRe: ログイン時及びログイン後のURLがランダムの場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 471 [関連記事]
投稿日: 2008/06/02(Mon) 00:28
投稿者sleepy(webmaster)
ぬこぬこさん、はじめまして。

> ニコニコ動画が先日のメンテでログイン画面を変更して
> しまったため、ピコ麻呂さんと同様な症状が出て、
> スクリプトエラー「オブジェクトがありません」の状態になります。
> ちなみにピアプロもほぼ同様な症状です。
> 
> 記事を読んでいる限り、ピコ麻呂さんのご指摘そのままだと思うのですが、
> 確か修正されたと思いました。微妙に違うものなのでしょうか?

最新版のAuto Login Creatorでログインスクリプトを作成し直し
てもなお駄目だったということでしょうか?

「ピコ麻呂さんのご指摘そのまま」の症状ということであれば、
対策はすでに最新版に組込み済みです。
ですので申し訳ないですが、それでもなお解決しないようであれば、
他の対処法が見つからない限りはどうしようもないかもしれません。

タイトルRe: ログイン時及びログイン後のURLがランダムの場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 470 [関連記事]
投稿日: 2008/06/02(Mon) 00:26
投稿者sleepy(webmaster)
aquaさん、はじめまして。

> ログイン時及びログイン後のURLがランダムの場合、普通に設定しても毎回ログイン時のURLが変わってしまうため自動入力及び自動ログインが機能しません。
> 
> 設定しだいでどうにかなるものなのでしょうか。

動作対象URL(@include)にはワイルドカードが使用できます。
URLのうちランダムに変化する部分を * に置き換えてみてください。

タイトルRe: ログイン時及びログイン後のURLがランダムの場合(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 472 [関連記事]
投稿日: 2008/06/03(Tue) 21:15
投稿者aqua
> 動作対象URL(@include)にはワイルドカードが使用できます。
> URLのうちランダムに変化する部分を * に置き換えてみてください。

見事にログインできました。
これからも使っていこうと思います。
ありがとうございました。

タイトル自動ログインができません(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 476 [関連記事]
投稿日: 2008/06/08(Sun) 19:52
投稿者aqua
たびたびすみません。
イーバンク銀行とファイルバンクというサイトでの自動ログインスクリプト実行の際、
フォームに入力はされるのですがログインのボタンをクリックしてくれません。
何度もやり直したのですがうまくいきません。
作成手順は間違っていないと思います。
セキュリティも問題なかったです。
上のほうに書かれてるsubmitNumber  = 5にしてみたのですがうまくいきませんでした。
一応下に作成時のスクリプトを記載します。

// ==UserScript==
// @name 自動ログイン : イーバンク銀行
// @author "Auto Login Creator(2008/05/04)"
// @include https://fes.ebank.co.jp/MS/main/EbS?COMMAND=LOGIN&&CurrentPageID=START
// @type SleipnirScript
// ==/UserScript==

// このスクリプトの改変は自由に行っていただいてかまいません。

// 任意の値を設定してください。
var savePassword  = true;        // パスワードを Script.ini に保存する:true、保存しない:false
var accountPromptName_0  = "ユーザID";        // アカウント入力ダイアログの項目名
var passwordPromptName_0 = "パスワード";        // パスワード入力ダイアログの項目名
var blnChkTitle   = true;        // タイトルが一致したときのみ実行:true、無条件に実行:false
var blnChkForm    = true;        // form.actionが一致したときのみ実行:true、無条件に実行:false
// 設定ここまで。

var Slpnr = new ActiveXObject("Sleipnir.API");
var document = _document;
var window;
var t;

var loginPage     = "fesebankcojp";
var accountTag_0  = 0;
var passwordTag_0 = 1;
var formNumber    = 0;
var submitTag     = "INPUT";
var submitNumber  = 2;

var account_0     = "";
var password_0    = "";

var pageTitle     = "イーバンク銀行へようこそ";
var formAction    = "/MS/main/fcs/ebank/fes/jsp/mainservice/Security/LoginAuthentication/Login/Login.jsp";



// ==UserScript==
// @name 自動ログイン : ファイルバンク
// @author "Auto Login Creator(2008/05/04)"
// @include http://www.filebank.co.jp/
// @type SleipnirScript
// ==/UserScript==

// このスクリプトの改変は自由に行っていただいてかまいません。

// 任意の値を設定してください。
var savePassword  = true;        // パスワードを Script.ini に保存する:true、保存しない:false
var accountPromptName_0  = "ユーザID";        // アカウント入力ダイアログの項目名
var passwordPromptName_0 = "パスワード";        // パスワード入力ダイアログの項目名
var blnChkTitle   = true;        // タイトルが一致したときのみ実行:true、無条件に実行:false
var blnChkForm    = true;        // form.actionが一致したときのみ実行:true、無条件に実行:false
// 設定ここまで。

var Slpnr = new ActiveXObject("Sleipnir.API");
var document = _document;
var window;
var t;

var loginPage     = "wwwfilebankcojp";
var accountTag_0  = 1;
var passwordTag_0 = 2;
var checkTag_0    = 3;
var checkTag_1    = 4;
var formNumber    = 0;
var submitTag     = "BODY";
var submitNumber  = 0;

var account_0     = "";
var password_0    = "";

var pageTitle     = "ファイルバンク【FILEBANK】-無料でファイル保管・送信・シェアができる-";
var formAction    = "javascript:Login();";

タイトルRe: 自動ログインができません(SeaHorse)
カテゴリ: 1.xx互換スクリプト
記事No: 480 [関連記事]
投稿日: 2008/06/13(Fri) 22:49
投稿者sleepy(webmaster)
レスが遅くなり申し訳ないです。

> イーバンク銀行とファイルバンクというサイトでの自動ログインスクリプト実行の際、
> フォームに入力はされるのですがログインのボタンをクリックしてくれません。

まずイーバンク銀行については、申し訳ないですが、サイトの設計上、
SeaHorse用に作成したスクリプトではタイミング的にログインできないと思います。
(disabledに設定したログインボタンをWebページスクリプトで有効化する、
という作りになっており、有効化される前にSeaHorseが走ってしまう為。)
ちなみに、1.xx互換スクリプトとして作成した場合はログインできるようです。

ファイルバンク用の物については、ログインボタンの取得に失敗しています。
「作成手順は間違っていないと思います」とのことですが、こちらで検証した所、
正しい手順で作成すれば問題なく動作しました。
ログインボタンをアクティブにする所に注意して、再度作成してみてください。

タイトル見ておられるか分かりませんが、不具合報告です。
カテゴリ: 1.xx互換スクリプト
記事No: 527 [関連記事]
投稿日: 2008/10/07(Tue) 05:30
投稿者crowa
おはようございます。
AutoLoginCreatorを使わせていただいてます。

さて、早速ですが不具合らしきものが1点ありましたので報告を。

Script.iniに「selectModeDlg=2」を記述してスクリプトを作成しますと、

>Error:
>createScriptFile -> プロシージャの呼び出し、または引数が不正です。

と表示され作成に失敗します。
記述を消して再度AutoLoginCreator.jsを実行すると、作成に成功しました。

とりあえずIDを持っている数サイトで試しましたが全て再現したので、
上記の設定項目が原因なのかなと思いました。
まあこんな設定で使う人あまりいないでしょうけど……。

当方の環境は、
OS:WinXP SP3
ブラウザ:Sleipnir 2.8.02 Build Version2802400
プラグイン:
SeaHorse 1.1.2
MixChain 1.2.3
FaviconCleaner 0.1.5
Active Gecko Browser 1.0.5
Headline-Reader Plugin 1.3.2
RememberMe Extension 2.0.2
SkyPalette 1.0.3
UserAction Extension 1.0.1

SeaHorseスクリプトはAutoPagerizeとUserStyeSheet、Google回りのスクリプトいくつか、という感じです。

ご覧になられましたらよろしくお願いします。

タイトルRe: 見ておられるか分かりませんが、不具合報告です。
カテゴリ: 1.xx互換スクリプト
記事No: 528 [関連記事]
投稿日: 2008/10/07(Tue) 22:39
投稿者sleepy(webmaster)
crowaさん、はじめまして。

> さて、早速ですが不具合らしきものが1点ありましたので報告を。
> 
> Script.iniに「selectModeDlg=2」を記述してスクリプトを作成しますと、
> 
> >Error:
> >createScriptFile -> プロシージャの呼び出し、または引数が不正です。
> 
> と表示され作成に失敗します。
> 記述を消して再度AutoLoginCreator.jsを実行すると、作成に成功しました。

ご報告ありがとうございます。スクリプトを修正し、記事No.2を更新しましたのでお試し下さい。

タイトルRe: 見ておられるか分かりませんが、不具合報告です。
カテゴリ: 1.xx互換スクリプト
記事No: 529 [関連記事]
投稿日: 2008/10/08(Wed) 01:39
投稿者crowa
はじめまして。
挨拶が遅れてしまってどうも失礼しました。

> ご報告ありがとうございます。スクリプトを修正し、記事No.2を更新しましたのでお試し下さい。

今しがた試してみましたが、問題なくスクリプト作成できたようです。
修正ありがとうございました。

タイトルログイン時に入力を求められる場合は?
カテゴリ: 1.xx互換スクリプト
記事No: 575 [関連記事]
投稿日: 2009/02/18(Wed) 04:00
投稿者Nampo
AutoLoginCreator は、Sleipnir 1.6 の頃から使用させて頂いてます。
ありがとうございます。

ところで、今回
ログインする際に、表示されるランダムな数字を入力しなければならないようなサイトの場合
どのようにしたら良いのか?悩みまして質問させて頂きました。

例: https://pex.jp/login  

AutoLoginCreator で作成したスクリプトを編集するとかで対処出来るのでしょうか?
よろしければ、教えていただけないでしょうか?

タイトルRe: ログイン時に入力を求められる場合は?
カテゴリ: 1.xx互換スクリプト
記事No: 578 [関連記事]
投稿日: 2009/02/21(Sat) 00:15
投稿者sleepy(webmaster)
Nampoさん、はじめまして。

> ログインする際に、表示されるランダムな数字を入力しなければならないようなサイトの場合
> どのようにしたら良いのか?悩みまして質問させて頂きました。
> 
> 例: https://pex.jp/login  
> 
> AutoLoginCreator で作成したスクリプトを編集するとかで対処出来るのでしょうか?
> よろしければ、教えていただけないでしょうか?

表示される数字の情報はページのソースからは取得できないため、
申し訳ありませんが対処不可能です。
ボタンクリックを自動化しない設定でSeaHorse用のログインスクリプトを作成し、
数字に関しては都度入力していただく、という方法がこのようなサイトにおける
自動化の限界かと思います。

タイトルRe: ログイン時に入力を求められる場合は?
カテゴリ: 1.xx互換スクリプト
記事No: 579 [関連記事]
投稿日: 2009/02/21(Sat) 03:02
投稿者Nampo

sleepyさん、ありがとうございます♪

> 数字に関しては都度入力していただく・・・
はい、私もそのような方法でしか対処は出来ないのだろうと思ってました。

> ボタンクリックを自動化しない設定でSeaHorse用のログインスクリプトを作成し・・・

自動化しないようになれば、十分なのですが、この機会に、SeaHorseを入れてみて、試したいと思います。


どうもありがとうございました。


タイトルJRA IPATでうまくいきません
カテゴリ: 1.xx互換スクリプト
記事No: 632 [関連記事]
投稿日: 2010/01/05(Tue) 16:04
投稿者koba
お世話になってます。

普通は1つのFORMタグ内に入力フィールドとログインボタンが併設されているケースが
多いと思うのですが、変わった構成のページがあります。

会員制のため実際に確認してもらうことはできないかもしれませんが、
JRA IPATのログイン画面は2段階になっていて、1段階目は1つの入力フィールドと
ログインボタン、2段階目は3つの入力フィールドとログインボタンとなっています。
1段階目は1つのFORMタグに入力フィールドとログインボタンが収まっているので
現行スクリプトでも問題ないのですが、2段階目は3つのFORMタグに入力フィールドが
1つずつ設定されていて、現行スクリプトでは入力フィールドが1つしかないような形で
生成されてしまいます。
(ログインボタンは3つ目のFORMタグ内にあります。)

JRA IPATではログインに関する入力フィールドとログインボタンしか存在しないので
(他はテキストやリンクタグ)、ページ内のすべてのFORMタグを対象に処理しても
問題ないように思うのですが、こういったケースの対応は難しいでしょうか?

JRA IPAT
http://www.ipat.jra.go.jp/

タイトルRe: JRA IPATでうまくいきません
カテゴリ: 1.xx互換スクリプト
記事No: 635 [関連記事]
投稿日: 2010/01/07(Thu) 00:49
投稿者sleepy(webmaster)
kobaさん、こんにちは。

> JRA IPATのログイン画面は2段階になっていて、1段階目は1つの入力フィールドと
> ログインボタン、2段階目は3つの入力フィールドとログインボタンとなっています。
> 1段階目は1つのFORMタグに入力フィールドとログインボタンが収まっているので
> 現行スクリプトでも問題ないのですが、2段階目は3つのFORMタグに入力フィールドが
> 1つずつ設定されていて、現行スクリプトでは入力フィールドが1つしかないような形で
> 生成されてしまいます。
> (ログインボタンは3つ目のFORMタグ内にあります。)
> 
> JRA IPATではログインに関する入力フィールドとログインボタンしか存在しないので
> (他はテキストやリンクタグ)、ページ内のすべてのFORMタグを対象に処理しても
> 問題ないように思うのですが、こういったケースの対応は難しいでしょうか?

仰る通り、Auto Login Creatorでは1つのFORMタグに入力フィールドとログインボタンが
収まっている場合にしか対応出来ません。
これはどのFORMがログインに関するものなのかを自動で判別することは不可能なため、
Auto Login Creatorでは最初にアクティブにした入力フィールドが存在するFORMを
ログインに関するFORMとして扱うようにしているからです。

ご指摘のサイトではすべてのFORMタグを対象に処理しても問題無いのかもしれませんが、
そのような処理にしてしまうと、他のサイトでは、例えば検索FORMなどの関係の無い
ものまで処理対象としてしまうことになり、好ましくない動作となってしまいますので、
申し訳ありませんが対応は見送らせていただきます。どうかご了承ください。

タイトルRe: JRA IPATでうまくいきません
カテゴリ: 1.xx互換スクリプト
記事No: 636 [関連記事]
投稿日: 2010/01/07(Thu) 01:57
投稿者koba
悲しいですが諦めます。
どうもすみませんでした。

タイトルRe: JRA IPATでうまくいきません
カテゴリ: 1.xx互換スクリプト
記事No: 637 [関連記事]
投稿日: 2010/01/07(Thu) 21:43
投稿者プヨぷよ
> 悲しいですが諦めます。
> どうもすみませんでした。
実際に動作確認はできませんが、2.x系統をお使いであれば
SeaHorseスクリプトとして3つ(フォーム1つにつき1つずつ)作成し、
3つ目のフォームに対応するスクリプトでボタンを押すようにすればうまくいくと思います。
SeaHorseスクリプトがファイル名順に実行されるのを利用して、
3つ目のフォームに対応するスクリプトが最後に実行されるようにする必要があります。
よくわからない場合はボタン実行は自動化しない設定にしておくのもよいかと。

タイトルRe: JRA IPATでうまくいきません
カテゴリ: 1.xx互換スクリプト
記事No: 638 [関連記事]
投稿日: 2010/01/09(Sat) 21:08
投稿者koba
ありがとうございます。
うまくいきました。
スクリプトファイルが増えるのでこういうサイトにはあまり遭遇したくないですが
今後もあればこの手で行かせてもらいます。

タイトルRe: AutoLoginCreator.js
カテゴリ: 1.xx互換スクリプト
記事No: 677 [関連記事]
投稿日: 2010/09/12(Sun) 20:47
投稿者Y.649
Sleepyさん、最近忙しいようで見られているかわかりませんが・・・

診断メーカー(http://shindanmaker.com/*)で常に自分のIDを
フォームに入力されているようにしたいんですが、
Auto Login CreatorでIDを入れておき、対応ページをワイルドカードで指定すると
ページ移動して表示される、診断結果のコピペ用フォームに自動ログインの入力内容が入ってしまいます・・・

対処方法等ないでしょうか?

タイトルRe: AutoLoginCreator.js
カテゴリ: 1.xx互換スクリプト
記事No: 679 [関連記事]
投稿日: 2010/09/19(Sun) 01:17
投稿者sleepy(webmaster)
返信が遅くなり申し訳ないです。

> 診断メーカー(http://shindanmaker.com/*)で常に自分のIDを
> フォームに入力されているようにしたいんですが、
> Auto Login CreatorでIDを入れておき、対応ページをワイルドカードで指定すると
> ページ移動して表示される、診断結果のコピペ用フォームに自動ログインの入力内容が入ってしまいます・・・
> 
> 対処方法等ないでしょうか?

当該サイトに行ってみましたが、自分が利用していないこともあり、
いまいちどのように利用されているのかが分かりませんでした。

ですので対処法というか、あくまで一般的な話になってしまいますが、
URLのワイルドカードの設定は適切でしょうか?
おそらくIDが入力されるようにしたいページは複数あるということなのでしょうが、
それら各ページでそれぞれURLが異なる部分のみワイルドカードを指定するようにしていますか?
要は、診断結果が表示されるページがマッチしないように動作URLを指定できればよい訳ですが、
それは不可能でしょうか?

比較的新しいAuto Login Creatorで作成したスクリプトであれば、
ログイン時のページタイトル/formのaction属性値と移動後のそれらが異なる場合、
移動後にはスクリプトが動作しないようにしてあります。
ただし、スクリプトを動作させたいページで、それぞれタイトルやaction属性値がバラバラの場合は、
逆にこの機能が動作の邪魔をしてしまうことになるので、なんとも対処が難しいところです。

以上、あまり参考にならないような気もしますが…
まずはワイルドカード指定を工夫できないかをお試しいただけますか。
(すでにお試しになった後でしたらすみません。)

タイトルRe: AutoLoginCreator.js
カテゴリ: 1.xx互換スクリプト
記事No: 683 [関連記事]
投稿日: 2010/10/09(Sat) 05:48
投稿者Y.649
お返事ありがとうございます。

> ただし、スクリプトを動作させたいページで、それぞれタイトルやaction属性値がバラバラの場合は、
> 逆にこの機能が動作の邪魔をしてしまうことになるので、なんとも対処が難しいところです。

ソースをよくみてみると、どうやらフォームのaction値が診断のIDになっているようです。
残念ですが諦めることにします。

タイトルRe: AutoLoginCreator.js
カテゴリ: 1.xx互換スクリプト
記事No: 732 [関連記事]
投稿日: 2011/05/19(Thu) 12:30
投稿者
URLhttp://www.bing.com/
That's way more clever than I was expecting. Thkans!

- Web Forum -   Modified by isso