[ 掲示板に戻る ]

過去ログ閲覧モード

終了ダイアログ / E-マッスグ
uwscの終了時に終了の確認ダイアログを表示させる方法を教えてください
No.2695 2016/08/01(Mon) 15:28:58

Re: 終了ダイアログ / stuncloud
こういうのでいいんですかね

// 「はい」を押せば終了
repeat
until msgbox("終了しますか?", BTN_YES or BTN_NO) = BTN_YES

No.2699 2016/08/03(Wed) 10:23:10
Windows10でKBD()が使えない / かん
Windows10にアップグレードしたところ、
KBD()が動作しないようになってしまいました。

UWSCpro5.22使用中です。
再インストールなどしてみましたが改善しません。

メモ帳などでAAAAと入力するような簡単な動作もできません。
記録を使ってキーボード操作してみてもKBD()がなく空っぽです。

どのような原因が考えられますでしょうか?

No.2680 2016/07/28(Thu) 15:15:34

Re: Windows10でKBD()が使えない / MM
ずばりWindows10にアップグレードしたのが原因でしょう!
No.2694 2016/07/31(Sun) 23:15:25
chkimg()の処理速度について / cf
chkimg() をなるべく速く動作させたいと思っています。
現在、1回の呼び出しに30ミリ秒ほどのコストがかかっています。

戻値 = CHKIMG( [画像名, 透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )

座標を絞り込んでも少ししか早くなりません。(x1 = x2 = y1 = y2 = 0 の状態で実行しても遅いです)
色幅や透過色を0にしても大差がありません。
UWSCの検索速度は高速だけど、Windowsから画像を取得するAPI自体が重い・・・という事でしょうか?

No.2690 2016/07/30(Sat) 23:09:53

Re: chkimg()の処理速度について / MM
30ミリ秒は非リアルタイムOSにしては十分速いのでは。
キーストロークの送信だって安定して実施するためには数十ミリ秒のウェイトが必要なのに…
デスクトップ録画ならデスクトップ録画専用ソフトを使うべきだし、
アニメーションする画像の一瞬の一コマを判定しようというのなら無理を通す分、
時間がかかるのは仕方ないと思う…

No.2692 2016/07/31(Sun) 23:12:05
ListViewの項目ダブルクリックについて / kei
お世話になります。
前回、外部プログラムから参照出来ないかと質問したものです。一回だけ、使ってみて良し、という許可を得て、ミッションに突撃しています。

XP端末にて、ヘルプファイルを開いて内容を別の形式で保存せよ、と言うミッションです。
HLPという拡張子のファイルと、cntという拡張子のファイルがあります。
単ページのファイルと、目次付きのHLPファイルがあるらしき事がわかり、目次付きを攻略しようとしています。

◆ツリービューを操作する際の、堅実な方法を教えて頂けないでしょうか。

トピックの検索、というタイトルのダイアログ的な目次ウィンドウが表示されます。
1. これがツリービューを持っていて、その構造を取得します。
2. 上(若番)から、ダブルクリックして開いていきます。フォルダなら展開、リーフなら別窓が開いて、目次ウィンドウは見えなくなります。
3. 別窓に表示されたテキストを取得して、目次ボタンを押して戻ります。目次ダイアログが、再表示されます。
2と3を繰り返し、1で取得したリストが尽きたら終了、という構成です。

手動で実施すると問題ないのですが、スクリプトでは、ツリービューのダブルクリックが上手くいかないときがあります。一つ下のリーフノードを開きたいのに、飛ばしてしまうのです。
リトライしても、駄目なようです。

◆項目名を指定してのダブルクリック、コケる時の対処方法を教えて頂けないでしょうか。
キーによる操作を試みたのですが、一貫性が無い作りで、(※右下押下して、横滑りする時がある)、こまっています。

※右押下で、次ノードに行くパターンがある。
何卒、よろしくお願いします。

No.2675 2016/07/27(Wed) 22:39:14

Re: ListViewの項目ダブルクリックについて / しゅん
XP環境もないですし、hlpの表示がどんなだったか忘れてしまったので、UWSCを使ったアドバイスはできませんが、、、

以下のようなソフトで、リッチテキスト形式を取得した方が楽ではないでしょうか。
(とUWSCの掲示板であるのを無視した発言をしてみる)
http://www.gigafree.net/utility/universalextractor.html

No.2681 2016/07/28(Thu) 20:20:05

Re: ListViewの項目ダブルクリックについて / kei
返信ありがとうございます。管理者権限無いので、難しいかもしれませんが、試してみます。

以下、UWSCの質問ですw
ダブルクリックを諦め、シングルクリック(というか、項目選択)して、同じダイアログ内のボタンをクリック、という流れに作り直そうとしています。
◆all_item_listの退避を行う必要があります。
ツリービューのループの中で、ボタンの内容取得(キャプションが固定でない)を行うため、listが上書きされる為です。
別の配列にコピーしたとき、情報が欠落したりしますか?

No.2683 2016/07/29(Fri) 07:17:39

Re: ListViewの項目ダブルクリックについて / stuncloud
>別の配列にコピーしたとき、情報が欠落したりしますか?
欠落しないようにコピーすれば、しません
sliceを使うと一行で複製できますよ

ALL_ITEM_LIST_CLONE = slice(ALL_ITEM_LIST, 0, length(ALL_ITEM_LIST) - 1)

No.2685 2016/07/29(Fri) 14:50:54

Re: ListViewの項目ダブルクリックについて / kei
ご回答ありがとうございます。
一行でかけるのは、カッコ良いですね。
使わせて頂きます。
帰り間際に、テキストと画像を保存するスクリプトを仕掛けておいたので、
次の工程に進むのですが、また、別の投稿で相談させて頂きます。

No.2686 2016/07/29(Fri) 21:07:50
PostgreSQLに接続し、CSVデータをアップロードしたい / KEIKEI757
お世話になります。

UWSCを使用して、
・CSVファイルを読み込み
・PostgreSQLに接続
・PostgreSQLにCSVファイルのデータをアップロードする

上記処理について、スクリプトの書き方を探しております。
PostgreSQLで使用しているバージョンは9.5となります。

サポートいただけると助かります。

No.2679 2016/07/28(Thu) 11:00:47

Re: PostgreSQLに接続し、CSVデータをアップロードしたい / しゅん
すみません、UWSCを使う必要性があるのでしょうか?
(とUWSCの掲示板で書いてみる)

バッチ処理でCOPY文を流せば良いかと思いますが、、、。
http://tech.ewdev.info/2014/06/1961/
http://qiita.com/egg_chicken/items/cec72bda3759f875285f

No.2682 2016/07/28(Thu) 20:23:28

Re: PostgreSQLに接続し、CSVデータをアップロードしたい / stuncloud
以前UWSCからPostgreSQLを扱うのにPgsqlComを使ったことがありました
今でも使えるのかな?

No.2684 2016/07/29(Fri) 14:44:17
一定時間ごとに実施して一定時間後に終了 / ayu
初心者ですが、タイトルのように、5分ごとに実施して、30分後に終了するスクリプトを探しています。よろしくお願いします。
No.2676 2016/07/28(Thu) 07:56:17

Re: 一定時間ごとに実施して一定時間後に終了 / stuncloud
sethotkey(VK_PAUSE, 0, "stop")

span = 5 * 60 // 開始間隔は5分
work = 30 * 60 // 作業時間は30分

start = gettime() + span

while TRUE
 if gettime() >= start then
  thread 30分で終わる(start + work)
  start = start + span
 else
  sleep(0.1)
 endif
wend

procedure 30分で終わる(end)
 balloon("作業中", n * 70, 10)
 if n > 9 then n = 0 else n = n + 1
 repeat
  sleep(0.1)
 until gettime() >= end
fend

public n

procedure stop
 exitexit
fend

解説
30分経ったら停止する作業がなんだかはわかりませんが、繰り返し行う単純作業だったらこんな感じで良いです
30分で終わる()関数のループ内に処理を書いたらいいと思います
スレッドをガンガン使ってますがこのくらいなら使い潰すことはないので問題ない(はず)です
軽く試したいならspan=1, work=6くらいにしてみてください、どういう感じに動くかわかると思います
Pauseキーを押して強制終了できるようにsethotkeyを使っています

No.2677 2016/07/28(Thu) 10:15:00

Re: 一定時間ごとに実施して一定時間後に終了 / ayu
早速のご教示、ありがとうございます。使わせていただきます。
ツイキャスを録画しているんですが、開始時間がいつもずれ込みますので、
パソコンの前に待機するのが面倒なのです。

No.2678 2016/07/28(Thu) 10:32:02
エクセルのマクロが2回実行される / 佐々木
エクセルのマクロ実行に関して下記現象に困惑しています。

現象:エクセルからマクロを呼び出すと正常に1度だけ実行されるが、
UWSCから.Runメソッドでマクロを呼び出すと2度実行されてしまう。
(1回呼ぶ毎にセルの値が1増えるのが正しいのですが,何故か2増えてしまいます)

 ■エクセルVBA側
  Sub test()
  '呼ばれる毎にセルの値をインクリメントする
   Worksheets("シート1").Range("A1").Value = Worksheets("シート1").Range("A1").Value + 1
  End Sub

 ■UWSC側
  Excel_S.Run("Excel.xlsm!TEST()")

  以下の様に第3引数で「実行終了を待つ」にしても2度実行されてしまいました。
  Excel_S.Run("Excel.xlsm!TEST()",,TRUE)

  セルのインクリメント以外のVBA(PRINT等)に置き換えても2度実行はされます。

ちなみに上記問題が発生したプログラムはVBA側でUWSCからのセルへの書き込みを
見張って処理する様にすれば2度実行される現象を避けることはできますが、
根本原因が不明のままではスッキリしないのでお知恵を拝借願えないでしょうか。

PS. エクセルの設定でプロセッサ数を4から1に減らしても実行回数に変化なしでした。

No.2666 2016/07/24(Sun) 12:10:38

Re: エクセルのマクロが2回実行される / しゅん
解決しなくてすみません。
ただ、UWSCの問題ではありません。

PowerShellから同様に呼び出してみましたが、2回実行されます。
ExcelのRunメソッドに何か秘密がある気がします。
なお、ExcelのRunメソッドの第三引数をTrueにしても、「実行終了を待つ」動作に変わりはないと思います。

No.2669 2016/07/25(Mon) 12:55:19

Re: エクセルのマクロが2回実行される / Nagatani
理由はわかりませんが下記のExcel.Run("Sample1.xlsm!Sample()") にすると
マクロが2回走るようで、「StrPattern = 1」 にすれば解消されるようです。

FOR LonI1 = 1 TO 5
  Excel = CreateOLEObj("Excel.Application")
  Excel.Visible = True

  StrPattern = 2

  If StrPattern = 1 THEN
   Excel.WorkBooks.Open("C:\Users\xxxxxx\Documents\Sample1.xlsm")
   Sleep(1)
   Excel.Run("Sample")

  ElseIf StrPattern = 2 THEN
   Excel.Run("Sample1.xlsm!Sample()")
  ENDIF

  EXCEL.Save
  EXCEL.QUIT
NEXT

No.2671 2016/07/25(Mon) 22:21:47

Re: エクセルのマクロが2回実行される / 佐々木
PowerShellでもご確認いただき(お手数をお掛けしてしまいましたが)、
エクセル側のバグという事でしたら解決には時間も掛かりそうなので
対処療法で逃げるのも仕方無い事と諦められます。
お蔭さまでモヤモヤが解消できました、ありがとうございました。

No.2672 2016/07/25(Mon) 22:21:51

Re: エクセルのマクロが2回実行される / しゅん
なるほど、Nagataniさんの指摘の通り、Excel.Run("Sample1.xlsm!TEST") と、カッコを外すと、1回になりますし妙なリターン(エラー)もなくなりますね。
カッコをつけると、何か問題があるようです。

引数のあるマクロ関数を
Excel.Run("Sample1.xlsm!TEST2(23)")
とか呼べてしまいますが、これは2回呼び出しを免れる方法はなさそうですね。
ただ、
Excel.Run("Sample1.xlsm!TEST2", 23)
と書くべきですが。

Runメソッドの仕様上、カッコをつける方がおかしい、といったところのようですね。

No.2673 2016/07/26(Tue) 12:36:51

Re: エクセルのマクロが2回実行される / 佐々木
Nagataniさん、しゅんさんありがとうございました。
的確なアドバイスを頂いたおかげでスマートなUWSCスクリプトを記述する事ができました。
「Runメソッドの仕様上、カッコをつける方がおかしい」という事に自分ではまったく気が付けなかったのが残念です、VBA側と同じ形でカッコ内に引数を並べて呼び出すという勝手な思い込みでコーディングしてしまってました。。。

No.2674 2016/07/26(Tue) 23:04:47
powershell、エクセルからの参照設定は可能でしょうか? / kei
お世話になります。
個人的には大変便利に使わせて頂いているのですが。
会社で使用する場合、セキュリティが厳しく、フリー版EXEファイルを実行するのも禁止されています。
powershellからアセンブリ参照したり、エクセルから参照設定してUWSCを使うことはできないでしょうか?

No.2667 2016/07/24(Sun) 14:40:16

Re: powershell、エクセルからの参照設定は可能でしょうか? / しゅん
どちらもできません。
EXE実行禁止を解除してもらえるよう、交渉するのが良いかと思います。

技術力があれば、EXEをロードして機能を使うことが可能ではありますが、そこまでして使う意味はないでしょう。
PowerShellが使えるのであれば、UIAutomationを使えばCHKIMG以外は面倒ですが、なんとかなります。
CHKIMGもがんばればなんとかなりますが、、、技術力が必要です。

No.2668 2016/07/25(Mon) 12:40:24

Re: powershell、エクセルからの参照設定は可能でしょうか? / kei
ご回答ありがとうございます。
アンマネージのdllも使えるんだから、exeも行けそうですが、橋渡し役が居なくて、ゴリゴリしないといけないかも。止めておきます。
今回、改めてお手軽さを実感しました。
ありがとうございます。

No.2670 2016/07/25(Mon) 21:23:10
指定の2つのキー入力で、エクセルの空白行のa列、b列入力方法について / シスイ
指定の2つのキー、例えばaキーの場合はエクセルの空白行のa列に入力、bキーの場合はエクセルの空白行のb列に入力の方法を考えているのですが、思いつきません。if文を使えばできそうな感じもするのですが分かりません。ご指導頂けませんでしょうか?
下記のコードでa列の空白行にコピーすることで追加入力までは分かっています。

Excel = XLOPEN("C:\Users\aruke\Desktop\aaaaaaaaBook1.xlsx")
XLACTIVATE(Excel, "Sheet1")
y = 1
x = 1
SENDSTR(0, "")
while True
sleep(0.2)
ss = GETSTR(0)
ifb ss <> "" // クリップボードにある
Excel.ActiveSheet.Cells[y,1 ].Value = ss
SENDSTR(0, "") // クリップボードをクリア
y = y + 1

endif
wen

No.2659 2016/07/20(Wed) 15:01:02

Re: 指定の2つのキー入力で、エクセルの空白行のa列、b列入力方法について / しき
Excel = XLOPEN()
XLACTIVATE(Excel, "Sheet1")

yA = 1  //A列の現在行
yB = 1  //B列の現在行

SENDSTR(0, "")
while True
  sleep(0.2)
  
  ifb getkeystate(vk_a) then
    x = 1
  elseif getkeystate(vk_b) then
    x = 2
  else
    continue  //a か b が押された場合のみ処理する
  endif
  
  ss = GETSTR(0)
  ifb (ss <> "")  //クリップボードにある場合のみ処理する
    ifb (1 = x) then
      y = yA
    elseif (2 = x) then
      y = yB
    endif
    
    Excel.ActiveSheet.Cells[y, x].Value = ss
    SENDSTR(0, "") // クリップボードをクリア
    
    //行送り
    y = y + 1
    ifb (1 = x) then
      yA = y
    elseif (2 = x) then
      yB = y
    endif
    
  endif
wend

No.2660 2016/07/20(Wed) 18:37:27

Re: 指定の2つのキー入力で、エクセルの空白行のa列、b列入力方法について / シスイ
しき様、素晴らしいです、私のやりたい事がこんなに早く回答頂けるなんて。教えて頂いたコードでできました、ありがとうございます。
No.2661 2016/07/20(Wed) 21:49:43

Re: 指定の2つのキー入力で、エクセルの空白行のa列、b列入力方法について / シスイ
上記のコードでできたのですが、1つ困った事がおきました。既存のエクセルを開いて上記スクリプトを開始して、コピー、Aキーでした所、既存のA列に以前入力した分が上書きになってしまいます。
空白行の一番後ろに入力するようにできないでしょうか?
色々考えてみたのですが、自分の実力では分かりません、ご指導頂けないでしょうか?

No.2662 2016/07/21(Thu) 08:33:33

Re: 指定の2つのキー入力で、エクセルの空白行のa列、b列入力方法について / しろまさ
Helpを読みましょう。

uwsc.chm
 スクリプト
  スクリプト関数
   ウィンドウ関連
    SENDSTR

に書いてあります。まずは自分で調べて試すこと。

No.2663 2016/07/21(Thu) 13:32:50

Re: 指定の2つのキー入力で、エクセルの空白行のa列、b列入力方法について / シスイ
しろまさ様、もう一度自分で調べてみます。
No.2664 2016/07/21(Thu) 13:34:55

Re: 指定の2つのキー入力で、エクセルの空白行のa列、b列入力方法について / しろまさ
読み違えていたのを今気がつきました(_ _)

ExcelをGetActiveOleObjでCOM接続後に下記操作ですね。
VBAとUWSCの表記は若干違うので適宜修正してください。
http://www.niji.or.jp/home/toru/notes/8.html

No.2665 2016/07/22(Fri) 09:26:40
エクセルのファイルが開きません。何が原因なんでしょうか? / シスイ
エクセルのファイルが開きません。何が原因なんでしょうか?
下記のコードです。

XLS1_NAME = "開きたいファイル1"
XLS2_NAME = "開きたいファイル2"
XLS3_NAME = "開きたいファイル3"


XLS1_PATH = "C:\Users\aruke\Dropbox\ファイル1.xlsx"
XLS2_PATH = "C:\Users\aruke\Dropbox\ファイル2.xlsx"
XLS3_PATH = "C:\Users\aruke\Dropbox\ファイル3.csv"



////////////////////////初期設定△△

SELECT SLCTBOX(SLCT_BTN, 0, "EXCEL_OPEN", XLS1_NAME, XLS2_NAME, XLS3_NAME)
CASE SLCT_1
PATH = XLS1_PATH
CASE SLCT_2
PATH = XLS2_PATH
CASE SLCT_3
PATH = XLS3_PATH

SELEND

Excel = XLOPEN(PATH)

No.2656 2016/07/20(Wed) 13:33:54

Re: エクセルのファイルが開きません。何が原因なんでしょうか? / sana
私の方では問題無く開けました。
XLOPENはPro版のみ使用できる関数ですが、その点は大丈夫でしょうか?

No.2657 2016/07/20(Wed) 13:48:41

Re: エクセルのファイルが開きません。何が原因なんでしょうか? / シスイ
sana様、XLOPENはPro版を使用しています。開ける場合もあるのですが、ファイルが開いていない状態でエクセルだけが立ち上がる場合が多いです。
No.2658 2016/07/20(Wed) 14:53:33
全692件 [ ページ : << 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 70 >> ]