[ 掲示板に戻る ]

過去ログ閲覧モード

画像のスクリーンキャプチャについて / myuu
やりたいこと:特定のウィンドウをKBD関数を用い、[Fn]+[Alt]+[PrintScreen]にて画像として保存する。

課題:uwscには[Fn]キーが無い

※saveimg関数は、今回は使用できません。メインPCからUWSCを操作し、リモートデスクトップにキーを送ることで画像をとりたいためです。
 [VK_SNAPSHOT]を最悪使おうと思いますが、これですと、リモートデスクトップの画面全体がキャプチャされて、いらない部分まで移ってしまいます。


なかなか制約が多い質問で申し訳ありません。どなたか、助けて頂けますと幸いです。

No.3091 2016/10/30(Sun) 10:42:09

Re: 画像のスクリーンキャプチャについて / MM
EasyShotのようなキャプチャツールを間にかます
…とかの方法はまた、セキュリティで制限されてるだの何だの
条件後出しで否定されるんでしょうかね?

No.3092 2016/10/30(Sun) 10:46:30

Re: 画像のスクリーンキャプチャについて / myuu
>MM様
こんなに早く回答頂けて大変ありがたいです。
そのようなソフトもあるのですね![VK_SNAPSHOT]よりはよさそうです。
もし、他に手法がなければそれを試したいと思います。

No.3096 2016/10/30(Sun) 11:58:47

Re: 画像のスクリーンキャプチャについて / satocha
リモート環境では確かめていませんがこんなのはどうでしゅか

powershell("[void] [Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');[Windows.Forms.SendKeys]::SendWait(<#dbl>%{PRTSC}<#dbl>)")

sckey(exec("mspaint"),vk_ctrl,vk_v)

No.3100 2016/10/31(Mon) 03:16:02

Re: 画像のスクリーンキャプチャについて / satocha
>どうでしゅか   って恥ずかしい。
先のスクリプトはWin10で確かめていたのですが、職場のWin7では動かずやりなおし。
---------------------------------------------------------------------------------------
id=getid("取りたいウインドウ")
with CreateOleObj( "WScript.Shell" )
 .Run( "powershell [void] [Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');[Windows.Forms.SendKeys]::SendWait('%{PRTSC}')", 0 )
endwith
ctrlwin(id,activate)
sleep(0.5) //このウエイトは必須
sckey(exec("mspaint"),vk_ctrl,vk_v)

No.3104 2016/11/01(Tue) 10:16:06

Re: 画像のスクリーンキャプチャについて / しゅん
> 課題:uwscには[Fn]キーが無い
いらないからかと思います。
SCKEYでVK_ALT,VK_SNAPSHOTすればOKかと思います。

No.3109 2016/11/02(Wed) 17:48:58

Re: 画像のスクリーンキャプチャについて / satocha
しゅん様
>SCKEYでVK_ALT,VK_SNAPSHOTすればOKかと思います。
これで撮れれば一番ラクなんですが、環境によるのかもしれませんが、どういうわけか、ALTと併用すると記憶できません。
kbd(vk_alt,down)
kbd(vk_snapshot)
kbd(vk_alt,up)
とかも記録できません。

No.3113 2016/11/03(Thu) 14:46:59

Re: 画像のスクリーンキャプチャについて / しゅん
satochaさん、環境はなんでしょうか?
少なくとも、手元のWindows 7 pro(x86) 標準リモートデスクトップでは、リモートデスクトップを最大化(ctrlwinではダメだった、、、のでBTNで)させれば、問題なかったです。

ま、いずれにしても、Fnキーは仮想キーコードの割り当てがなかったはずなので、押す必要のないキーです。

No.3117 2016/11/04(Fri) 08:56:07

Re: 画像のスクリーンキャプチャについて / myuu
>satocha様
shell系は使用したことが無く、私にとって初技術です。
勉強して試してみます!

>しゅん様
確かにそれで出来れば一発で解決です!(前に試したような試してないような・・)
ちょっと今時間がなく試せないのですが、時間できた時にやってみます。

お二方、丁寧に回答頂き誠にありがとうございます。
まずはご教授頂きました方法を試してみます。

No.3123 2016/11/05(Sat) 08:25:03
ExcelのA1セルが空白かどうかを判定するスクリプト / タカハシ
ExcelのA1セルが空白かどうかを判定するスクリプトを起動すると式がおかしいとエラー表示になってしまいます。どこが間違っているのでしょうか?
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
Excel.WorkBooks.Open(FileName :="C:\Users\aruke\Desktop\tesuto.csv")

If EXCEL.Range("A1").value = " "Then msgbox("空白です")
else
msgbox("入力済み")
endif

No.3115 2016/11/03(Thu) 22:26:12

Re: ExcelのA1セルが空白かどうかを判定するスクリプト / 俄プログラマー
その場合エラー行番号が出るはずです。
その行を確認すると良いですよ。

No.3116 2016/11/03(Thu) 23:09:21

Re: ExcelのA1セルが空白かどうかを判定するスクリプト / リキュール
以下でどうでしょうか?
If → Ifb に変更する
Thenの前に半角スペースを入れて別行とする
なお、空白は "" で " " は半角スペースなので、意味が違うと思うのですが

Ifb EXCEL.Range["A1"].value = " " Then
msgbox("空白です")
else
msgbox("入力済み")
endif

No.3118 2016/11/04(Fri) 12:06:22

Re: ExcelのA1セルが空白かどうかを判定するスクリプト / タカハシ
俄プログラマー様、行を確認でしたね失礼しました。
No.3120 2016/11/04(Fri) 19:20:43

Re: ExcelのA1セルが空白かどうかを判定するスクリプト / タカハシ
リキュール様、そのコードでできました。ありがとうございます。

>>Thenの前に半角スペースを入れて別行
これでした。

もっとUWSC道を精進していこうと思います。

No.3121 2016/11/04(Fri) 19:24:12
配列をSLCTBOXのボタンに入れcallを起動させる方法 / タカハシ
ヘルプを見ると「UWSファイル名の割り当てに変数を使用する事はできません」とあります。
下記のコードはできないとは分かったのですが、CALLで配列に入れたモノを選択して起動させる良い方法はないでしょうか?

DIM path[2]
path[0] = "C:\Users\aruke\Desktop\UWS\エクセル出力新.uws"
path[1] = "C:\Users\aruke\Desktop\UWS\10サイト接続.uws"
path[2] = "C:\Users\aruke\Desktop\UWS\Excel配列.uws"
tes=SLCTBOX(SLCT_BTN OR SLCT_STR,0,"会社",path)
CALL tes

No.3107 2016/11/02(Wed) 13:30:49

Re: 配列をSLCTBOXのボタンに入れcallを起動させる方法 / stuncloud
callじゃなきゃいけない理由がないのであれば、execで

exec("<#DBL>" + GET_UWSC_DIR + "\uwsc.exe<#DBL> <#DBL>" + tes + "<#DBL>")

No.3108 2016/11/02(Wed) 13:57:37

Re: 配列をSLCTBOXのボタンに入れcallを起動させる方法 / しゅん
stuncloudさんの方法がおすすめです。
DOSCMDを使っても良いかもしれません。
ただ、SELECTで分岐する、という手もあります。
http://d.hatena.ne.jp/junjun777/20161102/uwsc_call


DIM path[2]
path[0] = "test00.uws"
path[1] = "test01.uws"
path[2] = "test02.uws"
SELECT SLCTBOX(SLCT_BTN OR SLCT_STR,0,"会社",path)
CASE path[0]
  CALL "test00.uws"
CASE path[1]
  CALL "test01.uws"
CASE path[2]
  CALL "test02.uws"
SELEND

No.3110 2016/11/02(Wed) 17:50:41

Re: 配列をSLCTBOXのボタンに入れcallを起動させる方法 / タカハシ
stuncloud様、回答ありがとうございます。execでできたんですね、思いつきませんでした。
まだまだ私、修行が足りないようです。GET_UWSC_DIRのパスの意味は分かっているんですが、
UWSファイルをC:\Program Files (x86)\UWSCの中で管理した方が良いのでしょうか?私は、C:\Program Files (x86)\UWSCとはまったく違う所に、ファルダー作成してUWSファイルを置いています。

No.3111 2016/11/02(Wed) 21:29:03

Re: 配列をSLCTBOXのボタンに入れcallを起動させる方法 / タカハシ
しゅん様、回答ありがとうございます。SLCTBOXでやるとpath[0] = "test00.uws"、test00.uwsにSLCTBOXで表示させたい文字列を表示できるので選択する時に分かりやすいです。
http://d.hatena.ne.jp/junjun777/20161102/uwsc_call見させて頂きました。色々な方法でCALLの使い方が掲載されていてすごく勉強になります。こちらのブログブックマークしてちょこちょこ見させて頂きます。

No.3112 2016/11/02(Wed) 21:40:22

Re: 配列をSLCTBOXのボタンに入れcallを起動させる方法 / stuncloud
> UWSファイルをC:\Program Files (x86)\UWSCの中で管理した方が良いのでしょうか?
いいえ、UWSファイルはお好きなところへ置いてくださって大丈夫ですよ

> exec("<#DBL>" + GET_UWSC_DIR + "\uwsc.exe<#DBL> <#DBL>" + tes + "<#DBL>")
の引数の意味なんですが、変数を展開すると例えばこうなります

exec("<#DBL>C:\Program Files (x86)\uwsc.exe<#DBL> <#DBL>C:\Users\aruke\Desktop\UWS\エクセル出力新.uws<#DBL>")

execで動かすためにはまずuwsc.exeで動かすということを教えてやらないといけないため、最初にuwsc.exeのフルパスを渡します
そのためのGET_UWSC_DIRですね
そのあとUWSファイルのパスを記述しますが、これがuwsc.exeに対してどのスクリプトを実行しろという指示になっています
この後半部分でUWSファイルのフルパスを指定すればいいので、UWSファイルはどのフォルダに置いてあっても大丈夫というわけです

No.3114 2016/11/03(Thu) 15:06:03

Re: 配列をSLCTBOXのボタンに入れcallを起動させる方法 / タカハシ
stuncloud様、詳細な説明ありがとうございます。そのような使い方でexecを使えるなんて知らなかったです。無事そのスクリプトで使えました。また一つ勉強になりました、感謝致します。
No.3119 2016/11/04(Fri) 19:15:24
指定フォルダ内クリア / トロン
指定フォルダ内のデータを全て消したいと考えています。

ファイル指定だと正常に動くのですが
DOSCMD("del C:\あああ\AAA.html")

フォルダ指定だと動かないです。
DOSCMD("del C:\あああ\")

C:\あああ\の中身を全て消すにはどのようにすればいいでしょうか。※中にサブフォルダはありません。
ちなみにC:\あああ\のフォルダ自体は残したいと考えています。

No.3102 2016/10/31(Mon) 16:47:27

Re: 指定フォルダ内クリア / しき
//ワイルドカード文字を使います
DOSCMD("del /q C:\あああ\*.*")

//参考URL
>コマンドプロンプト del - [ファイルを削除する]
http://www.k-tanaka.net/cmd/del.php

No.3103 2016/10/31(Mon) 17:06:57

Re: 指定フォルダ内クリア / トロン
ありがとうございます!!
No.3105 2016/11/01(Tue) 19:39:33
UWSCでEXCELの複数シートを選択する方法 / Daichi
はじめまして。

タイトルの通りですが、UWSCでExcelの複数シートを選択する方法をご教示いただけませんでしょうか。

実現したいことは、Excelで任意のシートを複数選択し、PDFエクスポートしたいです。
XLACTIVATE関数 or EXCELCOMオブジェクトを利用する方法どちらでも構いません。

VBAでは下記コードで複数シートの選択を実現できますが、
UWSCに移植すると"変数:SHEET_NAME 次元数が合いません"と表示されます。

アドバイスいただけると幸いです。
よろしくお願いいたします。

[VBA]
Worksheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
[UWSC]
Dim SHEET_NAME[2] = "Sheet1", "Sheet2", "Sheet3"
Excel.Worksheets(SHEET_NAME).Select
//Excel.Worrkseets.Select //全シート選択時に利用
//*ExcelオブジェクトはCREATEOLEOBJ("Excel.Application")で生成済


【環境】
Windows7Pro x64
UWSC Ver5.0.3.0

No.3098 2016/10/30(Sun) 22:49:13

Re: UWSCでEXCELの複数シートを選択する方法 / Daichi
自己解決しました。

.SelectのReplaceオプションを利用するとできました。
Excel.WorkSheets("Sheet1").select(replace:=false)

お騒がせしました。

No.3099 2016/10/30(Sun) 23:11:13

Re: UWSCでEXCELの複数シートを選択する方法 / しき
//引数がVBArray(SafeArray)になるようにすればよい
Dim SHEET_NAME[2] = "Sheet1", "Sheet2", "Sheet3"
Excel.Worksheets(slice(SHEET_NAME)).Select()

No.3101 2016/10/31(Mon) 13:15:50
ソフトをタスクバーからアクティブにする方法 / Japanzer
//win10Home バージョン1607
//UWSC ver.5.230

//ペイントを最小化している状態で下記のスクリプトを実行しましたが、ペイントはアクティブになりません。確か以前はこれでアクティブになったと記憶しています。
//msgboxは1が返ってくるのでクリック自体はできていると思うのですが…

msgbox(CLKITEM(GETID("ペイント"), "ペイント", CLK_SHORT))

//ctrlwin(GETID("ペイント"), show)でアクティブにできますが、この方法は使いたくありません。
//実はペイントではなく別のソフトをタスクバーからアクティブにするのが狙いなのですが、そのソフトにはctrlwin()が効かないので。

//なにか、他にタスクバーからアクティブになるような方法はありませんでしょうか。

No.3086 2016/10/29(Sat) 19:44:01

Re: ソフトをタスクバーからアクティブにする方法 / 俄プログラマー
ACW(GETID("ペイント"),0,0)

これでは左上にウインドウが移動してしまうので
事前にSTATUSを使って座標を覚えておくと良いでしょう。

No.3087 2016/10/29(Sat) 20:12:52

Re: ソフトをタスクバーからアクティブにする方法 / Japanzer
ご教授ありがとうございました。
こんな方法は思いもよりませんでした。

No.3089 2016/10/29(Sat) 22:58:30

Re: ソフトをタスクバーからアクティブにする方法 / MM
ACW(GETID("ペイント"))
ではどうですか

No.3094 2016/10/30(Sun) 11:08:23

Re: ソフトをタスクバーからアクティブにする方法 / Japanzer
ACW(GETID("ペイント"))だと、元の位置に表示されますね。
どうもありがとうございました。

No.3095 2016/10/30(Sun) 11:21:24

Re: ソフトをタスクバーからアクティブにする方法 / 俄プログラマー
ACW(GETID("ペイント"))
だとこちらの環境では最小化のままなんですよ。
Japanzerさんが動けば問題ないので良いのですが。
win10Pro 1607
UWSC 5.230

No.3097 2016/10/30(Sun) 20:14:37
UWSCのOSごとによるバグについて / ゆぐゆぐ
WIN7で作ったuwsファイルをWIN8やWIN10のPCで使うと必ず座標のズレが発生するのですが、UWSC有償版でEXE化したものであれば別OSでも正常に稼動するものでしょうか?
No.3076 2016/10/27(Thu) 16:37:09

Re: UWSCのOSごとによるバグについて / 俄プログラマー
EXE化しても同じだと思われます。
気になるのなら試用版でお試しください。

そして質問の具体性に欠けます。
何がどんな時にずれるのかが書かれていない事には
これ以上の回答は得られないでしょう。

No.3077 2016/10/27(Thu) 18:05:55

Re: UWSCのOSごとによるバグについて / しゅん
一応、補足です。
UWSCは最新版でしょうか?
最新版にすると、直っているものもあるかもしれません。

No.3078 2016/10/28(Fri) 08:58:54

Re: UWSCのOSごとによるバグについて / ゆぐゆぐ
例えばなんですが
BTN(LEFT,CLICK,273,31,219)
ってだけでも座標が検討違いの位置をクリックするんですよね。
(WIN10での機体ごとでバラバラの座標をクリックするわけではなく、見当違いの同じ位置をクリックする)

ちなみに試用版も試したけどやはりダメでした。

No.3079 2016/10/28(Fri) 16:07:57

Re: UWSCのOSごとによるバグについて / stuncloud
Windows 10の設定でシステム-ディスプレイにある「テキスト、アプリ、その他の項目のサイズを変更する」が100%以外になってるとか?

画面の拡大率(という呼び方でいいのかな?)は過去に色々対応されてた気がしますけどぜんぜん詳細把握してなくて実際はどうなのかわかりませんけど

No.3080 2016/10/28(Fri) 17:04:09

Re: UWSCのOSごとによるバグについて / MM
検証スクリプトを貼る必要があると思われます
(現象が再現する限りにおいて出来るだけ最短に編集したもの)

No.3093 2016/10/30(Sun) 10:58:14
スクリプト自身のパス / satocha
スクリプト自身のパスを取得するにはどうしたらいいのでしょうか。

標準的なやり方が分からず、これまで、Get_Cur_DirとGet_UWSC_Nameの合成で代用していました。
ところが、スクリプトをwine環境で動かす必要があり調べたところ、Get_Cur_Dirがスクリプトのあるフォルダではなく、スクリプトを起動した時のフォルダを指してしまうためうまくいきません。

例えばルートフォルダでUWSCを起動すると、スクリプトの場所にかかわらず、Get_Cur_DirはZ:\になります。

変数名からいうと、こちらのほうが本来の動きなのかもしれませんが、スクリプトのパス取得には使えません。

スクリプト自身のパスを取得する標準的な手法を知っている方はご教示ください。

UWSC ver 5.2.3
os=Linux localhost.localdomain 4.7.9-200.fc24.x86_64 #1 SMP Thu Oct 20 14:26:16 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
wine ver =wine-1.9.20 (Staging)

No.3081 2016/10/29(Sat) 03:53:31

Re: スクリプト自身のパス / satocha
補足です
wineでの実行については、uwsc.exeを直接起動するのではなく、下のスクリプトを経由することで、所期の目的を果たせています。
ただ、2971以下のスレッドのような手順でカレントディレクトリは動いてしまうため、Get_Cur_Dir
ではないスクリプトパスの取得方法を知りたいので質問しました。

uwsh.sh

#!/bin/sh
scriptpath=$1
cd "${scriptpath%/*}"
wine /home/satoocha/'VirtualBox VMs'/share/uwsc523/UWSC.exe "$1"

No.3083 2016/10/29(Sat) 13:08:28

Re: スクリプト自身のパス / stuncloud
少なくともUWSCの特殊変数ではないです
> Get_Cur_DirとGet_UWSC_Nameの合成で代用していました。
とするのが常套手段です

スクリプトの実行者はスクリプトがどこにあるかわかっているはずなので、そのパスをスクリプトに渡してPARAM_STR[]で取得するというのが最も単純な手かとは思います
苦肉の策すぎますかね

あとは status(getid(GET_THISUWSC_WIN), ST_PROCESS) で自身のPIDが取得出来ますので、自身のプロセス実行時のコマンドラインからuwsc.exeに渡されたパスが取得できるのではないかと思います
wineで実行してるとなるとそのあたりどうなってるのかわからないのでできる保証はないですけど

ま、そもそもの話ですがサポートされた動作環境ではない以上出来ないことがあってもある程度は諦めるということも必要ですよね

No.3084 2016/10/29(Sat) 14:46:49

Re: スクリプト自身のパス / satocha
stuncloudさま

>status(getid(GET_THISUWSC_WIN), ST_PROCESS) で自身のPIDが取得出来ます
大きなヒントありがとうございます。おかげで、
pid=status(getid(GET_THISUWSC_WIN), ST_PROCESS)
CommandLine=powershell( "gwmi win32_process|?{$_.ProcessId -eq "+pid+"}|%{$_.CommandLine}" )
exepath=Get_Uwsc_Dir+"\uwsc.exe "
scriptpath=replace(CommandLine,exepath,"")
とやることで、スクリプトパスが得られました。これなら、途中でカレントディレクトリが変更されてもOKです。
問題はwine環境にpowershellをインストールできていないことです。
wineから動かすときは先述のシェルスクリプトを使うことにします。

No.3085 2016/10/29(Sat) 15:38:11

Re: スクリプト自身のパス / stuncloud
WMIならPowerShell()関数を使う必要もないですよ

pid = status(getid(GET_THISUWSC_WIN), ST_PROCESS)

with createoleobj("WbemScripting.SWbemLocator")
 with .ConnectServer
  q = .ExecQuery("SELECT CommandLine FROM Win32_Process WHERE ProcessId = " + pid)
  getoleitem(q)
  msgbox(ALL_OLE_ITEM[0].CommandLine)
 endwith
endwith

No.3088 2016/10/29(Sat) 22:41:00

Re: スクリプト自身のパス / satocha
stuncloudさま

ありがとうございました
下の方法で、wineでもwindowsでもカレントディレクトリとは無関係にスクリプトのパスが得られました。
pid = status(getid(GET_THISUWSC_WIN), ST_PROCESS)
commandline=""
with createoleobj("WbemScripting.SWbemLocator")
 with .ConnectServer
  q = .ExecQuery("SELECT CommandLine FROM Win32_Process WHERE ProcessId = " + pid)
  getoleitem(q)
  commandline=ALL_OLE_ITEM[0].CommandLine
 endwith
endwith

exepath=Get_Uwsc_Dir+"\uwsc.exe "
//wineではCommandLineがなぜか二重引用符付きで出力されるので外しておく
CommandLine=replace(CommandLine,"<#dbl>","")
scriptpath=replace(CommandLine,exepath,"")

No.3090 2016/10/30(Sun) 06:29:54
CLKITEM リストボックスの複数選択できない / あああ
初めまして。早速ですが質問させていただきます。

clkitem 関数において、リストボックスから複数選択をしたいと考えています。
ヘルプには
※ リストボックス: 複数選択の場合は タブにて アイテム名を繋げる
とありますので試してみましたが正常に処理されません。

選択したいアイテムを list_000 と list_001 とします。

clkitem(id, "list_000", CLK_LEFTCLK and CLK_LIST, True, 0)
-->list_000 が選択される。戻値 True

clkitem(id, "list_000 list_000", CLK_LEFTCLK and CLK_LIST, True, 0)
-->タブでつなぐ。選択されない。戻値 False

clkitem(id, "list_000" "list_000", CLK_LEFTCLK and CLK_LIST, True, 0)
-->実行不可:式がおかしい or 型が合ってない

以上のような状況です。どなたか意見をお持ちの方、よろしくお願いします。

uwsc 5.2.3
windows 7 64bit
制御対象ウィンドウ:64bitアプリケーション

No.3064 2016/10/26(Wed) 15:09:12

Re: CLKITEM リストボックスの複数選択できない / stuncloud
"list_000<#TAB>list_001"
ではどうですか

No.3065 2016/10/26(Wed) 16:15:59

Re: CLKITEM リストボックスの複数選択できない / stuncloud
あと、追加オプションを繋げるときは and じゃなくて or です
ちなみに CLK_LEFTCLK and CLK_LIST だと 0 になるので EMPTY 指定と同じになります(多分)
ついでに CLK_LEFTCLK or CLK_LIST だとうまくいかないようなので CLK_LIST だけにしましょう

No.3066 2016/10/26(Wed) 16:31:54

Re: CLKITEM リストボックスの複数選択できない / あああ
stuncloud 様

ご返信ありがとうございます!

種別指定が意図したものと全然違っていたのですね。
ただ、種別を CLK_LIST のみにし、
clkitem(id, "list_000", CLK_LIST)
としたところ list_000 の選択もできなくなることがわかりました。

そこで
clkitem(id, "list_000", CLK_LISTVIEW)
にすると指定が可能でしたので、私がリストボックスだと思っていたものが実はリストビューだった、ということなのでしょうか。

getitem(id, ITM_LIST, 2, 0, FALSE)
で当該リストを取得できていたので種別 CLK_LIST での clkitem ができるものと思い込んでいたのですが...

No.3070 2016/10/26(Wed) 22:00:25

Re: CLKITEM リストボックスの複数選択できない / stuncloud
> clkitem(id, "list_000", CLK_LISTVIEW)
> にすると指定が可能でしたので、私がリストボックスだと思っていたものが実はリストビューだった、ということなのでしょうか。

そうなのかもしれませんね
現物がないとこちらでは試せませんので、色々試行錯誤していただくしかないと思います
TAB区切りがだめそうなら kbd(VK_CTRL, DOWN) した状態でひとつひとつクリックしていくとか? (Ctrl+クリックの再現

> getitem(id, ITM_LIST, 2, 0, FALSE)
> で当該リストを取得できていたので種別 CLK_LIST での clkitem ができるものと思い込んでいたのですが...

この点は不思議ですね…?

ちなみにこちらでは slctbox(SLCT_LST, (略)) で出て来るリストボックスに対してTAB区切りがうまくいくことを確認しました

No.3074 2016/10/27(Thu) 13:52:53

Re: CLKITEM リストボックスの複数選択できない(解決) / あああ
stuncloud 様

検証ありがとうございます。
こちらでも slctbox によるリストと html によるリストで検証してみたところ複数選択ができました。
どうやら制御対象の問題だったようです、お騒がせいたしました。
拙いもので恥ずかしいですが、一応以下に検証時のコードを載せておきます。

listMultipleSelect.uws

// リストボックスのあるウィンドウにマウスオーバーすると、要素 000 と 001 が選択される
// Esc キーでスクリプト終了
thread checkMultipleSelect()
sleep(1)
slctbox(SLCT_LST, -1, "msg", "000", "001", "002")

procedure checkMultipleSelect()
i = 0
while !(GETKEYSTATE(VK_ESC))
id = getid(GET_FROMPOINT_WIN)
print "second: " + i + " :" + id
print clkitem(id, "000 001", CLK_LIST)
// print clkitem(id, "000<#TAB>001", CLK_LIST) でもよい
sleep(1)
i = i + 1
wend
fend


list.html

<FORM>
<select name="example" size=6 multiple>
<option value="000">000</option>
<option value="001">001</option>
<option value="002">002</option>
<option value="003">003</option>
<option value="004">004</option>
<option value="005">005</option>
</select>
</FORM>

list.html で作ったリストの選択は firefox,IE ではうまくいきましたが google chrome ではダメでした。
もうよくわかりませんね、別の方法を探すことにします。

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

No.3075 2016/10/27(Thu) 15:39:48
式の中で「 \ 」で、ディレクトリ下を参照させたい / きよ
いつも勉強させて頂いております。
・・・・\temp\abc.bmp を変数で指定したいのですが、\を入れると以降が文字列になってしまいます。
実際はimgは、INIかCSVから読み込みたいので、xxxx.UWSの中で「temp\abc.bmp」を作り出したいと思います。

img = "abc.bmp"
file = "temp\" + img ←\を入れた途端にそれ以降が文字列になってしまいます

xxxx.UWSの中で、 temp\abc.bmp ← これを作り出したいと思っています。

IFB "temp\" + img THEN でも
IFB CHKIMG("temp\" + img ) でも、「\」を入れると以降文字列になってしまいます。

「\」を式の中に入れるにはどのようにしたら良いのでしょうか?
宜しくお願い致します。

No.3057 2016/10/24(Mon) 22:09:24

Re: 式の中で「 \ 」で、ディレクトリ下を参照させたい / しろまさ
"abc.bmp" ← 文字列
img    ← 文字列を代入した変数
"temp\"  ← 文字列
"temp\" + img ← 文字列の結合
file    ← 結合した文字列を代入した変数

最初から文字列ですよ?

> IFB "temp\" + img THEN でも

この書き方は間違い。何をしたいのか解りません。
Ifは 0がFALSE それ以外がTRUEを取るのでTRUEになってるだけ。

> IFB CHKIMG("temp\" + img ) でも、「\」を入れると以降文字列になってしまいます。

画像名かパスを入れる欄なので文字列が入ってで正しいです。

>「\」を式の中に入れるにはどのようにしたら良いのでしょうか?

文字列として結合すれば良いだけですが、いまひとつ何を求めているのかが解りません。

No.3058 2016/10/25(Tue) 08:45:53

Re: 式の中で「 \ 」で、ディレクトリ下を参照させたい / しろまさ
上記記事編集パスワード間違えたので追記で修正書込み。

> IFB "temp\" + img THEN
こちらの環境だと SyntaxErrorになりますねこれ。

ファイルの存在確認をしたいのなら以下です。
  IFB FOpen("temp\" + img, F_EXISTS) THEN

No.3059 2016/10/25(Tue) 08:51:26

Re: 式の中で「 \ 」で、ディレクトリ下を参照させたい / しゅん
これ、単にエディタの表示がそうなっているだけ、というオチではないですよね、、、。
万一そうなら、気にしなければ良いだけですが、、、まさかね。

↓「バグなのでしょうか?」
バグではありません。私のような人間には大切な機能です。
ただ、UWSCのスクリプトを書くには適さないモードだっただけです。

No.3060 2016/10/25(Tue) 09:11:27

Re: 式の中で「 \ 」で、ディレクトリ下を参照させたい / きよ
しゅん様
しろまさ様

有り難うございます。
しゅん様の・・・「まさか」で、UDebug.exeで試したら、その「まさか」でした。
おそまつな「オチ」に引っかかっていました。
サクラエディタを信用しすぎていました...バグなのでしょうか?

どうもすみません、有り難うございました。

No.3061 2016/10/25(Tue) 10:25:56

Re: 式の中で「 \ 」で、ディレクトリ下を参照させたい / しろまさ
ぐはっ そこでしたか。。

サクラエディタ

設定 ⇒ タイプ別設定

エスケープ の
C言語風 から PL/SQL風 に変えると治りますよ。

昔書いたtips
http://siromasa.html.xdomain.jp/uwsc/u_term/31_SakuraEdita.html

No.3062 2016/10/25(Tue) 12:03:59

Re: 式の中で「 \ 」で、ディレクトリ下を参照させたい / きよ
しろまさ様

有り難うございます。
早速PL/SQL風にしましたら、なおりました。
サポートセンターみたいなレス有り難うございます。

No.3063 2016/10/25(Tue) 17:13:42
全832件 [ ページ : << 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 84 >> ]