tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルRe:SendInput関数について
記事No14073
投稿日: 2009/09/18(Fri) 08:03
投稿者花ちゃん
SendInput関数が Vistaで動作しないのですが? - 靖 09/09/17-08:56 No.14039 が
少し長くなったのでこちらに継続します。

マウスを指定場所に移動しクリックする      (138)
http://hanatyan.sakura.ne.jp/vbhlp/mouse_event.htm

上記のサンプルを使った場合はどうなのでしょうか?

コントロールパネルのマウスのプロパティ関係やマウス関係のソフトの導入等も含め
環境等を調べてみてはどうでしょうか?

他の Vista 環境のPCが用意できるならそれらで試してどうなるか?
サンプルのコード以外、余計なコードは付加しておられないでしょうね。
今、使っておられるVista 環境のPCで作成した他のVB6.0のアプリは問題なく動作
しているのでしょうか?

どちらにしても私のVista 環境のPCでは問題なく動作しておりますので、コードや
プロパティ等変更しておられないのなら、そのPCの環境が影響しているものと
思われます。

[ツリー表示へ]
タイトルRe^2:SendInput関数について
記事No14074
投稿日: 2009/09/18(Fri) 12:36
投稿者
> マウスを指定場所に移動しクリックする      (138)
> http://hanatyan.sakura.ne.jp/vbhlp/mouse_event.htm
>
> 上記のサンプルを使った場合はどうなのでしょうか?
早朝よりありがとうございました。ちょっと外出してました。

139と全く変わらぬ挙動をしました。
    y = (Form1.Top + 200) \ Screen.TwipsPerPixelX
    x = (Form1.Left + 1100) \ Screen.TwipsPerPixelX
上記に変更して、ダブルクリック、右クリック、フォームのドラッグは問題ありません。
Command1ボタンをクリックは、動きません。

> 今、使っておられるVista 環境のPCで作成した他のVB6.0のアプリは問題なく動作
> しているのでしょうか?

動作してます
Xp機の方がVB6の開発には便利なため、(ヘルプとか部品とか諸々揃ってる)
主にこちらを使ってますが、Vista 環境のPCで作成したものもあります。
今までは、それらの全てが問題ありませんでした。

> どちらにしても私のVista 環境のPCでは問題なく動作しておりますので、コードや
> プロパティ等変更しておられないのなら、そのPCの環境が影響しているものと
> 思われます。
試用のためですので、コード等の変更は一切してません。
139を使うのが目的ではありませんので。
このコードを参考に作った物が、Xp OK で、Vista×。
それでは本家のもので試してみようということですので。

わたしのPCの固有の問題だとは、感じています。
時間をかけて調べてみます。

大変親身になり、ご助言いただいたことに感謝しております
追記
気になった点が一つ
サンプルのもの
'    y = (Form1.Top + 100) \ Screen.TwipsPerPixelX
'    x = (Form1.Left + 3000) \ Screen.TwipsPerPixelX
Xp ○ Vista ×
修正
    y = (Form1.Top + 200) \ Screen.TwipsPerPixelX
    x = (Form1.Left + 1100) \ Screen.TwipsPerPixelX
Xp ○ Vista ○

200 \ 15=13
100 \ 15= 6
その差 7  これが Vista では致命的。

[ツリー表示へ]
タイトルRe^2:SendInput関数について
記事No14075
投稿日: 2009/09/18(Fri) 13:00
投稿者
驚きです
y = y + 10 を追加で正常に動きました。
何故かはわかりません。
思いつきでやってみました。
-------------------------------------
    '縦方向
    y = Form1.Top + Command1.Top + (Command1.Height \ 2)
    'タイトルバーの寸法を求める
    y = y + (Form1.Height - Form1.ScaleHeight) - waku
    
    y = y \ Screen.TwipsPerPixelX   'スクリーン座標に変換(通常=15)
追加
    y = y + 10

[ツリー表示へ]
タイトルRe^3:SendInput関数について
記事No14076
投稿日: 2009/09/18(Fri) 13:25
投稿者花ちゃん
> 驚きです
> y = y + 10 を追加で正常に動きました。
> 何故かはわかりません。

>Command1ボタンの◎の中心付近にあります。

それでは、マウスポインターがCommand1 ボタンの真中になかった(Command1 ボタン外)
と言う事になりますが。(現在はどの位置を指していますか)


どのようなマウスポインターを使っておられるのでしょうか?
(Windows 標準の矢印 ?)
一度マウス関連を見直して見て下さい。

[ツリー表示へ]
タイトルRe^4:SendInput関数について
記事No14078
投稿日: 2009/09/18(Fri) 14:06
投稿者
> それでは、マウスポインターがCommand1 ボタンの真中になかった(Command1 ボタン外)
> と言う事になりますが。(現在はどの位置を指していますか)
変更前は
マウスポインターがCommand1 ボタンの真中
変更後は
◎とボタンの下枠の間ぐらい

雑談用掲示板に
:SendInput関数2で画像をアップしました

Windows 標準の矢印
ELECOM マウスマネージャを使っています。

[ツリー表示へ]
タイトルRe^5:SendInput関数について
記事No14080
投稿日: 2009/09/18(Fri) 14:19
投稿者花ちゃん
> ◎とボタンの下枠の間ぐらい

それでクリックができるなら、+10 する前は、Form をクリックしていた事になります。
Form のクリックイベント内に MsgBox の表示のコードを書いて試して見て下さい。
(+10 はせずに)

それで、Form の方がクリックできていたら、マウスドライバー等を含めて
マウスの動作がおかしいのかも知れませんね。

[ツリー表示へ]
タイトルRe^6:SendInput関数について
記事No14082
投稿日: 2009/09/18(Fri) 14:54
投稿者

> それでクリックができるなら、+10 する前は、Form をクリックしていた事になります。
> Form のクリックイベント内に MsgBox の表示のコードを書いて試して見て下さい。
> (+10 はせずに)

まさにその通りです。
Form のクリックイベントが実行されます。

> それで、Form の方がクリックできていたら、マウスドライバー等を含めて
> マウスの動作がおかしいのかも知れませんね。

そうですね。
ただコードで指定した位置に、ポインタは動いてるわけですよね。
でもその位置ではだめ、ずれた所をコードの方はクリックしている。
なにか不思議です。

長々とありがとうございました。
疑問は残りスッキリしないところもありますが、
一応それを考慮して作れば、ツールは動くということです。
実際にどれぐらいずれるのか、正確な値が分かればもっとやりやすいのでが。

[ツリー表示へ]