PDA

View Full Version : حرفه ای: خواندن مسیر Shortcut (با دستور Open)؟



محسن واژدی
جمعه 15 بهمن 1389, 17:13 عصر
سلام به همگی،

بنده یک فایل میانبر داشتم که میخواستم اطلاعات موجود در آن نظیر TargetFile، IconFileو Description موجود در اونو با دستور Open وی بی استخراج کنم البته میدونم که ساختن و یا گرفتن اطلاعات از یک Shortcut با شی WScript انجام میشه ولی من میخواستم از این روش (استخراج اطلاعات توسط Open) برای استخراج اطلاعات سایر فایلهایی که عملکردی شبیه Shortcut دارند هم استفاده کنم فایل هایی مثل فایل های Schedule با فرمت job.*
خودم با دستور Open میانبره رو بصورت باینری باز میکردم و هر کار میکردم اطلاعاتی رو که میخواستم بصورت قیق در اختیارم قرار نمیداد مثلا وقتی شماره رکورد 20 رو وارد میکردم نیمی از مسیر مثلا: "C:\Pro" رو برمیگردوند و با افزایش شماره رکورد مقدار بیشتری از مسیر رو برمیگردوند تا وقتی که مسیر کامل رو برمیگردوند اما وقتی میانبر دیگری رو واسه کار انتخاب میکردم شماره رکورد فرق میکرد و مسیر رو برنمیگردوند:عصبانی++::عصبان :

امیدوارم که منظورم رو کامل رسانده باشم
ممنون میشم یکی از دوستان نمونه ای برای اینکار قرار بدن
در زیر یک فایل shortcut از برنامه Paint ویندوز قرار دادم که میخواستم اطلاعات اونو با دستور Open استخراج کنم

یاعلی

parselearn
جمعه 15 بهمن 1389, 19:12 عصر
چي جالب، پيداش كردم

يك جستجوي ساده (http://www.google.com/webhp?hl=en#sclient=psy&hl=en&site=webhp&q=get+stream+shortcut+with+vb6+%2B+lnk&aq=f&aqi=&aql=&oq=&fp=333ac82edbb6d129)

دريافت Get information about a shortcut in Visual Basic 6 (http://www.vb-helper.com/howto_get_shortcut_info.html)

محسن واژدی
جمعه 15 بهمن 1389, 20:06 عصر
چي جالب، پيداش كردم

يك جستجوي ساده (http://www.google.com/webhp?hl=en#sclient=psy&hl=en&site=webhp&q=get+stream+shortcut+with+vb6+%2B+lnk&aq=f&aqi=&aql=&oq=&fp=333ac82edbb6d129)

دريافت Get information about a shortcut in Visual Basic 6 (http://www.vb-helper.com/howto_get_shortcut_info.html)

خیلی ممنون از توجهتون اما همان گونه که در صورت سوال گفتم:
البته میدونم که ساختن و یا گرفتن اطلاعات از یک Shortcut با شی WScript انجام میشه
خودم میتونم با شی WScript همه اطلاعات یک میانبر رو دریافت یا یک میانبر رو ایجاد کنم اما سوال من در این تاپیک این بود که چطور بوسیله دستور Open فایل رو بصورت باینری باز و اطلاعاتش رو استخراج کنم همچنین گفتم که من این کار رو (خواندن اطلاعات فایل) فقط برای فایل های میانبر نمیخوام بلکه برای فایلهایی نظیر فایل های job (همانطور که در سوال گفتم) میخوام چون این قابلیت (خواندن اطلاعات) فایل رو برای پروژه ام میخوام

parselearn
جمعه 15 بهمن 1389, 20:47 عصر
شما نمونه پروژتون رو قرار بديد
فايل ميانبر رو همه دارند!


در ضمن شما فايل ميانبر را با يك برنامه اديتور مانند notepad باز كنيد
اگر آدرس درش بود. مسلما ميشه با پردازش ركوردها
و پيدا كردن ركورد درايو (C:\Pro) باقي ركوردها را با افزايش طبق گفته خودتون پيدا كرد!

ali.rezaei7
جمعه 15 بهمن 1389, 20:55 عصر
درود. دوست عزيز براي كار با فايل هاي باينري، بايد با ساختار فايل آشنا باشيد. براي بيشتر آشنا شدن با فايل هاي ميانبر (Lnk) اين صفحه (http://www.stdlib.com/art6-Shortcut-File-Format-lnk.html) رو مطالعه كنين و بعد دست بكار بشين.
موفق باشين.

IranVB
شنبه 16 بهمن 1389, 15:08 عصر
سلام
آقای ali.rezaei7 (http://barnamenevis.org/_3D_3DjAcIJL6IzphxTou1lAmVQZmRmCjuTphVKMv1JMg9lMl9 zYmyzqy5JMgSzolSzLi8vBq5s3) با عرض معذرت من هر کاری میکنم از توضیحاتی که در لینک زیر گذاشتین چیزی دستگیرم نمیشه مثلا چطور به یکیشون دسترسی پیدا کنم، اگه یک نمونه دستور یا سورس بزارین ممنون میشم
http://iguess.us/.i/_3D_3DNogEUnhfzof1Pqu1zpiMHYykJnT1Pq1ATql9TnG1vA0W KLi02ow5vLckTM0AaY3q3qi8vBq5s3

0935647
جمعه 12 شهریور 1395, 09:07 صبح
سلام الان که من این جواب رو میدم شاید خیلی دیر باشه ولی شاید بعد از این افراد دیگری به این جواب نیاز داشته باشن اول لایبراری "Microsoft Shell Controls and Automation." رو به برنامتون اظافه کنید
142352
142353
و سپس کد زیر را اظافه کنید و همراه یک آبجکت دکمه
Private Sub CommandButton1_Click()
Dim a As String, b As String, c As String, d As String, e As String
a = ""
b = ""
c = ""
d = ""
e = ""
GetShortcutInfo "C:\Users\15584\Desktop\JPEG Imager 2.lnk", a, b, c, d, e
MsgBox a + "|" + b + "|" + c + "|" + d + "|" + e
End Sub
Private Function GetShortcutInfo(ByVal full_name As String, _
ByRef name As String, ByRef path As String, ByVal descr _
As String, ByRef working_dir As String, ByRef args As _
String) As String
Dim shl As Shell32.Shell
Dim shortcut_path, shortcut_name As String
Dim shortcut_folder As Shell32.Folder
Dim folder_item As Shell32.FolderItem
Dim lnk As Shell32.ShellLinkObject

On Error GoTo GetShortcutInfoError

' Make a Shell object.
Set shl = New Shell32.Shell

' Get the shortcut's folder and name.
shortcut_path = Left$(full_name, InStrRev(full_name, _
"\"))
shortcut_name = Mid$(full_name, InStrRev(full_name, _
"\") + 1)
If Not Right$(shortcut_name, 4) = ".lnk" Then _
shortcut_name = shortcut_name & ".lnk"

' Get the shortcut's folder.
Set shortcut_folder = shl.Namespace(shortcut_path)

' Get the shortcut's file.
Set folder_item = _
shortcut_folder.Items.Item(shortcut_name)
If folder_item Is Nothing Then
GetShortcutInfo = "Cannot find shortcut file '" & _
full_name & "'"
ElseIf Not folder_item.IsLink Then
' It's not a link.
GetShortcutInfo = "File '" & full_name & "' isn't a " & _
"shortcut."
Else
' Display the shortcut's information.
Set lnk = folder_item.GetLink
name = folder_item.name
descr = lnk.Description
path = lnk.path
working_dir = lnk.WorkingDirectory
args = lnk.Arguments
GetShortcutInfo = ""
End If
Exit Function

GetShortcutInfoError:
GetShortcutInfo = Err.Description
End Function



اینم یه فایل با vba
http://s6.picofile.com/file/8265963250/New_Microsoft_Excel_Worksheet.xlsm.html