UWSC 掲 示 板
投稿時に「証明書が不正です」と出る場合には、JavaScriptをオンにしてください
動作不具合での質問の場合には環境(OS,IEのバージョン等)の表記もしてください
タイトルは質問内容を表したものにしてください
ネットゲーム関係の質問はご遠慮ください

javascriptのボタンでHidden情報を取得し画面遷移する方法 / クッキー
こんにちは

REC IEがjavascriptのボタンリンクで遷移するページに飛ばず、RECIEでスクリプトの記録ができないのでやり方を教えていただけますでしょうか?

【REC IEで記録ができた最初のページのJavascriptのボタン】
<input name="domain_status" type="radio" id="radio3" value="3" checked="checked" onClick="Form_ac(' 3')" />
<td><input name="main_domain[3]" type="text" id="maindomain3" value="fjfjfjsjf.com" maxlength="64" /></td>
<input name="mode" id="mode" type="hidden" value="check" />
<a href="javascript:void(0)" onClick="Form_send('form_add','','');"><img src="images/b_mnext.gif" width="111" height="38" border="0" /></a>


こちらの情報を取り込んだボタンを押す動作はRECIEで記録すると下記のようになります。
//IE.Navigate("https://users.extrem.jp/manage/domain_add.php",0,"",Encode("domain_status=3&main_domain%5B3%5D=fjfjfjsjf.com&mode=check",CODE_BYTEARRAY),"Referer: https://users.extrem.jp/manage/domain_add.php<#CR>Content-Type: application/x-www-form-urlencoded<#CR>")


ボタンを押して次のページに飛ぶと、
下記の同じアドレスのままで、
https://users.extrem.jp/manage/domain_add.php
画面表示内容の情報が変わっております。
しかし、RECIEでは最初のボタンを押す動作を記録後画面遷移しなかったので次のページのスクリプトが記録できませんでした。
HTMLで要素の検証を、似た感じで情報を入れてみたのですが、
うまくいきません。


【確認ボタンがうまく押せないページの情報】
<input name="path" type="hidden" value="fjfjfjsjf_com" />
<input name="path_select" type="hidden" value="2" />
<input name="domain_status" type="hidden" value="3" />
<input name="mode" type="hidden" value="confirm" />
<input name="sub_domain[3]" type="hidden" value=""/>
<input name="main_domain[3]" type="hidden" value="fjfjfjsjf.com"/>
<a href="javascript:void(0)" onClick="Form_send('formmake','*****ドメインの追加*****\n\nこの内容で「fjfjfjsjf.com」を設定します。\n設定完了までに少し時間がかかりますのでOKをクリックしてからそのままお待ちください。','1')"><img src="images/b_mdo.gif" width="111" height="38" border="0" /></a>
</form>


手動でやるとこのjavascriptリンクが入っている確認ボタンを押すと、OKボタンを押すポップアップが出現、OKを押すと、ドメイン登録中という読み込みが始まり、読み込みが終わるとドメイン登録完了しましたというページが表示されます。


//****ボタンを押すために作成してみたUWSCスクリプト*****
IE.Navigate("https://users.extrem.jp/manage/domain_add.php","*****ドメインの追加*****\n\nこの内容で「fjfjfjsjf.com」を設定します。\n設定完了までに少し時間がかかりますのでOKをクリックしてからそのままお待ちください。","1",Encode("path=fjfjfjsjf_com&path_select=2&domain_status=3&sub_domain%5B3%5D=0&main_domain%5B3%5D=fjfjfjsjf_com&mode=cofirm",CODE_BYTEARRAY),"Referer: https://users.extrem.jp/manage/domain_add.php<#CR>Content-Type: application/x-www-form-urlencoded<#CR>")
BusyWait()


上記スクリプトがうまく動かず、ドメイン登録されないのです。

もし解決方法がわかればご教授ください。

よろしくお願いいたします。

No.4641 2017/11/01(Wed) 14:43:50
javascriptのボタンをクリックする方法とENCODEの場所で変数を使う方法 / クッキー
こんにちは
UWSCとプログラミング自体が初心者のものです。
ドメイン登録の自動化をしたいと思っております。

REC IEで下記のようなドメイン登録のリンクを取得しました。


IESetData(IE,True,"domain_status","3") // RADIO
IESetData(IE,"fjfjfjsjf.com","main_domain[3]") // TEXT
IE.Navigate("https://users.aaa.jp/manage/domain_add.php",0,"",Encode("domain_status=3&main_domain%5B3%5D=fjfjfjsjf.com&mode=check",CODE_BYTEARRAY),"Referer: https://users.aaa.jp/manage/domain_add.php<#CR>Content-Type: application/x-www-form-urlencoded<#CR>")
BusyWait()

上記のIE.NAVIGATEのリンクをクリックすると次の画面に遷移するはずなのですが、メイン名に変数を利用すると画面遷移しません。
上記の「fjfjfjsjf.com」という場所を変数にして処理をしたいのです。

//*********ドメイン名を変数にしたスクリプトここから**********
DOMEIN = fjfjfjsjf.com
IESetData(IE,True,"domain_status","3") // RADIO
IESetData(IE,"DOMAIN","main_domain[3]") // TEXT
IE.Navigate("https://users.aaa.jp/manage/domain_add.php",0,"",Encode("domain_status=3&main_domain%5B3%5D=" +DOMAIN+"&mode=check",CODE_BYTEARRAY),"Referer: https://users.aaa.jp/manage/domain_add.php<#CR>Content-Type: application/x-www-form-urlencoded<#CR>")
BusyWait()

//*********ドメイン名を変数にしたスクリプトここまで**********

IE.NAVIGATEのEncodeの場所で、変数にしたドメイン名を+で文字連結してつなげたのですが、
リンククリックするとIESetDataの場所(IESetData(IE,"DOMAIN","main_domain[3]") DOMAINという文字が入ってしまい、画面が遷移しません。


//*********クリックしたいボタンのHTMLは下記です。**********
<input name="mode" id="mode" type="hidden" value="check" />
<a href="javascript:void(0)" onClick="Form_send('form_add','','');"><img src="images/b_mnext.gif" width="111" height="38" border="0" /></a>

//*********クリックしたいボタンのHTMLここまで**********



UWSCではどのように記述すればよいのでしょうか?
ご教授いただければ幸いです。
どうぞよろしくお願いいたします。

No.4607 2017/10/30(Mon) 17:44:14

Re: javascriptのボタンをクリックする方法とENCODEの場所で変数を使う方法 / satocha
まずはケアレスミス
スペルの誤りとか引用符抜けを直してから動かすといいと思います
>DOMEIN = fjfjfjsjf.com

No.4615 2017/10/30(Mon) 21:09:37

Re: javascriptのボタンをクリックする方法とENCODEの場所で変数を使う方法 / クッキー
>まずはケアレスミス
>スペルの誤りとか引用符抜けを直してから動かすといいと思います
>>DOMEIN = fjfjfjsjf.com

確かに!スペルミスしておりました。。。。
上手く動きました。
ありがとうございます。

No.4640 2017/11/01(Wed) 14:09:50
配列サイズの調整関数について / さやか
配列サイズを最初に大きく宣言したものをforでデータをいれていき、余分なサイズ分を削除する関数を利用したのですが、次元すうが合いませんと表示されます。何か良い方法はないでしょうか?

(メイン)

CALL C:\Users\Desktop\共通化.uws
dim 配列1[20]

for i = 0 to 10
配列1[i]=i
next

配列1=COMMON.hai_sizeawaseru(配列1)
print "配列1サイズは"+resize(配列1)//配列サイズを10にしたい
---------------------
下記は、classファイルに入力。

function hai_sizeawaseru(配列1[])
b=join(配列1,"<#CR>",true)

a1=split(b,"<#CR>")//a1の配列変数作成、現在入っているデータサイズを得る為
result=resize(配列1,resize(a1))//aの配列変数を現在のデータ配列サイズresize(a1)に変更
fend

No.4624 2017/10/31(Tue) 10:33:09

Re: 配列サイズの調整関数について / しろまさ
resize(配列1,resize(a1)) の戻値は配列の上限値。配列ではない。

配列を戻したい場合は参照引数を使用する。
function hai_sizeawaseru(var 配列1[])

No.4627 2017/10/31(Tue) 11:16:49

Re: 配列サイズの調整関数について / さやか
メインでprocedureを書いた場合だとちゃんと配列1サイズは10が出力される。なぜ、COMMON.hai_sizeawaseru(配列1)がうまくいかないのでしょうか?
---------------------


CALL C:\Users\aruke\Desktop\ショットカット構文一覧\00_共通化.uws
dim 配列1[20]

for i = 0 to 10
配列1[i]=i
next

hai_sizeawaseru(配列1)
print "配列1サイズは"+resize(配列1)


procedure hai_sizeawaseru(var 配列1[])
b=join(配列1,"<#CR>",true)

a1=split(b,"<#CR>")//a1の配列1作成、現在入っているデータサイズを得る為
resize(配列1,resize(a1))//aの配列変数を現在のデータ配列サイズresize(a1)に変更

fend
---------------------
×
CALL C:\Users\Desktop共通化.uws
dim 配列1[20]

for i = 0 to 10
配列1[i]=i
next

COMMON.hai_sizeawaseru(配列1)
print "配列1サイズは"+resize(配列1)

//次元数が合いません。b=join(配列1,"<#CR>",true)と表示される。
---------------------
共通化.uws

procedure hai_sizeawaseru(var 配列1[])
b=join(配列1,"<#CR>",true)

a1=split(b,"<#CR>")//a1の配列1作成、現在入っているデータサイズを得る為
resize(配列1,resize(a1))//aの配列変数を現在のデータ配列サイズresize(a1)に変更
fend
---------------------

No.4630 2017/10/31(Tue) 18:43:55

Re: 配列サイズの調整関数について / しろまさ
// 不明ですね。こちらでは正しく表示されます。
// 今までの話の流れで、どこかのPublic消し忘れてるとかありません?

dim 配列1[20]

for i = 0 to 10
配列1[i]=i
next

COMMON.hai_sizeawaseru(配列1)
print "配列1サイズは"+resize(配列1)

//次元数が合いません。b=join(配列1,"<#CR>",true)と表示される。
Module COMMON
procedure hai_sizeawaseru(var 配列1[])
b=join(配列1,"<#CR>",true)

a1=split(b,"<#CR>")//a1の配列1作成、現在入っているデータサイズを得る為
resize(配列1,resize(a1))//aの配列変数を現在のデータ配列サイズresize(a1)に変更
fend
EndModule

No.4631 2017/10/31(Tue) 20:11:02

Re: 配列サイズの調整関数について / さやか
しろまさ様、返信ありがとうございます。
共通化.uws内に色々な関数を入力しているのですが、下記を修正したら解決しました。
procedure hai_sizeawaseru(var 配列1[])前にも色々関数が入力されていて、変数名をbやa1で安易に決めて入力していたのでこれが影響していたようです。
共通化.uws内の変数名とかも慎重に決める必要があると認識できたのですが、皆様は変数名はどのように決めていますか?
パスは、path、ファイル名はfileとかガチガチに決めて使用されていますか?

b=join(配列1,"<#CR>",true)→b_naiyou=join(配列1,"<#CR>",true) //変数名を変更

a1=split(b_naiyou,"<#CR>")//→a1hai=split(b_naiyou,"<#CR>") //変数名を変更

No.4632 2017/10/31(Tue) 21:53:25

Re: 配列サイズの調整関数について / しろまさ
私もそういう問題に苦しんだので、あまりメイングローバルは使わなくしたのです^^

それこそ好みの世界ですが、最近のマイルールは
 dn_ ディレクトリ名
 fn_ ファイル名
 dp_ ディレクトリパス
 fp_ ファイルパス
 up_ uwsパス
 ep_ Exeパス
 a_ 引数
 o_ オブジェクト
 el_ エレメント
 s_ 文字列
 n_ 数字
等々、頭に種類 _ より下は識別できる略名を付けてます。

更にModule内変数は上記に加え頭に _ を付けてます(しゅんさんのマネ)

No.4634 2017/11/01(Wed) 08:25:52

Re: 配列サイズの調整関数について / さやか
スクリプトを書く時に変数って面倒なので,aとか1文字で書いてしまうくせがあるので、しろまさ様のマイルール参考にさせて頂きます。ありがとうございました。
No.4636 2017/11/01(Wed) 10:43:16
HTML形式のファイル表示からinnerTextで文字を取り出す方法 / リキュール
以下の方法でHTMLのページは表示されますがエラーとなります。

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("C:\Users\user\Desktop\test.html")
Sleep(2)
data = IE.document.body.innerText //comエラー
print data

以下はtest.htmlの内容です。
<HTML>
<HEAD>
</HEAD>
<BODY>
<table>
<tr>
<td>
<a>AAA<a/>
<td/>
<tr/>
<table/>
</BODY>
</HTML>

No.4616 2017/10/30(Mon) 22:26:53

Re: HTML形式のファイル表示からinnerTextで文字を取り出す方法 / stuncloud
こちらで試したところ特に問題ないのですが、なんでしょうね
ときに
> <a>AAA<a/>
> <td/>
> <tr/>
> <table/>

の閉じタグおかしいです
後ろにスラッシュつけると意味が変わってしまう

No.4623 2017/10/31(Tue) 10:17:13

Re: HTML形式のファイル表示からinnerTextで文字を取り出す方法 / リキュール
stuncloud さん、お世話になります。
単純な記載間違いがありましたので以下に変更しました。
> <a>AAA<a/> → <a>AAA</a>
> <td/> → </td>
> <tr/> → </tr>
> <table/> → </table>

しかしエラーが出ます。Windoew7,IE11,uwsc Pro Ver 5.3.0.2 です。
data = IE.document.body.innerText //com Error:例外エラーが発生しました。

No.4626 2017/10/31(Tue) 10:57:36

Re: HTML形式のファイル表示からinnerTextで文字を取り出す方法 / stuncloud
Windows 10では大丈夫だったのでWindows 7環境を準備して試してみたら再現しました
エラー発生箇所でどうもIEと切り離されてるような感じです (quit()とかメソッド実行してみるとそのようなエラーが出る)
なので

try
 dummy = IE.document // エラーならIE取り直し
except
 IE = getactiveoleobj("InternetExplorer.Application")
endtry

のようにしてエラーになる場合のみgetactiveoleobj()することでその場しのぎにはなります

No.4628 2017/10/31(Tue) 12:31:59

Re: HTML形式のファイル表示からinnerTextで文字を取り出す方法 / リキュール
stuncloud さん、お世話になります。

動作しました!!
悩んでいた問題が解決し、先に進めそうです。
ありがとうございました。

No.4629 2017/10/31(Tue) 15:46:15
call、execを使う時の判断基準 / 荒鷲
call、execって両方ともファイルを呼び出して使用するとは思うのですが、いまいち使い分けが分かりません。call C:\User\Desktop\a(b[0],b[1],b[2])引数で配列をparamに渡しています。execは、メイン処理したスクリプトとを切り離して単独で使用するようにしています。メインで使用した変数やpublicとも切り離したい場合にexecを利用するという使い方で会っていますか?

exec("<#DBL>" + GET_UWSC_DIR + "\uwsc.exe<#DBL> <#DBL>" + 変数パス + "<#DBL>")

No.4617 2017/10/30(Mon) 22:49:53

Re: call、execを使う時の判断基準 / しろまさ
まず callはuws限定 execは他プログラムも起動できる ですよね?

で、execでuwsを起動するメリットは「プロセスを別にできること」です。
uwscのBox関数と並行処理をしたいときや、切り離したプロセスを単独終了させたいときなど。
メインPublicを多用するならそれと切り離したいというのもありかもしれませんね。

例えばランチャーからuwsを起動するなんてのも、
別プロセスにしないとメイン処理が停止するので都合悪いですよね。

No.4621 2017/10/31(Tue) 09:10:45

Re: call、execを使う時の判断基準 / 荒鷲
しろまさ様、返信ありがとうございます。

>>execは他プログラムも起動できる
たしかに他プログラムも起動できるっていうのがありますね。
これを忘れていました。


>>プロセスを別にできること
メインで利用した変数を全てリセットするイメージで私もexecを利用しています。

No.4625 2017/10/31(Tue) 10:41:22
配列サイズを大きい方に合わせる条件式について / さやか
配列サイズが5と3という配列があり、条件式で配列変数のaとbのサイズが違ったら、大きい方に合わせる処理の条件式の書き方が分かりません。何か良い方法ないでしょうか?resizeでできるような気がするんですが。
a[5]
b[3]

if length(a)<>length(b) then

else

endif

No.4609 2017/10/30(Mon) 20:03:07

Re: 配列サイズを大きい方に合わせる条件式について / さやか
よく考えてみたら下記で考えました。
これで合ってますか?

if length(a)<length(b) then
resize(a,length(b))
else
resize(b,length(a))
endif

No.4612 2017/10/30(Mon) 20:41:05

Re: 配列サイズを大きい方に合わせる条件式について / satocha
@まずは二つの数を引数として大きい方を返す関数を考えてみましょう。
関数名をlargerとすると
function larger(a,b)
 何かほにゃらら
 result=ほにゃらら
fend

A次に「resizeでできるような気がするんで」ヘルプのresizeを見ます。ふむふむ、なるほど
// 配列のサイズを変更する
戻値 = RESIZE( 配列変数, [サイズ] )
引数
 配列変数: 配列変数名
 サイズ: 配列の上限値 (多次元配列の場合は一番上の次元に対してのみ)
戻値
 配列の上限値を返す   (配列サイズのみを得る場合に第2引数は省略)

Bいよいよ、配列の長さをそろえよう。
配列aも配列bも長い方にリサイズしちゃえばいいんじゃない。片方は無駄な工程になるけどプログラミングはむしろラクそうだし。
長い方=larger(length(a),length(b))
RESIZE( a,長い方 )
RESIZE( b,長い方 )
できたぁ!

ってほにゃららがわからない?
ヒント
aとbを比較して大きい方を返す

No.4613 2017/10/30(Mon) 20:52:11

Re: 配列サイズを大きい方に合わせる条件式について / satocha
合ってるかどうかは動かせば分かる(合ってるけど)。
すごい。できるじゃん。
そういうわけで、前の書き込みは無視しておいてください。

No.4614 2017/10/30(Mon) 20:56:11

Re: 配列サイズを大きい方に合わせる条件式について / さやか
satocha、返信ありがとうございます。

検証しました、RESIZEで考えた方が良いですね。

dim a[3],b[5]

print "1,aの配列変数サイズは"+resize(a)
print "2,bの配列変数サイズは"+resize(b)
if resize(a)<resize(b) then
msgbox(1)
resize(a,resize(b))
else
msgbox(2)
resize(b,resize(a))
endif
// print "aの配列変数サイズは"+length(a)
// print "bの配列変数サイズは"+length(b)

print "1a,aの配列変数サイズは"+resize(a)
print "2a,bの配列変数サイズは"+resize(b)



textblock
1,aの配列変数サイズは3
2,bの配列変数サイズは5
1a,aの配列変数サイズは5
2a,bの配列変数サイズは5
endtextblock

No.4618 2017/10/30(Mon) 23:09:47
sethotkeyでキーボードにある左のSHIFTキーでのみ起動させる方法 / さやか
sethotkeyでキーボードにある左のSHIFTキーと右のSHIFTキー
を制御する事ができるでしょうか?
したい処理が左のSHIFTキーを押すとyuza2の関数を起動させるようにしたいです。
何か良い方法ないでしょうか?

sethotkey(VK_SHIFT, MOD_SHIFT, "yuza2")

No.4601 2017/10/27(Fri) 13:48:29

Re: sethotkeyでキーボードにある左のSHIFTキーでのみ起動させる方法 / さやか
追記)

仮想KEYコードリファレンスでVK_RSHIFTで試してみましたがうまくいきません。
下記のように書きました。
sethotkey(VK_RSHIFT, MOD_SHIFT, "yuza2")

No.4602 2017/10/27(Fri) 14:29:41

Re: sethotkeyでキーボードにある左のSHIFTキーでのみ起動させる方法 / stuncloud
たぶんsethotkeyだとVK_LSHIFT、VK_RSHIFTが取れないです
なのでVK_SHIFTで呼ばれた関数内でgetkeystateするしかないかな、と

sethotkey(VK_SHIFT, MOD_SHIFT, "shift")

procedure shift()
 select TRUE
  case getkeystate(VK_LSHIFT)
   msgbox("左SHIFT")
  case getkeystate(VK_RSHIFT)
   msgbox("右SHIFT")
 selend
fend

No.4603 2017/10/27(Fri) 15:54:36

Re: sethotkeyでキーボードにある左のSHIFTキーでのみ起動させる方法 / さやか
stuncloud様、selectで書くとは思いつきませんでした。これは便利ですね。
ありがとうございました。
while true
 select TRUE
  case getkeystate(VK_ALT)

  case getkeystate(VK_RSHIFT)

    case getkeystate(VK_F6)
wend

No.4610 2017/10/30(Mon) 20:06:51
2重ループの抜け方かgetElemetsbyNameの共通Name取得方法 / クッキー
こんにちは
UWSCで初めてプログラミングスクリプトを開始させた初心者です。

ドメインをサーバーに登録するという作業を自動化したいと思っております。

下記のようなHTMLがあり、テキストボックスのValueが空欄であれば1回だけドメインを入れたいです。
<INPUT TYPE="text" SIZE="30" NAME="mydomain1" VALUE="aaaa.com">
<INPUT TYPE="text" SIZE="30" NAME="mydomain2" VALUE="bbb.com">
<INPUT TYPE="text" SIZE="30" NAME="mydomain3" VALUE="">
<INPUT TYPE="text" SIZE="30" NAME="mydomain4" VALUE="">
空欄部分に文字を入れたら、サブミットボタンをおします。

テキストボックスへのINPUTはmydomainは最大9999まで入力可能で入力フォームの空欄が下に続いています。

mydomainの部分が連番なので、下記のようなスクリプトを作成しました。
しかし、この書き方だと最初に発見した空欄にドメインを入力した後にまた次の空欄を探しに行って、9999までこの処理を続けてしまいます。
空欄を発見し1回ドメインを1回入力しSUBMITボタンをしたら、この処理を終わりにしたいのですが、外側のFor ループの抜け方がわかりません。
どのように記述すればよいでしょうか?

もしくはmydomainを含むName属性をgetelementbynameで取得するという記述ができれば外側のfor i = 0 to 9999のループがいらなくなると思うのですが、そのやり方もわかりません。

何か良いやり方をご教授いただければ幸いです。
宜しくお願いいたします。

//*******作成したスクリプト**************
for i = 0 to 9999
i=0
NAME = "mydomain" + i
inputclasses = IE.document.getElementsByName(NAME)

for i = 0 to inputclasses.length - 1
NAME = "mydomain" + i
inputclasses = IE.document.getElementsByName(NAME)

if inputclasses.item(i).value = "" then
inputclasses.item(i).value ="abbbb.com" //ドメイを記入
IESetData(IE,True,"domain2") // SUBMIT ドメイン設定クリックする
break
Endif
next
next

//*******作成したスクリプト終わり**************

No.4606 2017/10/30(Mon) 17:12:42
メール送信 / おぐら
ネットで拾ってきたメール送信のスクリプトなのですが、ログインまではできても送信時にエラーが出ます。
原因はスクリプトではなく別の要素にあるのかもしれないですが、わかる方がいましたら教えていただけると幸いです。
低レベルで申し訳ないです。


Dim objEmail = CreateOleObj("CDO.Message")

//内容をセット
objEmail.From = "送信者@gmail.com"
objEmail.To = "あて先アドレス"
objEmail.Subject = "題名"
objEmail.Textbody = "内容"

Schemas = "http://schemas.microsoft.com/cdo/configuration/"
objEmail.Configuration.Fields.Item(Schemas + "sendusing") = 2
objEmail.Configuration.Fields.Item(Schemas + "smtpserver") = "smtp.googlemail.com"

objEmail.Configuration.Fields.Item(Schemas + "smtpserverport") = 465 //ポート番号
objEmail.Configuration.Fields.Item(Schemas + "smtpauthenticate") = True
objEmail.Configuration.Fields.Item(Schemas + "sendusername") = "ID(送信者@gmail.com)"
objEmail.Configuration.Fields.Item(Schemas + "sendpassword") = "メールパスワード(ログイン時と同じもの)"
objEmail.Configuration.Fields.Item(Schemas + "smtpusessl") = True

objEmail.Configuration.Fields.Update

objEmail.Send

No.4595 2017/10/26(Thu) 10:11:39

Re: メール送信 / stuncloud
> ログインまではできても送信時にエラーが出ます。
それはログインに失敗しているのでは

通常のメーラーを使って同一の設定でメールを送信できますか?
それが出来ない場合はまずgmail側の設定を確認してください
例えば二段階認証を有効にしている場合は通常のログインパスワードではなくアプリ専用のパスワードを都度発行する必要があります
あとは「安全性の低いアプリの許可」が無効になっているとか?

で、それらがクリアされてるならスクリプトの問題になります…が…
gmailのSMTPサーバーってsmtp.gmail.comじゃないですかね?
smtp.googlemail.comというのは…?

No.4596 2017/10/26(Thu) 11:08:47

Re: メール送信 / しろまさ
業務でさっきまでGmail設定してました^^

さて直接的な原因では無いと思いますが
smtpauthenticate は 0,1,2 指定なのでTRUE(1)はたまたま合ってるだけですね。
https://support.microsoft.com/ja-jp/help/555287

あとはstunさんの言うように、SMTPと二段階認証あたりの設定で通ると思います。

No.4600 2017/10/26(Thu) 16:32:48
テキスト全内容を引数にいれるだけで、重複内容行削除する方法 / さやか
テキスト全内容コピーした状態でスクリプト起動、重複内容行削除をした状態でのテキスト全内容を取得したいのですが、下記のスクリプトではエラーがでます。何か良い方法ないでしょうか?

下記の表示される
式がおかしい or 型が合っていない
配列[i]=hash[i, HASH_KEY])

---------------------

テキスト全内容=getstr(0)
a=jyuhuku(テキスト全内容)
print a

function jyuhuku(テキスト全内容)
call C:\Users\aruke\Desktop\ショットカット構文一覧\00_共通化.uws
HASHTBL hash = HASH_CASECARE // ●HASH_SORT
public 配列[-1]
file="C:\Users\aruke\Desktop\aa.txt"
COMMON.Write_ALLText(file,テキスト全内容)

fid=fopen(file, F_read)
gyou=fget(fid,-1)
for i = 0 to gyou
hash[fget(fid,i)]=1 // 1 はダミー
next


for i=0 to length(hash)-1
配列[i]=hash[i, HASH_KEY])
next
result=join(配列)
fclose(fid)
DELETEFILE(file)
fend

No.4597 2017/10/26(Thu) 12:24:41

Re: テキスト全内容を引数にいれるだけで、重複内容行削除する方法 / stuncloud
> 式がおかしい or 型が合っていない
> 配列[i]=hash[i, HASH_KEY])


エラーは最後の ) のせいです
また、それを解消しても

> public 配列[-1]

で配列サイズが0なので代入できずエラーになります

> for i = 0 to gyou

fgetの行指定は1からなので i = 1 としましょう

ちなみにhashtblも実はjoinできるので
> hash[fget(fid,i)]=1 // 1 はダミー
の部分でダミーの値を入れずに
hash[fget(fid,i)]=fget(fid,i)
としてキーと同じ値を入れておけば
join(hash) で値部分がjoinされます
(join用の配列を別途用意する必要がなくなる)

これでひとまずは目的通りの動作になると思います

No.4598 2017/10/26(Thu) 14:03:19

Re: テキスト全内容を引数にいれるだけで、重複内容行削除する方法 / さやか
stuncloud様、いつも回答ありがとうございます。
目的の動作ができました。
それにしてもUWSCというツールがすごいですね。無限の可能性を感じさせてくれます。
UWSCを使いこなせるようになったら、自分の可能性も拡げさせてくれるような気がします。


function jyuhuku1(テキスト全内容)
call C:\Users\aruke\Desktop\_共通化.uws
HASHTBL hash = HASH_CASECARE // ●HASH_SORT

file="C:\Users\aruke\Desktop\aa.txt"
COMMON.Write_ALLText(file,テキスト全内容)

fid=fopen(file, F_read)
gyou=fget(fid,-1)

for i = 1 to gyou
hash[fget(fid,i)]=fget(fid,i)
next

result=join(hash,"<#CR>")
fclose(fid)
DELETEFILE(file)
fend
endCLASS

No.4599 2017/10/26(Thu) 14:37:36


 過去ログ(〜2017/08/24)・検索ツール


以下のフォームに記事No.と投稿時のパスワードを入力すれば
投稿後に記事の編集や削除が行えます。
200/200件 [ ページ : << 1 ... 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 >> | 過去ログ ]