ボタンを押してメモ帳を起動するには?

解決


f@初心者  2003-10-12 05:23:54  No: 109069

初めまして
ここに投票するのは、最初なのでどう書いたらいいか解りませんけど
使ってるのはVB6です
知りたい内容は
Command1を押したらnotepadが起動されるようなのが作りたいです
出来ますでしょうか?
あとFormを常に全面に表示はVB6では出来ないのでしょうか?
教えてくださいお願いします


f@初心者  2003-10-12 05:49:57  No: 109070

すいませんこのHPに解説してました
SetWindowsPosが前面で
ShellExecuteが起動みたいですね


f@初心者  2003-10-12 06:20:10  No: 109071

今試してみたんですが前面の方は出来ましたが
ShellExecuteの方はC:\windows\の中のファイルしか起動できませんでした
d:\の中などのファイル起動出来ないです

中身はここの解説ページそのままです
ShellExecute(Me.hWnd, "Open", "Calc.exe", "c:\windows\", "", SW_SHOW)
のところを ShellExecute(Me.hWnd, "Open", "a.txt", "d:\", "", SW_SHOW)
に変えて実行しただけなんですがボタン押してもエラー文も反応もありません

'標準モジュール
Public Declare Function ShellExecute  Lib "SHELL32"  Alias "ShellExecuteA" (ByVal hWnd&, ByVal lpOperation$, ByVal lpFile$, ByVal lpParameters$, ByVal lpDirectory$, ByVal nShowCmd&) As Long

Public Const SW_SHOW = 5 'ウインドウをアクティブにする

'ここからはフォーム内の処理です
Private Sub Command1_Click()
    Dim Ret As Long
      ShellExecute(Me.hWnd, "Open", "Calc.exe", "c:\windows\", "", SW_SHOW)
End Sub


minami  2003-10-15 04:09:09  No: 109072

ShellExecute関数の引数の意味は
ShellExecute(
    HWND hwnd,              // 親ウィンドウのハンドル
    LPCTSTR lpVerb,         // 操作
    LPCTSTR lpFile,         // 操作対象のファイル
    LPCTSTR lpParameters,   // 操作のパラメータ
    LPCTSTR lpDirectory,    // 既定のディレクトリ
    INT nShowCmd            // 表示状態
);

となっています。
単純にnotepadを起動したいのであれば
ShellExecute Me.hWnd, "Open", "notepad.exe", vbNullString, "", SW_SHOW
で出来ます。

メモ帳も電卓も、パスが通っているシステムフォルダ(C:\WINNT\system32)にあるので、フルパスじゃなくても起動できるだけです。
DドライブにあるEXEなどを起動するのであれば、フルパスで指定すると良いと思います。

また、実行ファイルではなく、ファイル名を指定して、関連付けられたアプリケーションが起動し、指定されたファイルが開くようにするのであれば、
ShellExecute Me.hWnd, vbNullString, "d:\test.txt", vbNullString, "", SW_SHOW
(この場合,テキストファイルがメモ帳に関連付けられていれば、メモ帳が、
ワードに関連付けられていればワードが起動します)


minami  2003-10-15 04:12:39  No: 109073

書き込む時に「解決」ボタンをクリックしちゃったみたいです^^;すいません


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加