[ 掲示板に戻る ]

過去ログ閲覧モード

call でファイルを呼び出す / モリタ
o_Ws = CreateOleObj("WScript.Shell")
desktop = o_Ws.SpecialFolders("Desktop")
path = desktop + "\uwsc\loginID.uws"

call path




デスクトップの uwsc というフォルダーの中に、ログイン情報を記載をしたファイルがあり、それを呼び出したいのですがうまくできません。

どのように記載をしたらよいのか、アドバイスをいただけませんでしょうか?
宜しくお願いします。

No.243 2014/10/10(Fri) 11:08:04

Re: call でファイルを呼び出す / モリタ
補足です。

呼び出されるファイルはローカルのデスクトップなのですが(親ファイル)
呼び出すファイルは、ドロップボックスで共有をするファイルです。

利用をする人数が数名いて、ログイン情報は各自のPCに保存をしたいため、
上記のように、変数を使ってログイン情報を呼び出したいです。

No.244 2014/10/10(Fri) 12:01:29

Re: call でファイルを呼び出す / koh
Helpに書かれている これが原因かな?

 ※ UWSファイル名の割り当てに変数を使用する事はできません

No.245 2014/10/10(Fri) 13:21:25

Re: call でファイルを呼び出す / モリタ
koh様

ありがとうございます!
できないんですね・・・

他の方法を考えます!

No.246 2014/10/10(Fri) 15:53:36

Re: call でファイルを呼び出す / stuncloud
個別に情報を保存するのであればiniファイルを使うとかが楽でいいと思うのですが
もしかして認証情報が書いてあるuwsファイルを暗号化している、といった事情があるためcallしたいということだったりするのかな?

こんなのはどうでしょう

親ファイル.uws
----------------------------------

// ↑1行目はあえて空欄にしておく

// 自身の1行目を読み込む
this = fopen(GET_UWSC_NAME, F_READ or F_WRITE)
row1 = fget(this, 1)

if pos("call", row1) <> 1 then // 1行目にcall文がない場合
 with createoleobj("WScript.Shell")
  path = .SpecialFolders("Desktop") + "\uwsc\loginID.uws"
 endwith
 // 1行目にcall文を書き加える
 fput(this, "call " + path, 1)
 fclose(this)
 poff(P_UWSC_REEXEC, TRUE) //スクリプト再実行
endif

fclose(this)
// call文が書かれていれば処理を続行する
// ここ以降は本来の処理を書いておいてください
----------------------------------

はじめに親ファイル自身にcall文を書き込むことによって、異なる環境に対応します

No.249 2014/10/10(Fri) 16:09:27

Re: call でファイルを呼び出す / しろまさ
> もしかして認証情報が書いてあるuwsファイルを暗号化している、といった事情があるため
stanさん、深読みしすぎなような・・

以下イニシャルファイルの使い方〜 (拡張子はなんでもOK)

o_Ws = CreateOleObj("WScript.Shell")
path = o_Ws.SpecialFolders("Desktop") + "\loginID.uws"
Sect = "LoginInfo"

WriteIni(Sect, "ID", "id12345", path)
WriteIni(Sect, "Pass", "pass12345", path)

MsgBox(ReadINI(Sect, "ID", path))
MsgBox(ReadINI(Sect, "Pass", path))

No.254 2014/10/10(Fri) 17:03:11
createfome でローカルのmp4ファイルを再生させたい / satos
//satos です。

//==============================================================
//以下のソースでローカル情報のMP4ファイルを自動再生させたいのですが,
//うまくいいかないのです。
//有志の方,ご教授していただけないですか?
//==============================================================

TEXTBLOCK testHtml
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>サンプル</title>
<body>
ビデオを表示させたい
<video src='file:///D:/●●●●●.mp4' width="640" height="360" autoplay loop></video>
</body>
</html>
ENDTEXTBLOCK


obj = CREATEFORM("about:blank", "test", True, FOM_NOHIDE)  // フォーム生成
obj.Document.write(testHtml)


i_Cnt=0
while obj.Visible
i_Cnt=i_Cnt+1
fukidasi("確認中"+ i_Cnt)
sleep(0.01)
wend

No.226 2014/10/06(Mon) 23:54:45

Re: createfome でローカルのmp4ファイルを再生させたい / satos
createfome → createform です。
No.227 2014/10/06(Mon) 23:55:32

Re: createfome でローカルのmp4ファイルを再生させたい / satos
<video>タグはHTML5からの対応似なり
http://www.tagindex.com/html5/embed/video.html
リファレンスがのっています。

No.228 2014/10/06(Mon) 23:58:56

Re: createfome でローカルのmp4ファイルを再生させたい / stuncloud
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&log=ON&mode=all&cnt=42&no=5064

これを参考に content="IE=Edge" でドキュメントモードを最新のIEにしてみたところ、再生できました

No.229 2014/10/07(Tue) 14:06:05

Re: createfome でローカルのmp4ファイルを再生させたい / satos
stuncloud さん
参考リンクありがとうございます。
無事に動画が表示できることが確認できました。
■改善作業
<head>部に<meta http-equiv="X-UA-Compatible" content="IE=9"> を追加
obj.refreshを追加

ありがとうございます。 satos

No.240 2014/10/09(Thu) 10:31:00
複数スレッドの組合せ処理ができない / わーみぃ
callを使わずに複数スレッドにて処理させたいのですが、どうしても途中で止まってしまいます。
実際のコードはもっと複雑で事情があり提示できませんが、簡単にしたものを貼り付け致します。
フラグの位置や組み立て方などもいろいろ試してみましたがうまくいきません。
ご教授頂けますと幸いです。宜しくお願い致します。

Public Flag_End = FALSE

thread メインA()
thread メインB()

Repeat
 Sleep(0.2)
Until Flag_End

PROCEDURE メインA()
 while true
  for i = 1 to 50
   ifb i mod 10 = 0 then
    fukidasi("10の倍数:" + i,100)
    thread サブA()
   endif
   sleep(1)
   fukidasi("")
  next
 wend
 Flag_End = True
Fend

PROCEDURE メインB()
 while true
  for i = 1 to 50
   ifb i mod 6 = 0 then
    fukidasi("6の倍数:" + i,200)
    thread サブB()
   endif
   sleep(1)
   fukidasi("")
  next
 wend
 Flag_End = True
Fend

PROCEDURE サブA() //サブAは多重起動を想定しています
 cnt = 1
 while true
  if cnt > 2 then
   exit
  endif
  for i = 1 to 10
   fukidasi(i,300)
   sleep(0.1)
   fukidasi("")
  next
  cnt = cnt + 1
 wend
Fend

PROCEDURE サブB() //サブBは多重起動を想定しています
 cnt = 1
 while true
  if cnt > 2 then
   exit
  endif
  for i = 1 to 10
   fukidasi(i,400)
   sleep(0.1)
   fukidasi("")
  next
  cnt = cnt + 1
 wend
Fend

No.232 2014/10/08(Wed) 04:45:53

Re: 複数スレッドの組合せ処理ができない / stuncloud
途中で止まってしまうというのがよくわかりませんが
(このサンプルですと完全に無限ループなので)

メインA()とメインB()が何かしらのタイミングでwhileループを抜けてFlag_Endを書き換えられるとして
メインA()が先に終わってしまいメインB()終了前にスクリプトを抜けてしまう(あるいはその逆)という意味であれば…

Public Flag_End_A = FALSE // メインA()終了時にTRUEになる
Public Flag_End_B = FALSE // メインB()終了時にTRUEになる

thread メインA()
thread メインB()

Repeat
 Sleep(0.2)
Until Flag_End_A and Flag_End_B

とすることでメインA()とメインB()の両方の終了を待つことが出来ます

No.233 2014/10/08(Wed) 10:10:31

Re: 複数スレッドの組合せ処理ができない / わーみぃ
stuncloudさん、ありがとうございます。
>(このサンプルですと完全に無限ループなので)
そうなんです。あえて無限ループにしているのです。
ですが、KansuCall:System Error. code:5. アクセスが拒否されました。
21行目:THREAD サブA となります。
アドバイス頂いたようにFlag_Endを2つ入れてみましたが結果は変わりませんでした。

どうしても並列作業させたいのでcallは使えないので、execなどを検討してみます。

No.236 2014/10/08(Wed) 17:23:02

Re: 複数スレッドの組合せ処理ができない / しろまさ
uwscが最新版でないとか、スレッドの最大数を超えてるとかあります?

以下更新履歴
 [Ver5.0.3]
  エラー「KansuCall:Overflow while converting...」が出る事があるのを修正
  多重スレッドにて BALLOON関数を呼び出した時にエラーが出る事があるのを修正
13/10/03 ver4.9a
 複数スレッドから同じ関数を呼び出した時に 引数部分でエラーを起こすのを修正
 複数スレッドにてBALLOONを出した時 GETID(GET_BALLOON_WIN)が別スレッドのBALLOONを返すのを修正
13/09/02 ver4.9
 スレッド使用にてエラーが出るパターンがあるのを修正(スレッドの安定化、最大数を64に)

No.237 2014/10/08(Wed) 17:44:58

Re: 複数スレッドの組合せ処理ができない / わーみぃ
しろまささん、ありがとうございます!
uwscを最新版にしたらうまく動くようになりました。
更新履歴は常日頃チェックしておくべきだと痛感!
このたびはお騒がせいたしました。

No.239 2014/10/09(Thu) 00:41:08
SLCTBOXで二次元配列 / むっちー
以下のスクリプトでIDの項目だけ選択させたいのですが、PASSWORDの項目も入ってしまいます。IDの項目だけ表示させるにはどのようにすればいいですか?
わかりにくい質問ですがご教授お願いします。

Dim array[][1]=_
"ID1","PASSWORD1",_
"ID2","PASSWORD2",_
"ID3","PASSWORD3",_
"ID4","PASSWORD4",_
"ID5","PASSWORD5"

SlctBox(SLCT_NUM,0,"IDを選択して下さい",array[][0])

No.212 2014/10/03(Fri) 15:52:16

Re: SLCTBOXで二次元配列 / むっちー
お世話になります。よく考えてみたら、解決策を見つけました。

Dim array[][1]=_
"ID1","PASSWORD1",_
"ID2","PASSWORD2",_
"ID3","PASSWORD3",_
"ID4","PASSWORD4",_
"ID5","PASSWORD5"

elements = Length(array)-1
Dim id[elements]
For i = 0 to elements
id[i] = array[i][0]
Next

SlctBox(SLCT_NUM,0,"IDを選択して下さい",id)

プログラムをもっと勉強いたします。
ありがとうございました。

No.216 2014/10/03(Fri) 23:19:37

Re: SLCTBOXで二次元配列 / しろまさ
// 連想配列を使うとちょっとシンプルに。

HashTbl  h_ID
h_ID["PASSWORD1"] = "ID1"
h_ID["PASSWORD2"] = "ID2"
h_ID["PASSWORD3"] = "ID3"
h_ID["PASSWORD4"] = "ID4"
h_ID["PASSWORD5"] = "ID5"
re  = SlctBox(SLCT_NUM,0,"IDを選択して下さい",h_ID)
If  re > -1  Then MsgBox(h_ID[re, HASH_KEY])

No.234 2014/10/08(Wed) 14:14:22
LOCKHARDEX関数について / eha
失礼いたします。
過去の質問等を確認しましたが、自己解決する事が出来なかった為、もしもご存知の方がございましたら、ご教授をお願いします。


while True // Loop開始
if GETKEYSTATE(VK_ESC) then exit// ESCキーで動作終了
LOCKHARDEX(("Windows Internet Explorer"),[LOCK_MOUSE])
CTRLWIN(GETID("Windows Internet Explorer"),ACTIVATE)
CTRLWIN(GETID("Windows Internet Explorer"),NOTOPMOST)
CTRLWIN(GETID("Microsoft Office Word"),TOPMOST)
wend // Loop終了
LOCKHARDEX() // 引数無しにて入力禁止を解除


と入力し実行したところ、



変数: が定義されていません
3行目: LOCKHARDEX("Windows Internet Explorer",[LOCK_MOUSE])



という警告が表示されてしまい、実行する事が出来ません。

このスクリプトで、
・"Internet Explorer"を最背面且つアクティブ化し、最背面のInternet Explorerのみをマウス操作を禁止にする
・最前面で別のウィンドウを表示(Excel・Word等)&最前面のウィンドウのみマウス操作を可能の状態にする
の二つを実行したいと考えております。

今回は、なぜこのような警告が表示されたのかがわかりません。
どなたか解決方法をわかる方がおられましたら、ご教授のほど、よろしくお願いしたします。

No.219 2014/10/05(Sun) 11:01:46

Re: LOCKHARDEX関数について / yanyan
[ ]内はオプションで省略可能(デフォルト設定がある)との意味、[ ]は不要です。
警告は、前後に[ ]のあるユーザ変数として解釈されてしまったのでしょう。

LOCKHARDEX("Windows Internet Explorer",LOCK_MOUSE)

No.220 2014/10/05(Sun) 13:04:37

Re: LOCKHARDEX関数について / eha
迅速なご返答、ありがとうございます。
[]を外して実行した結果、

Windows Internet Explorer: 定義が間違っています
3行目:LOCKHARDEX("Windows Internet Explorer",LOCK_MOUSE)

という警告文が表示されてしまいました。
[]を外すことによって、他の宣言が必要…なのかもしれませんが、勉強不足で全くわからない状況なので、もう少し試行錯誤してみようと思います。

No.221 2014/10/05(Sun) 14:18:36

Re: LOCKHARDEX関数について / yanyan
ロックしたいWindowのIDが得られているか確認したらいかかでしょうか

ID=getid("Microsoft Internet Explorer")
LOCKHARDEX(ID,LOCK_MOUSE)

No.222 2014/10/05(Sun) 16:24:32

Re: LOCKHARDEX関数について / ミリアム
LOCKHARDEX("Windows Internet Explorer",LOCK_MOUSE)
ではなく
LOCKHARDEX(GetID("Windows Internet Explorer"),LOCK_MOUSE)
だと思いますー

No.224 2014/10/06(Mon) 03:38:24

Re: LOCKHARDEX関数について / eha
返信が遅くなってしまい、申し訳ございませんでした。
ミリアムさんの仰った通りに組みなおした結果、無事に想定していた動作を行う事が出来ました。

yanyanさん、ミリアムさん、ご助言ありがとうございました!
もっと勉強をして、知識を深めていきたいと思います。
それでは、失礼します。

No.225 2014/10/06(Mon) 21:13:39
XlOpenについて / koh
下記ScriptをExe化して、あるExcelが起動している時に、
別のExcelファイルを EXE にドロップした時に
XlOpenの起動フラグを「0」にしても、パスワード有りだと
パスワードを聞かれ、それをキャンセルすると
タスクマネージャーのプロセスで確認した時、EXCEL.EXE が2つできている
パスワードを入力した場合はEXCEL.EXEは1つ

パスワードを聞かれる事自体おかしいと思い、色々調査した結果
BというExcelファイルに下記のVBAコードを入れると
パスワード有りの場合はパスワードを入れた時、パスワード無しは毎回
2回メッセージが出るので 2回起動されている???

Excelが1つも起動していない時は普通に開き、メッセージも1回しかでないです。


Private Sub Workbook_Open()
MsgBox ("Hello")
End Sub


//Script_1
FileAdd = PARAM_STR[0]
Xlopen(FileAdd,0)


//Script_2
FileAdd = PARAM_STR[0]
Xlopen(FileAdd,0,"PassWord := 12345")


動作環境
 Win7 SP1
 UWSC Pro Ver 5.020
Excel2007 で 97-2003保存のBookを使用

No.210 2014/10/03(Fri) 10:52:10

Re: XlOpenについて / umiumi
確認しました。
対処します。

No.217 2014/10/03(Fri) 23:56:37

Re: XlOpenについて / koh
よろしくお願いします
No.218 2014/10/04(Sat) 06:35:35
IESETDATA で参照ボタンが押せない! / Nagatani
いつもお世話になります!IE11でファイルを添付する時の「参照...」ボタンですが、
FOR I = 1 TO 9
CLIKITEM(ID,"参照...",CLK_ACC,TRUE,I)
NEXT
では、一回のみ反応し2回目以降は反応しません!
また、
IESETDATA (IE,TRUE,"","参照...")
では、全く反応しません!
要素の調査では、
<INPUT NAME="file1" Id="file1" type="file1" size="70></input>
と書かれています!いつも、質問ばかりで申し訳けありませんが
アドバイスをよろしくお願いいたします!

No.205 2014/10/02(Thu) 12:58:14

Re: IESETDATA で参照ボタンが押せない! / Nagatani
お世話になります。ホームページを渡り歩いて訳が分からないまま
解決策を見つけました。

添付File = "xxxxxxxxxx.txt" //添付するファイル名
Name = "file" //参照ボタンのnameが"file"の場合
IEUpLoad(IE,name,添付File) //IEuploadへ

/////////////////////////////
//--ダイアログ用スレッド起動&参照ボタンクリック
Procedure IEupload(IE,name,file)
DIM doc,I,II
Thread FileupDialog(file)
doc=IE.document
COM_ERR_IGN
for i=0 to doc.forms.length-1
for ii=0 to doc.forms(i).elements.length-1
ifb doc.forms(i).elements(ii).name=name
doc.forms(i).elements(ii).click()
Break 2
endif
next
next
COM_ERR_RET
Fend

///////////////////////////
//--ダイアログファイル選択&ボタンクリック
Procedure FileupDialog(file)
DIM ID
id = Getid("アップロードするファイルの選択","#32770",-1)
sleep(1)
Ctrlwin(id,ACTIVATE)
Sendstr(id,file,0,True) //カレントへペースト
Clkitem(id,"開く(O)")
Fend

このプログラムが理解できるよう勉強いたします。
ありがとうございました。

No.215 2014/10/03(Fri) 22:20:40
Error : 最大FILE OPEN数=32 を 超えました / みどり
Error : 最大FILE OPEN数=32 を 超えました というエラーが出ます
対処をご存知の方おられますか?
起動時間は3時間位で 書き込み回数が100回位までは正常に動いていました。
windows8.1

while 1

処理

fid=FOPEN("test.txt",F_READ or F_WRITE)
FPUT(fid, data)
FCLOSE(fid)
wend

No.201 2014/10/02(Thu) 09:13:55

Re: みどり / なま
fcloseし忘れているfopenがあるということですね。
fopenは記載の箇所だけですか?

No.203 2014/10/02(Thu) 12:32:49

Re: Error : 最大FILE OPEN数=32 を 超えました / みどり
Fopen Fclose は1つずつだけです。 
Fcloseし損ねることはありえるのでしょうか?
Fcloseされたかどうか調べる方法を探しているのですが 見つかっていません

No.206 2014/10/02(Thu) 13:11:20

Re: Error : 最大FILE OPEN数=32 を 超えました / ミリアム
Flag = FCLOSE(fid)
MsgBox(Flag)

としてみてはどうでしょうか?
閉じるのに失敗していた時は0が表示されると思います。

No.209 2014/10/02(Thu) 23:43:58

Re: Error : 最大FILE OPEN数=32 を 超えました / みどり
Flag = FCLOSE(fid) で確認を入れて エラー処理をしてみます。 flag=1で失敗していると思ってました。
No.213 2014/10/03(Fri) 17:01:36

Re: Error : 最大FILE OPEN数=32 を 超えました / 森
現状のままでもファイルクローズに失敗した際にエラーダイアログが出ているはずなので、
クローズできていないのが原因じゃあ無いように思います。

開いているのは同じファイルなので、
ファイルオープン時に排他制御( F_EXCLUSIVE )を加えてみたらどうでしょうか?

No.214 2014/10/03(Fri) 17:19:32
fire foxでの特定URLのクリック / panda
fire foxで任意のURLのリンクがあればクリックするなんてことはできるのでしょうか。
IEではできたのですが、IEはどうしても好きになれず、なんとかfire foxで実現したいと考えています。

例)http://xxxx.com/へのリンクがあればクリック
ソースは<a href="http://xxxx.com/">????</a>となるが、????に何の文字が入るか解らない。

お助けいただければ幸いです。

No.199 2014/10/01(Wed) 21:01:18

Re: fire foxでの特定URLのクリック / なま
IEを好きになればいいと思います。
//----
id = GETID("Mozilla Firefox", "MozillaWindowClass", -1)
SENDSTR(id, "http://xxxx.com/", 1, True, True)
SCKEY(id,VK_ENTER)
//----
FirefoxはCOM経由でDOMへアクセスする手段が無いので、スマートな方法は諦めて下さい。

No.202 2014/10/02(Thu) 11:11:07

Re: fire foxでの特定URLのクリック / ミリアム
ID = GetID("Mozilla Firefox", "MozillaWindowClass", -1)
SCKey(ID, VK_Ctrl, U)
ID2 = GetID("次のソース", "MozillaWindowClass", -1)
SCKey(ID2, VK_Ctrl, A, C)
Data = GetStr(0)
SCKey(ID2, VK_Ctrl, W)
If Pos("<a href=<#DBL>http://xxxx.com/<#DBL>>", Data) > 0
 SendStr(ID, "http://xxxx.com/", 1, True, True)
 SCKey(ID, VK_ENTER)
EndIf

作るとしたらこんな感じじゃないでしょうか。
スマートのsの字も無いですね!

No.208 2014/10/02(Thu) 23:40:32

Re: fire foxでの特定URLのクリック / panda
ご返答、ありがとうございました。
スマートではないのですが自己解決しました。

全てのクリックアイテムを取得してから、それらの座標を出してURLを取得してURLマッチングを行いました。

No.211 2014/10/03(Fri) 13:38:58
指定URLへアクセス(navigate) のトラブル / NWA
スクリプトで指定URLへアクセスする以下の処理について
今迄、正常に動作していたのですが、ある時を境に動作しなくなりました。
特にブラウザの設定や、PCの環境を変えたわけではないのですが・・・

以下の★印のところに pirnt を入れて確認したところ、"False" となっております。
他の正常動作する環境では、"True" となります。回避方法がわかる方ご教示ください。
よろしくおねがいします。


IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True

IE.Navigate( URL )→ 対象の "URL"を定義してます
★ print IE.busy
BusyWait(IE)

No.198 2014/10/01(Wed) 19:43:14

Re: 指定URLへアクセス(navigate) のトラブル / ミリアム
print IE.busyをBusyWait(IE)の下にしてみてはどうでしょうか。
No.207 2014/10/02(Thu) 23:26:52
全1170件 [ ページ : << 1 ... 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 >> ]