PDA

View Full Version : [Q] Hỏi về hàm shell ??



vivi
20-05-2003, 19:59
Giả sử mình có file: c:\tam.bat, khi minh dung ham shell để chạy file này: shell "c:\tam.bat" thì bình thường (dĩ nhiên là nó sẽ chạy ngon lành.). Thế nhưng khi mình dùng 1 Textbox để lấy dường dẫn của file cần chạy (ví dụ text1), khi dùng: shell text1.text thì nó chả chạy (lúc này text1.text="c:\tam.bat"). Vì sao thế ???

sẵn đây cho hỏi dtt_vn có ocx nào dùng để xử lý về thời gian (giống như đồng hồ trong windows vậy) ko ??? cho mình xin với, Cảm ơn trước nhé !!

SKM
23-06-2003, 15:17
Bạn nói đúng rồi đó. Hàm SHELL bắt buộc tham số phải là một string. Bạn có thể thủ lại đoạn CODE sau nhé

shell string(text1.text)

Hy vọng là được

vivi
23-06-2003, 15:50
ko co hàm string đâu, dùng shell str(text1.text) cũng ko được. Cảm ơn bạn nhé !

SKM
23-06-2003, 17:17
Trong VB không có ham string nhưng mình có thể dùng như thế để đổi kiểu. Gọi là TYPECASTING.
Mà bạn POST code lên đi. Thì xem mình mới hiểu được là tại sao.
Bạn thử xem lại xem textbox của bạn có để multiline không? nếu để multiline thì cũng không được đâu. Bạn gửi cho mình cái SOURCE của bạn ấy chứ đừng POST mỗi nội dung của FORM đâu nhé

trungnt88
23-06-2003, 18:10
shell cstr(text1.text)

'okie !!!

nganha
24-06-2003, 12:01
Theo như bạn vivi nói thì chắc chắn file c:\tam.bat phải được thực hiện nếu đường dẫn chính xác. Theo tôi bạn hãy kiểm tra lại xem file đó có tồn tại không hay đường dẫn có chính xác không ví dụ hoặc thử như sau:
Form với Text1 và Command1
Sub Command1_Click()
On Error GoTo ErrHandle
Dim retval as Long
retval = Shell (Text1.Text)' text của Text1 là c:\tam.bat
Exit Sub
ErrHandle:
MsgBox Err.Number & " " & Err.Description
End Sub
Nếu retval <> 0 thì file tam.bat của bạn đã được thực thi. Còn nếu kết quả = 0 thì file tam.bat không được thực thi. Còn nếu xuất hiện thông báo lỗi thì bạn cần xem lỗi đó là lỗi gì để xử lý tiếp (Ví dụ: 5: Invalid procedure call or argument, 53: Path not found)

vivi
24-06-2003, 12:55
Đúng như bạn trungnt88, dùng shell cstr(text1.text) --> OK ! Cảm ơn các bạn nhiều lắm !