tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル他のアプリケーションの操作について
記事No11187
投稿日: 2008/01/20(Sun) 09:43
投稿者美星
 みなさん、はじめまして。
 いまVBをつかってプログラムをくんでいます。
 で、ここに掲載されていた、「他のアプリケーションを起動する」
 を利用させていただいて、プログラムからアプリケーションを起動することは
 できました。
 ここで質問なのですが、
 アプリケーションを起動する場所を画面上指定したいと思います。
 どのようにすればよいかまったくわかりません。
 是非おしえてください

[ツリー表示へ]
タイトルRe: 他のアプリケーションの操作について
記事No11188
投稿日: 2008/01/20(Sun) 10:49
投稿者花ちゃん
>  アプリケーションを起動する場所を画面上指定したいと思います。

画面上 とは何を意味しているのでしょうか?

Top=0 or Top=0 Left=0 又は、他のウィンドウの前面 いずれにせよ、VBの標準の
機能ではできないので、Win32 API 関数を使う事になるかと思います。

(ある程度の知識をお持ちでないとコードを書いて下さいになるので)

[ツリー表示へ]
タイトルRe^2: 他のアプリケーションの操作について
記事No11193
投稿日: 2008/01/21(Mon) 14:35
投稿者美星
返信ありがとうございます。
少し調べ、自分なりに考えてみました。
MainWindowHandle, 100, 100, 300, 200, 1
で表示しようとしていますが、指定した場所に表示してくれません。
ソースを記載させていただきますので、どのようにすればうまくいくかおしえてください。

Private Declare Function MoveWindow Lib "user32" Alias "MoveWindow" _
(ByVal hwnd As IntPtr, ByVal x As Integer, ByVal y As Integer, _
ByVal nWidth As Integer, ByVal nHeight As Integer, _
ByVal bRepaint As Integer) As Integer

Dim irnandemo As System.Diagnostics.Process = _
  System.Diagnostics.Process.Start("C:\ttools\なんでもIRセンター\IRCenter.exe")
  IR.WaitForInputIdle() 'アイドル状態になるまで待機
  
'ウィンドウの位置を(0, 10)に、サイズを300x200に変更する
  MoveWindow(irnandemo.MainWindowHandle, 100, 100, 300, 200, 1)

です。

[ツリー表示へ]
タイトルRe^3: 他のアプリケーションの操作について
記事No11195
投稿日: 2008/01/21(Mon) 17:06
投稿者花ちゃん
>  Private Declare Function MoveWindow Lib "user32" Alias "MoveWindow" _
>  (ByVal hwnd As IntPtr, ByVal x As Integer, ByVal y As Integer, _
>  ByVal nWidth As Integer, ByVal nHeight As Integer, _
>  ByVal bRepaint As Integer) As Integer

VB6.0 ではないのですか? 宣言文の変数の型を確認して下さい。

[ツリー表示へ]
タイトルVBのバージョン違い
記事No11200
投稿日: 2008/01/22(Tue) 10:07
投稿者るしぇ
> Dim irnandemo As System.Diagnostics.Process = _
[VB.NET]のクラスのようですね。

この掲示板は[VB2.0]〜[VB6.0]の質問専用です。
お使いの VB のバージョンをご確認ください。

[ツリー表示へ]
タイトルRe^3: 他のアプリケーションの操作について
記事No11215
投稿日: 2008/01/23(Wed) 00:41
投稿者花ちゃん
>  Private Declare Function MoveWindow Lib "user32" Alias "MoveWindow" _
>  (ByVal hwnd As IntPtr, ByVal x As Integer, ByVal y As Integer, _
>  ByVal nWidth As Integer, ByVal nHeight As Integer, _
>  ByVal bRepaint As Integer) As Integer

ByVal bRepaint As Boolean) As Integer



>
> Dim irnandemo As System.Diagnostics.Process = _
>   System.Diagnostics.Process.Start("C:\ttools\なんでもIRセンター\IRCenter.exe")
>   IR.WaitForInputIdle() 'アイドル状態になるまで待機
    上記がうまく動作していないような。
  代わりに、下記でテスト
    System.Threading.Thread.Sleep(1000)
>  
>  'ウィンドウの位置を(0, 10)に、サイズを300x200に変更する
>   MoveWindow(irnandemo.MainWindowHandle, 100, 100, 300, 200, 1)

   MoveWindow(irnandemo.MainWindowHandle, 100, 100, 300, 200, True)
   ハンドルが取得できているか確認
  Debug.WriteLine(irnandemo.MainWindowHandle)

メモ帳を起動して試した限りでは修正分で、設定できました。

# 次回から言語のバージョンに合った掲示板に環境等も記入して投稿願います。

[ツリー表示へ]