PDA

View Full Version : لینک دادن به یک مسیر بدون استفاده از کنترل hyperlink



mohsen1360
جمعه 19 اردیبهشت 1382, 15:28 عصر
سلام
میخواستم ببینم میشه بدون استفاده از کنترلهای activex مثل hyperlink به یک مسیر روی هارد یا سی دی لینک داد به طوری که این کار روی هر سیستمی قابل انجام باشه و نیاز به اضافه کردن این کنترل روی اون سیستمها نباشه . (فرض کننین یه چیزی مثل سی دی هایی که با multimedia bulider و ... درست میکنن که سی دی autorun ه و با کلیک کردن روی فرمی که ظاهر میشه میشه به اون قسمت از سی دی رفت . ) کاری هم که من میخوام انجام بدم یه چیزی مشابه همین کاره .

Abbas Arizi
جمعه 19 اردیبهشت 1382, 15:36 عصر
من فکر میکنم شما میتوانید به جای Hyperlink از یک Label استفاده کنید و در رویداد کلیک Label دستور Shell را برای اجرای فایل به کار ببرید. اگر هم میخواهید یک فایل غیر از فایلهای اجرایی (.exe) را اجرا کنید از تابع ShellExecute که یک تابع API میباشد، استفاده کنید.

________________
عباس عریضی

mohsen1360
شنبه 20 اردیبهشت 1382, 02:03 صبح
ممنون از اینکه به سوال من پاسخ دادین

با کنترل lable و دستور shell فقط میشه یک فایل اجرایی رو اجرا کرد . من این کار رو قبلا هم انجام داده بودم ولی مشکل من با باز کردن یک folder یا باز کردن یک فایل غیر اجراییه . من تا به حال از shellexecute استفاده نکردم اگه ممکن هست کدهایی رو که باید استفاده کنم برام بنویسین .
در مورد باز کردن folder به نظر شما باید چه کار کنم با چه کنترلی میشه این کار رو ا نجام داد.

Abbas Arizi
شنبه 20 اردیبهشت 1382, 11:56 صبح
شما از کد زیر استفاده کنید. Folder ها هم با این روش باز میشوند:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOW = 5

Private Sub Form_Load()
Call ShellExecute(0, vbNullString, "C:\", vbNullString, vbNullString, SW_SHOW)
End Sub



_______________
عباس عریضی

mohsen1360
سه شنبه 23 اردیبهشت 1382, 14:52 عصر
سلام جناب آقای عریضی
من قطعه کدی رو که نوشته بودین استفاده کردم . این قطعه کد طوریه که حتمآ باید مسیر رو به صورت c:\ یا :\d و ... وارد کنیم یا اینکه من نتونستم درست از اون استفاده کنم . من با api درایو cdrom رو بدست میارو و میخوام اونو که مثلا داخل str قرار داره رو باز کنم باید چطور این کار روانجام بدم فرض کنید مسیر زیر رو
k:\ program\util که با قطعه کد زیر تولید میشه
(name & trim("program\util

که درایو k رو با api بدست میاریم

Abbas Arizi
چهارشنبه 31 اردیبهشت 1382, 10:52 صبح
با این کد هر مسیر واقعی روی سیستم اعم از درایو، فولدر و فایل را میتوان اجرا کرد. من فکر میکنم اشکال کار شما جای دیگری باشد و حدس میزنم شما از دستور Trim برای حذف کاراکترهای پوچ یک Buffer استفاده میکنید. Trim فقط میتواند کاراکترهای Space را حذف کند و برای حذف کاراکترهای Null کارائی ندارد. برای حذف Null با کد اسکی 0 خودتان باید یک تابع بنویسید. تابعی شبیه این:

Function StripNull(ByVal strString As String) As String
Dim intZeroPos As Integer

intZeroPos = InStr(strString, Chr(0))
If intZeroPos > 0 Then
StripNull = Left(strString, intZeroPos - 1)
Else
StripNull = strString
End If
End Function

Vahid_Nasiri
چهارشنبه 31 اردیبهشت 1382, 19:06 عصر
برای بدست آوردن مسیر جاری برنامه به یک چیزهایی مثل زیر نیاز دارید
app.path
و کلا خواص شیء app را یک دیدی بزنید ضرر ندارد.

toranjzar
سه شنبه 12 دی 1391, 11:24 صبح
سلام.من در سایتم با استفاده از jquery یک منو آبشاری ساخته ام .میخوام با کلیک بر روی هر زیر منو به multiview در صفحه لینک شوم و view در صفحه را ببینم ولی نمیدونم چطوری؟ممنون