PDA

View Full Version : سوال: نمایش آدرس فایلی که کاربر آن را باز میکند با وی بی؟؟؟



P.B.Lue
یک شنبه 29 دی 1392, 00:30 صبح
یه قسمت دیگه از برنامم ناقص مونده....میخام آدرس هر فایلی که کاربر باز میکنه مثلا کاربر یک نرم افزار رو باز میکنه رو توی برنامم آدرسشو نمایش بدم ..
کمکم کنید ممنون میشم.

MNDsoft
یک شنبه 29 دی 1392, 07:58 صبح
اگه برای باز کردن فایل از commondialog استفاده کنی نام و مسیر فایل تو خاصیت filename کامن دیالوگ ذخیره میشه.
کد زیر مسیر فایلی که کاربر باز کرده رو بر می گردونه:

CommonDialog1.ShowOpen
MsgBox (CommonDialog1.FileName)

P.B.Lue
یک شنبه 29 دی 1392, 10:41 صبح
نه میخوام کاربر وقتی توی محیط ویندوز یک برنامه باز کرد آدرسش توی برنامم ثبت بشه

AbbasVB
یک شنبه 29 دی 1392, 11:33 صبح
سلام
این کار به این راحتی ها امکان پذیر نیست
یا باید برای این کار هوک کنید که فقط آدرس به شما نمایش داده بشه
یا درایور بنویسید که این یکی هم سخت تر و هم با دسترسی و قابلیت های بیشتر.
در حال حاضر نمونه ای نداشتم که برات بذارم ولی اگر پیدا کردم حتما می زارم

P.B.Lue
یک شنبه 29 دی 1392, 11:36 صبح
ممنونم. ببینم چکار میکنید...

MNDsoft
یک شنبه 29 دی 1392, 18:37 عصر
راه های دیگه ای هم هست.
دنبال توابع api بگرد

AbbasVB
یک شنبه 29 دی 1392, 21:07 عصر
سلام
فعلا اینو پیدا کردم
این فقط تشخیص می ده که تغییری ایجاد شده ولی نمی تونه بفهمه که چه تغییری!
دارم دنبال نمونه های بهتری می گردم
اگر پیدا کردم می گذارم
این برنامه به یک دکمه و یک تکس باکس و یک لیبل نیاز داره
آدرس درایو و یا آدرس مورد نظر رو بهش بده و روی دکمه کلیک کن بعد اگر تغییری ایجاد بشه متن لیبل عوض می شه

Option Explicit
Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4
Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2
Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1
Private Const FILE_NOTIFY_CHANGE_SIZE = &H8
Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10
Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100
Private Const FILE_NOTIFY_CHANGE_ALL = &H4 Or &H2 Or &H1 Or &H8 Or &H10 Or &H100
Private Declare Function FindFirstChangeNotification Lib "kernel32" Alias "FindFirstChangeNotificationA" (ByVal lpPathName As String, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long) As Long
Private Declare Function FindCloseChangeNotification Lib "kernel32" (ByVal hChangeHandle As Long) As Long
Private Declare Function FindNextChangeNotification Lib "kernel32" (ByVal hChangeHandle As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function ResetEvent Lib "kernel32" (ByVal hEvent As Long) As Long

Public Sub WaitForFileChange(ByVal fn As String, Optional ByVal flags = FILE_NOTIFY_CHANGE_ALL, _
Optional ByVal CheckSubDir As Boolean = True, Optional ByVal TimeOut As Long = -1)

Dim hNote As Long
hNote = FindFirstChangeNotification(fn, CheckSubDir, flags)
WaitForSingleObject hNote, TimeOut
FindCloseChangeNotification hNote
Label1.Caption = "File Changed!"
End Sub


Private Sub Command1_Click()
Label1.Caption = ""
WaitForFileChange Trim(Text1.Text)
End Sub

AbbasVB
یک شنبه 29 دی 1392, 21:36 عصر
اینم یه پروژه خیلی عالی برای این کار همه چی رو نشون می ده(تغییر نام، ایجاد، حذف و...)
به غیر از اجرای برنامه ها که این رو هم دنبالشم اگه پیدا کردم برات می گذارم
امید وارم به دردت بخوره
یه مقدار کمی پیچیده است
115632

P.B.Lue
یک شنبه 29 دی 1392, 23:47 عصر
تونستم تو یکی از سایتهای لاتین زبان کدش رو پیدا کنم........:تشویق::تشویق::تشویق: :تشویق:
115682:تشویق::تشویق::تشویق:

MNDsoft
دوشنبه 30 دی 1392, 06:57 صبح
اینم یه پروژه خیلی عالی برای این کار همه چی رو نشون می ده(تغییر نام، ایجاد، حذف و...)
به غیر از اجرای برنامه ها که این رو هم دنبالشم اگه پیدا کردم برات می گذارم
امید وارم به دردت بخوره
یه مقدار کمی پیچیده است
115632

برای اجرای فایل می تونی از دستور shell استفاده کنی