ShellExecute パートⅡ


しもぢ  2005-07-25 14:28:26  No: 91075  IP: [192.*.*.*]

Public Declare Function ShellExecute Lib "shell32.dll" Alias _
      "ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _
      String, ByVal lpszFile As String, ByVal lpszParams As String, _
      ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long

     Public Declare Function GetDesktopWindow Lib "user32" () As Long

      
      Const SW_HIDE = 0
      Const SW_SHOWNORMAL = 1
      Const SW_SHOWMINIMIZED = 2
      Const SW_SHOWMAXIMIZED = 3
      Const SW_SHOWNOACTIVATE = 4
      Const SW_SHOW = 5
      Const SW_MINIMIZE = 6
      Const SW_SHOWMINNOACTIVE = 7
      Const SW_SHOWNA = 8
      Const SW_RESTORE = 9
      Const SW_SHOWDEFAULT = 10
を宣言し、
フォームのボタンクリック時に
Dim Ret As Long
 Ret = ShellExecute(Scr_hDC, "Open", DataMDB, "", "", SW_SHOW)

で無事ファイルオープンできましたが、最後のSW_NORMALの部分をSW_HIDE に変えてみても表示は変わらず、他のSW_○○  としてみても全く同じです。ここでウィンドウの表示を変えれるはずなのになぜ、変化がないのでしょうか?よろしくお願い致します。

編集 削除
ガッ  2005-07-25 15:01:48  No: 91076  IP: [192.*.*.*]

うーん、Access97で空のDBを作って以下のように試してみましたが、
ちゃんと最小化されてAccessが起動してくれましたよ?
Debug.Print ShellExecute( _
  0, _
  "open", _
  "C:\db1.mdb", _
  vbNullString, _
  vbNullString, _
  SW_SHOWMINIMIZED)

> Ret = ShellExecute(Scr_hDC, "Open", DataMDB, "", "", SW_SHOW)
このScr_hDCが非常に気になるのですが、
デバイスコンテキストハンドルなら渡しても意味がないよーなw;

編集 削除
しもぢ  2005-07-25 16:25:48  No: 91077  IP: [192.*.*.*]

ありがとうございます。
アクセス以外だと、ちゃんとできました。アクセスに何かありそうです・・・
  
で、無事mdbファイルがOPENできて、そこから任意のレポートを表示するようにしたいのですが、どうすればよいのでしょうか?

編集 削除