Đánh giá chủ đề:
  • 1 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Giúp] lấy đường dẫn tương đối cho các Shell
#1
em có 1 Module để chạy các chương trình ngoài như máy tinh, notepad...
em chỉ dẫn được đường truyền tuyệt đối thôi, muốn chuyển sang tương đối thì viết thể nào?


Mã:
Function App_MSEXCEL()
On Error GoTo App_MSEXCEL_Err

    Call Shell("D:\Program Files\Microsoft Office\Office14\EXCEL.EXE", 1)


App_MSEXCEL_Exit:
    Exit Function

App_MSEXCEL_Err:
    msgBoxOK Error$
    Resume App_MSEXCEL_Exit

End Function

Em viết thế này thì báo File not Found

Mã:
Function App_Note()
On Error GoTo App_Note_Err

    Call Shell("%windir%\system32\notepad.exe", 1)


App_Note_Exit:
    Exit Function

App_Note_Err:
    msgBoxOK Error$
    Resume App_Note_Exit

End Function
Giúp em với nha. thank thank nhìu.
Chữ ký của dieuchinhlu
Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Cao nhân tất hữu cao nhân trị
CAO NHÂN TẮT THỞ VÔ PHƯƠNG TRỊ
ღღღღღTài sản của dieuchinhlu (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#2
hi dieuchinhlu,
Muốn làm được theo yêu cầu của bạn thì có 1 phương án sau:
copy đoạn code sau vào 1 module:


Option Compare Database
Option Explicit

Const errFileNotFound = 53

Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long

Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long
Sub RunAppWait(strCommand As String, intMode As Integer)
' Run an application, waiting for its completion
' before returning to the caller.

Const PROCESS_QUERY_INFORMATION = &H400
Const SYNCHRONIZE = &H100000

Const STILL_ACTIVE = &H103&

Dim hInstance As Long
Dim hProcess As Long
Dim lngExitCode As Long

On Error GoTo HandleError
' Start up the application.
hInstance = Shell(strCommand, intMode)
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or SYNCHRONIZE, _
True, hInstance)
Do
' Attempt to retrieve the exit code, which will
' not exist until the application has quit.
Call GetExitCodeProcess(hProcess, lngExitCode)
DoEvents
Loop Until lngExitCode <> STILL_ACTIVE

ExitHere:
Exit Sub

HandleError:
Select Case Err.Number
Case errFileNotFound
MsgBox "Unable to find '" & strCommand & "'"
Case Else
MsgBox Err.Description
End Select
Resume ExitHere
End Sub

sau đó bạn muốn mở ứng dụng nào thì chỉ cần gọi tên ưng dụng đó mà không cần quan tâm đến đường dẫn nữa, ví dụ nút bấm để mở notepad:

Private Sub Command0_Click()
RunAppWait "NOTEPAD.EXE", vbMaximizedFocus
MsgBox "Da mo NOTEPAD."
End Sub

tương tự với nút nhấn mở excel:
Private Sub Command1_Click()
RunAppWait "excel.EXE", vbMaximizedFocus
MsgBox "Da mo excel."
End Sub

chúc thành công



Chữ ký của hieuvn Xin chào! Mình là hieuvn, thành viên của Thủ Thuật Access tham gia ngày Oct 2010.
Reply
Những người đã cảm ơn haquocquan , Noname , dieuchinhlu , Cafe Via He


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Cần giúp đỡ chuyển số có thập phân ra chữ ledangvan 12 636 07-11-16, 03:56 PM
Bài mới nhất: maidinhdan
Lightbulb [Thủ Thuật] [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật maidinhdan 16 812 28-10-16, 11:18 AM
Bài mới nhất: ongke0711
  Xin giúp đỡ về VBA Access ! vocan 12 664 11-07-16, 10:45 PM
Bài mới nhất: ongke0711
  [Hỏi] Hiện ảnh trên form ngay sau khi insert đường link hình tvn_hut 18 776 09-03-16, 11:34 AM
Bài mới nhất: maidinhdan
  [Thủ Thuật] In kết quả record sau khi tìm kiếm có điều kiện với hình ảnh khi có đường dẫn tvn_hut 5 539 18-01-16, 04:24 PM
Bài mới nhất: tranthanhan1962

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ