home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1998 January (DVD)
/
VPR980100.ISO
/
OLS
/
WIN16
/
ESAVER04
/
ESAVER04.LZH
/
ESSRC04.LZH
/
ESRUNSET.FRM
< prev
next >
Wrap
Text File
|
1995-06-03
|
5KB
|
181 lines
VERSION 2.00
Begin Form ESRunSet
BackColor = &H00C0C0C0&
BorderStyle = 3 '固定(2重線)
Caption = "実行ファイルの設定"
Height = 1980
Icon = ESRUNSET.FRX:0000
Left = 2175
LinkTopic = "Form1"
ScaleHeight = 1620
ScaleWidth = 5055
Top = 3390
Width = 5175
Begin CommandButton btnBrows
Caption = "参照"
FontBold = 0 'False
FontItalic = 0 'False
FontName = "標準ゴシック"
FontSize = 12
FontStrikethru = 0 'False
FontUnderline = 0 'False
Height = 375
Left = 3960
TabIndex = 3
Top = 1080
Width = 975
End
Begin CommandButton btnCancel
Caption = "取消"
FontBold = 0 'False
FontItalic = 0 'False
FontName = "標準ゴシック"
FontSize = 12
FontStrikethru = 0 'False
FontUnderline = 0 'False
Height = 375
Left = 3960
TabIndex = 2
Top = 600
Width = 975
End
Begin CommandButton chkReturn
Caption = "了解"
FontBold = 0 'False
FontItalic = 0 'False
FontName = "標準ゴシック"
FontSize = 12
FontStrikethru = 0 'False
FontUnderline = 0 'False
Height = 375
Left = 3960
TabIndex = 1
Top = 120
Width = 975
End
Begin TextBox txtRunName
FontBold = 0 'False
FontItalic = 0 'False
FontName = "標準ゴシック"
FontSize = 10.5
FontStrikethru = 0 'False
FontUnderline = 0 'False
Height = 300
Left = 120
TabIndex = 0
Top = 240
Width = 3735
End
End
Option Explicit
Sub btnBrows_Click ()
Dim ofn As OPENFILENAME
Dim RtnInt As Integer
Dim StrFilter As String
Dim StrFile As String
Dim StrIniDir As String
Dim StrTitle As String
Dim StrDefExt As String
Dim StringSize As Long
Dim hMem As Integer
Dim Address As Long
RtnInt = -1
'表示などの、文字列変数の設定
StrFilter = "プログラム" & Chr$(0) & "*.exe" & Chr$(0) & Chr$(0)
StrFile = String$(256, 0)
StrIniDir = CurDir$ & Chr$(0)
StrTitle = "スクリーンセーバーにするファイルを選ぶ" & Chr$(0)
'文字列変数の長さを調べるーLenBを使わないとAPIに渡したときアドレスがずれる
StringSize = LenB(StrFile) + LenB(StrFilter) + LenB(StrIniDir) + LenB(StrTitle)
'文字列のサイズだけメモリーを割り当てる
hMem = GlobalAlloc(GHND, StringSize)
'もし返り値が0ならば、メモリー割当失敗
If hMem = 0 Then
MsgBox "メモリーの割り当てに失敗しました"
Exit Sub
End If
'割り当てたメモリーをLockする
Address = GlobalLock(hMem)
'もし返り値が0ならメモリーのLock失敗
If Address = 0 Then
MsgBox "メモリーのロックに失敗しました"
Exit Sub
Else
'lockに成功したら文字列を割り当てたメモリーにコピー
Call hmemcpy(ByVal Address, ByVal (StrFile + StrFilter + StrIniDir + StrTitle), StringSize)
End If
'OPENFILENAME構造体の設定
ofn.lStructSize = 72
ofn.hwndOwner = Me.hWnd
ofn.hInstance = 0
ofn.lpstrFile = Address 'StrFileのアドレス
ofn.lpstrFilter = ofn.lpstrFile + LenB(StrFile) '文字列はメモリー上で連続しているので文字列の長さ分アドレスがずれている
ofn.lpstrCustomfilter = 0
ofn.nMaxCustFilter = 0
ofn.nFilterIndex = 1
ofn.nMaxFile = 256
ofn.lpstrInitialDir = ofn.lpstrFilter + LenB(StrFilter)
ofn.lpstrTitle = ofn.lpstrInitialDir + LenB(StrIniDir)
ofn.Flags = OFN_HIDEREADONLY
ofn.nFileOffset = 0
ofn.nFileExtension = 0
ofn.lpstrDefExt = 0
ofn.lCustData = 0
ofn.lpfnHook = 0
ofn.lpTemplateName = 0
RtnInt = GetOpenFileName(ofn)
If RtnInt <> 0 Then
'返り値が0以外ならダイアログオープン成功
'選択ファイル名は、StrFileのアドレスに返るので内容を文字列変数にコピー
Call hmemcpy(ByVal StrFile, ByVal Address, Len(StrFile))
'文字列変数の内容を取り出してテキストボックスに表示
txtRunName.Text = Left$(StrFile, InStr(StrFile, Chr$(0)) - 1)
End If
'Lockしたメモリーをアンロック
RtnInt = GlobalUnlock(hMem)
'割り当てたメモリーを開放
RtnInt = GlobalFree(hMem)
End Sub
Sub btnCancel_Click ()
Unload Me
End Sub
Sub chkReturn_Click ()
Dim Rtn
'ファイルが指定されていなかったら
If txtRunName.Text = "" Then
MsgBox "ファイルを指定してください"
Exit Sub
End If
'実行ファイル?
Rtn = InStr(txtRunName.Text, ".")
If Mid$(txtRunName.Text, Rtn + 1, 3) <> "EXE" Then
MsgBox "実行ファイルを指定してください"
Exit Sub
End If
ESSetup.lstRunFileName.AddItem " " & txtRunName.Text
Unload Me
End Sub
Sub Form_Load ()
'画面中央に登場
ESRunSet.Left = (Screen.Width - ESRunSet.Width) / 2
ESRunSet.Top = (Screen.Height - ESRunSet.Height) / 2
End Sub