初めまして
ここに投票するのは、最初なのでどう書いたらいいか解りませんけど
使ってるのはVB6です
知りたい内容は
Command1を押したらnotepadが起動されるようなのが作りたいです
出来ますでしょうか?
あとFormを常に全面に表示はVB6では出来ないのでしょうか?
教えてくださいお願いします
すいませんこのHPに解説してました
SetWindowsPosが前面で
ShellExecuteが起動みたいですね
今試してみたんですが前面の方は出来ましたが
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
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
(この場合,テキストファイルがメモ帳に関連付けられていれば、メモ帳が、
ワードに関連付けられていればワードが起動します)
書き込む時に「解決」ボタンをクリックしちゃったみたいです^^;すいません
ツイート | ![]() |