[ 掲示板に戻る ]

過去ログ閲覧モード

Windows8で画面を拡大した状態でのSAVEIMGについて / ミリアム
こんばんは。久しぶりの質問/要望です。


コントロールパネル → ディスプレイ
に画面のサイズが拡大表示できる機能があります。

これは一番小さい設定で普通の100%なのですが、これを125%の設定にすると
例えば1920x1200だと画面の領域が1536x960になります。(1536×1.25=1920)
http://www.atmarkit.co.jp/fwin2k/win2ktips/1362txtsize/txtsize.html

この状態でウィンドウ全体のスクリーンショットを保存しようとしたのですが、
(0,0)x(1920,1200)の領域が保存されるはずが(0,0)x(1536,960)の画像が保存されてしまいます。
 SAVEIMG("SCRSHOT", 0, 0,0, 1920,1200)
のように指定しても、(0,0)x(1536,960)の画像が保存されます。

また、ウィンドウを指定して画面を保存しようとすると、1.25倍した分だけ座標が左上にずれ、ウィンドウの右下が欠けてしまいます。


画面取得指定をIMG_BACKに指定したりなど色々試してみたのですが、どうしても(1536,960)の壁を越えられません。どうにかしてウィンドウ全体を保存する方法はないでしょうか?

もし不具合でしたら修正お願いします!


ウィンドウの左上は以下のようにしてだいたい合わせられました。
追記:ちょっと修正しました
----------------------------------------------------------------------------------

CONST 本当の幅 = 1920

PUBLIC Directory = ".\bmp\"
If Copy(Directory, Length(Directory), 1) <> "\" Then Directory = Directory + "\"

PUBLIC Zoom = 本当の幅 / G_SCREEN_W


SetHotKey(VK_SnapShot, , "Desktop")
SetHotKey(VK_SnapShot, MOD_CONTROL, "ActiveWindow")
SetHotKey(VK_SnapShot, MOD_SHIFT, "Explorer")

While TRUE
 Sleep(30)
WEnd


Procedure Desktop()
 DIM FileName, FileName_FORE, FileName_BACK

 GetTime()
 FileName = "Img" + G_TIME_YY2 + G_TIME_MM2 + G_TIME_DD2 +"_"+ G_TIME_HH2 + G_TIME_NN2 + G_TIME_SS2
 FileName_FORE = FileName + "_F" + G_TIME_ZZ2
 FileName_BACK = FileName + "_B" + G_TIME_ZZ2

 SaveImg(Directory + FileName_FORE, 0, 0, 0, G_SCREEN_W * Zoom, G_SCREEN_H * Zoom, FALSE, 0, IMG_FORE)
 SaveImg(Directory + FileName_BACK, 0, 0, 0, G_SCREEN_W * Zoom, G_SCREEN_H * Zoom, FALSE, 0, IMG_BACK)
 Sound("BEEP")
FEnd

Procedure ActiveWindow()
 DIM FileName, FileName_FORE, FileName_BACK
 DIM ID = GetID(GET_ACTIVE_WIN)
 DIM org_x = Status(ID, ST_X)
 DIM org_y = Status(ID, ST_Y)
 DIM org_w = Status(ID, ST_WIDTH)
 DIM org_h = Status(ID, ST_HEIGHT)
 DIM zoom_x = (Zoom - 1) * org_x
 DIM zoom_y = (Zoom - 1) * org_y
 DIM zoom_w = Zoom * org_w
 DIM zoom_h = Zoom * org_h

 GetTime()
 FileName = "Img" + G_TIME_YY2 + G_TIME_MM2 + G_TIME_DD2 +"_"+ G_TIME_HH2 + G_TIME_NN2 + G_TIME_SS2
 FileName_FORE = FileName + "_F" + G_TIME_ZZ2
 FileName_BACK = FileName + "_B" + G_TIME_ZZ2

 SaveImg(Directory + FileName_FORE, ID, zoom_x, zoom_y, zoom_w, zoom_h, FALSE, 0, IMG_FORE)
 SaveImg(Directory + FileName_BACK, ID, 0, 0, zoom_w, zoom_h, FALSE, 0, IMG_BACK)
 Sound("BEEP")
FEnd


Procedure Explorer()
 Sound("BEEP")
 DosCmd("Explorer " + Directory)
FEnd

No.1323 2015/06/04(Thu) 21:22:36

Re: Windows8で画面を拡大した状態でのSAVEIMGについて / えあり
表示拡大率100%以外ですとずれるバグだそうです

ほかにも似た内容の方が質問されております
http://www3.rocketbbs.com/13/bbs.cgi?word=1244&mode=find&id=umiumi


修正中だそうなので待ちましょう

No.1329 2015/06/05(Fri) 12:30:53

Re: Windows8で画面を拡大した状態でのSAVEIMGについて / ミリアム
回答ありがとうございます。

過去質あったんですね…すみません、見落としていました。

不具合だったんですね。ありがとうございました!

No.1331 2015/06/05(Fri) 14:43:44
一時停止 / Mon
UWSC本体側の機能でAlt+F1を押すと再生/一時停止ができますよね。
この機能をプログラムの記述から使うことはできませんか?
無限ループのマクロを一時停止させるのにこの機能を重宝しているのですが、EXE化するとAlt+F1の一時停止が使えなくなってしまうので…。

No.1312 2015/06/01(Mon) 21:46:49

Re: 一時停止 / イッチ
msgbox使うと一時的に止まるけど、それじゃダメかな?
No.1313 2015/06/01(Mon) 22:17:00

Re: 一時停止 / ある
再生/一時停止に近い感じで使えると思います。
msgboxが邪魔ならx,yをいじって四隅のどっかに追いやってやれば良いです。

while true
  if getkeystate(vk_alt) and getkeystate(vk_f1) then msgbox("stop") //Alt+F1でメッセージボックス
  print "動作中"
  sleep(1)
wend

No.1314 2015/06/01(Mon) 22:32:09

Re: 一時停止 / Mon
みなさん回答ありがとうございます。
msgboxを使う方法で一時停止できました。
ただ、頻繁に再生/一時停止を使うので、欲を言えばやはり本体側のAlt+F1と同じように「一時停止も再開も同じホットキーで」「メッセージボックス等のウィンドウのフォーカスを気にせず再生/一時停止したい」です。
EXITEXITでAlt+F2にあたるプログラムの終了ができるようですが、Alt+F1の再生/一時停止にあたる関数は用意されてないんですかね。昨日からヘルプを見たり検索したりしてるのですが見つからないです。

No.1315 2015/06/01(Mon) 23:24:04

Re: 一時停止 / えあり
自分で関数作ればいいんじゃないですかね

If GetKeyState(VK_F1) and GetKeyState(VK_Alt) Then Pause()


Procedure Pause()
 While GetKeyState(VK_F1) and GetKeyState(VK_Alt); WEnd
 Fukidasi("停止中")
 While true
  If GetKeyState(VK_F1) and GetKeyState(VK_Alt) Then Break
  Sleep(1)
 WEnd
 Fukidasi()
 While GetKeyState(VK_F1) and GetKeyState(VK_Alt); WEnd
FEnd

No.1328 2015/06/05(Fri) 12:26:57

Re: 一時停止 / イッチ
それ吹き出し出るだけじゃね?
msgboxじゃないと止まないに気がするんだけど

No.1330 2015/06/05(Fri) 14:15:36
配列データの受け渡しについて / ミュウ
プログラムAに100個ほどのデータを格納した配列があります。
例:hairetu[100]

これを、他のexe化したプログラムBに受け渡ししたいと思います。

そこで以下の方法があります。
?@エクセルに100個のデータを書き込んで渡す
?Ainiファイルに100個のデータを書き込んで渡す

しかし、1つ1つのデータを渡す方法ではなく、一気に配列として渡す方法がわかりません。
(callを使えば渡せると思うのですがexe化してあるので渡せません・・・・)


ご教授頂けますと幸いです。

No.1307 2015/05/31(Sun) 13:35:18

Re: 配列データの受け渡しについて / ある
「一括で100個渡す」ではなくて一度一つのデータにまとめて書き込んだものを、
受け取った側で分割するやり方です。人側の手間にはならないと思います。

Dim hairetu[]="aaa","bbb","ccc","ddd","eee"
all=""
for n=0 to resize(hairetu)
  all=all+hairetu[n]+","
next
print all
//fputなりiniなりで外部ファイルへallを書き込み

//------渡された側
//外部ファイルからallの抜き取り処理
hairetu2=split(all,",")
for n=0 to resize(hairetu2)-1
  print n+":"+hairetu2[n]
next

No.1308 2015/05/31(Sun) 14:53:10

Re: 配列データの受け渡しについて / ミュウ
>あるさん
ご回答ありがとうございます。
頂いたソース試させていただきました。
まったく問題なかったですね
ありがとうございます。

No.1324 2015/06/04(Thu) 23:09:12
スケジューラーについて / registry
こんにちは、お世話になっております。
不具合について連絡させて頂きます、USC本体のスケジューラーについてなのですが
まれに存在しないタスクを実行しようとします、ただ意図的な発生の再現ができず
報告するか悩んだのですが、一応声だけ上げさせて頂きます。

スケジュール設定1〜15までを常時(毎日)固定で使用
17を差し替えを行い、偶に(数日開いたり連続だったり)使用
という状態で使用していますが

17を使わない日(ファイルパスを消し、時間も"設定なし"ている)に
消した筈の(表示上実際消えている)17を実行する事があります

消した筈の情報が残っていて、前日の設定で動いているのは分かるのですが
原因が分かりません、また差し替える以前のファイルパスで動く事もあります
内容的には同じ、消した前情報が残っている状態だと予測されます。
原因が予想できるようであれば対策をお願い致します。

No.1306 2015/05/31(Sun) 05:33:53

Re: スケジューラーについて / umiumi
現状、当方では確認できません。
No.1320 2015/06/03(Wed) 01:18:54

Re: スケジューラーについて / しゅん
スケジュールの変更方法や、UWSCプロセスの起動・終了のタイミング等に問題がある気がします。
どのようにやっているのでしょうか?

No.1322 2015/06/03(Wed) 22:33:32
Asm.uws による MessageBoxA() 呼び出し / いりや
いや、これは凄いです。

http://d.hatena.ne.jp/junjun777/20120616/uwsc_function_pointer

CreateThread() で実行可能なメモリブロックを渡してマルチスレッドで任意のプログラムを実行する枠組みですね。動的にメモリを確保・読み書き・開放する手続きも一緒に入っているので勉強になります。後は、Vot0JAiLTgyLFo1GEFFQUP/Si04Ii1YEjUQwEVBR/9JewgQA の謎解きですね〜。

No.1317 2015/06/02(Tue) 00:37:33

Re: Asm.uws による MessageBoxA() 呼び出し / Ahqiao
いりやさんともあろう方が今頃賞賛するのは遅すぎませんか? もう3年位前の出来事と思います。
私はScriptの公開後にすぐにコピペして自己流にモディファイし、常に使用しています。
多分この掲示板の回答者としていつも的確に対応している方の一(逸)品だと思います。
勿論、いりやさんの言う「謎解き」は分りませんが・・・、私にとっては欠かすことが出来ません。
遅すぎますが、UWSCファンの一人として敬意を表します。

No.1318 2015/06/02(Tue) 17:58:46

Re: Asm.uws による MessageBoxA() 呼び出し / いりや
いやぁ、面目もありません。UBTrek の開発を終えてからWindowsプラットフォームから仕事で離れて以来のごぶさたでしたので、過去ログや皆さんのブログをゆっくり楽しんで読んでおります。

Asm.uws は、def_dll によらない Win32 API を呼ぶための枠組み を提供するので関数の呼び出し規則に基づいて機械語を組み立てられるようになれば UWSC に閉じた世界で自由自在になるのですごいな、と思いました。以前だと C で DLL を作成していましたが、もうそのような DLL もいらなくなりますもんね。

No.1319 2015/06/02(Tue) 23:42:20

Re: Asm.uws による MessageBoxA() 呼び出し / しゅん
ほめられてしまいました!
うれしー!

ということで、自慢げに出てきた作者でございます。
謎の部分は、アセンブリで組み立てたものをBase64エンコードしたものです。
実際には、DLLを作る要領でコンパイルし、必要部分を抽出・エンコードしています。
ということで、DLLは不要になりますが、DLLを作る工程みたいなものがスクリプト作成時に必要となったりします。

なお、DLLを作成して丸ごとスクリプトに内包するサンプルは、
http://d.hatena.ne.jp/junjun777/20131021/uwsc_dll_memory_load
で、これはWin32 APIを呼ぶAsm.uwsより便利なモジュールとなっています。
呼び出しサンプルは、
http://d.hatena.ne.jp/junjun777/20131205/uwsc_def_dll
に例示がありますです。

No.1321 2015/06/03(Wed) 22:31:57
SublimeText2 で UWSC 編集 / いりや
こちらをインストールしてみました。

https://packagecontrol.io/packages/UWSC

いいですね! (^_^) 作者の stuncloud さんに感謝!

No.1309 2015/05/31(Sun) 19:18:15

Re: SublimeText2 で UWSC 編集 / stuncloud
こちらこそありがとうございます!
使ってくださる方がいると、がんばって公開して良かったなぁと思います
今後大きな変更はしないとは思いますが、UWSCのバージョンアップ等に合わせて更新はしていきますのでUWSC共々末永くよろしくお願いします!

No.1311 2015/06/01(Mon) 10:36:34

Re: SublimeText2 で UWSC 編集 / いりや
ありがとうございます。

サクラエディタ、テラパッドなど皆さんがこさえられたヘルプファイルなどを加工して使っておりましたが、最近この SublimeText 2 を使い始めたのでこちらが大変役に立っています!

まだ SublimeText 2 のことがよくわかっていませんがエディタ内部からプロセスを生成するやり方が分かったらまたおれおれ? doIt 機能をつくってみようと思います :)

No.1316 2015/06/02(Tue) 00:23:33
文字の重複チェック / さかぴー
重複チェックしたいのですが、思う様に出来ず困っています。
もし良かったらアドバイス頂けるととても助かります。
よろしくお願い致します。

dim mozi = "レッド ブルー イエロー ブルー イエロー イエロー ブラック"

//求める結果 "レッド ブルー イエロー ブラック"

No.1302 2015/05/30(Sat) 22:18:24

Re: 文字の重複チェック / ある
過去ログにもあったと思うので調べてみることをお勧めします。

dim mozi = "レッド ブルー イエロー ブルー イエロー イエロー ブラック"
chk=""
word=split(mozi," ")
  for n=0 to resize(word)
   ifb pos(word[n],chk)<1 then
      chk=chk+word[n]
   endif
next
print chk

No.1304 2015/05/30(Sat) 23:26:48

Re: 文字の重複チェック / さかぴー
あるさんありがとうございます!今度から過去検索します。
No.1310 2015/06/01(Mon) 07:28:45
File Not Found / Allen
FILE Not Found :C:\USER\Allen\DESKTOP\MACRO\製作ファイル\本体.uws

と表示されて再生できません
本体.uws も見当たりません
どうすればいいのでしょうか?

No.1303 2015/05/30(Sat) 22:33:27

Re: File Not Found / イッチ
いや普通にそのパスが存在しないよってことだから
まず本体.uwsってなに?

No.1305 2015/05/31(Sun) 00:25:14
CLKITEM関数のCLK_TREEVIEW での指定がうまくできません。 / もに
こんにちは、いつもありがたく使用させていただいております。

CLKITEM関数のCLK_TREEVIEW により、ツリーの項目を指定したいと考えております。

別階層に同名のフォルダが存在する場合、正しい挙動をしないように思います。

以下のような階層のツリーがあるとします。

---[aaa]
|
|-[bbb]
|□|--[ccc]
|□□□|--test
|
|-[ccc]
□□|--book

[]付きはフォルダ、[]無しはファイルです。

「\ccc\book」 をクリックしたいのですが、
アイテム名に、「ccc\book」と指定しても、「bbb\ccc\」配下を探しに行ってしまい、クリックすることができません。
cccフォルダが、bbbフォルダ配下にもあるためと思われます。

具体的には、以下の通りです。
CLKITEM(ID_top_win,"ccc\book",CLK_TREEVIEW)


たとえば、フルパスで指定できたら良いと思うのですが、その方法はありますでしょうか?
「\\ccc\book」と指定してもダメでした。

よろしくお願いします。

No.1298 2015/05/29(Fri) 16:10:31

Re: CLKITEM関数のCLK_TREEVIEW での指定がうまくできません。 / umiumi
確認しました。
対処します。

bookのみを指定
CLKITEM(ID_top_win,"book",CLK_TREEVIEW)

No.1300 2015/05/30(Sat) 09:24:59

Re: CLKITEM関数のCLK_TREEVIEW での指定がうまくできません。 / もに
umiumiさん

ご返信いただき、ありがとうございます。

たしかに、bookのみを指定で回避できますが、
\\bbb\ccc\配下にもbookが存在していた場合、こちらを選択してしまい、
\\ccc\bookを選択できないです。
(ご認識とは思いますが。。)

対処いただけますと大変助かります。
よろしくお願いします。

No.1301 2015/05/30(Sat) 12:33:13
あいまい条件の仕方について / さかぴー
データからhtmlタグを削除したいのですが、
やり方がよく分からず困っています。

//正義条件 = "<*>"
mozi = "<b>テストデータ</b>"
mozi = REPLACE(mozi,"<*>","")
print mozi

もちろんこれでは動かないのですが。。。
アドバイス頂けたら幸いです。

No.1294 2015/05/29(Fri) 02:57:42

Re: あいまい条件の仕方について / しろまさ
// 正義を条件付されてもコンピュータは戸惑うのではないかなぁ。。

// まず、UWSCのREPLACEでは正規表現は使えません。使うには他言語の力を借ります。
// それと、<*> ←これでは < が0以上の連続という指定なのでマッチしません。
// < が在り、1文字以上の連続(.+)、最短マッチ(?)、> で終わるものを消す という指定で以下ですね。

mozi = "<b>テストデータ</b>"
MsgBox(regReplace(mozi, "<.+?>", ""))

// > ではない連続([^>]+?) のほうが評価式 <> を残せますね。

mozi = "<b>テスト a<>b データ</b>"
MsgBox(regReplace(mozi, "<[^>]+?>", ""))

Function regReplace(a_text, a_ptn, a_after)  // 正規表現 置換
  Dim reg  = CreateOLEObj("VBScript.Regexp"); reg.Global = TRUE; reg.Multiline = TRUE; reg.pattern = a_ptn; Result = reg.Replace(a_text, a_after)
FEnd

No.1295 2015/05/29(Fri) 08:47:47

Re: あいまい条件の仕方について / さかぴー
しろまささん、ありがとうございます!!
No.1299 2015/05/29(Fri) 16:54:16
全1170件 [ ページ : << 1 ... 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 ... 117 >> ]