چه جوری می توانم در هر کجا از ویندوز وقتی یک فولدر را انتخاب کردم مسیر و نام آن فولدر را بدست بیاورم
اضافه کنم که من نمی خوام از کنترل Common dialog استفاده شود بلکه می خواهم در خارج از برنامه این کار انجام شود
ممنون می شوم اگر جواب دهید
چه جوری می توانم در هر کجا از ویندوز وقتی یک فولدر را انتخاب کردم مسیر و نام آن فولدر را بدست بیاورم
اضافه کنم که من نمی خوام از کنترل Common dialog استفاده شود بلکه می خواهم در خارج از برنامه این کار انجام شود
ممنون می شوم اگر جواب دهید
اگر میشود بیشتر توضیح بده چون متوجه نمیشوم میخواهی چه کارکنی .
منم متوجه نشدم
با تشکر از توجه شما
برای اینکه منظورم را بیشتر متوجه شوید این جوری بیان می کنم
من برنامه ام را Minimize می کنم و از درایو مثلا C یک فولدر را انتخاب می کنم حالا می خوام توی برنامه ام مسیر و نام آن فولدر را بدست بیاورم
کاشکی می دونستم چون منم دنبالشم
اگه کسی فهمید اینجا بگه
کسی نیست که جواب بده ؟
بابا جواب بدین دیگه ، هیچ کس نیست به فریاد من برسد ؟
من که میدونم بلد هستید پس چرا جواب نمی دیدن ؟
با سلام
فکر نمی کنم همچین برنامه ای وجود داشته باشه من که نظیرش رو ندیدم اگر هم باشه با وی بی نیست.
یه ضرب المثل بین برنامه نویسا هست که میگه کار نشد نداره.نوشته شده توسط هانی هاشمی
من ضرب المثل رو گفتم که شما وارد عمل شی. گفتم که روحیه بگیری. وگرنه خودم که میدونستم.
سلام چطوری
آقا پیمان دستت درد نکنه روحیه دادی
من یه راه پیدا کردم روش انجام کار من فقط راهش رو میگم برنامه نویسیش با بقیه بچه ها(آخه بلد نیستم)
1.به قسمت TOOLS در بالای صفحه ی MY COMPUTERET بورو وبعد FOOLDER OPTION بعدش View --> بعد DISPLAY THE FULL PATH ... - حالا بالای هر پنجره ای آدرس کاملش رو می نویسه
2.می تونی با تسک منیجر اون رو بخونی
روش جالبیه ولی چرا میگی از تسک منجر بخونیم؟ باید هندل پنجره سلکت شدرو بگیریم و مسیر رو بخونیم.
من هم یک راه پیدا کردم هر چند که می دونم زیاد کارساز نیست
در رجیستری به مسیر زیر بروید و مقدار پیش فرض را برابر cmd.exe قرار دهید
اکنون وقتی روی هر فولدر راست کلیک می کنید یک گزینه به اسم Command اضافه شده است که وقتی روی آن کلیک می کنید مسیر فولدر را در Command prompt می دهد
[HKEY_CLASSES_ROOT\Directory\shell\Command\command]
@="cmd.exe"
یعنی چی در command promt میدهد؟
command promt یک برنامه ویندوزی است که اونا می تونی از مسیر
All programs|Accessories پیدا کنی
منم فکر میکنم بهترین راه استفاده از رجیستریه. باید یه متغیر بذاری که مقدار همون کلاسی که S_VB.max گفت رو بگیره
دوست عزیز دیگه کیه که ندونه داس چیه؟ من میدونم command promt چیه ولی میگم یعنی چی که در command promt نشون میده. مثلا یه صفحه داس باز میشه و فوریم بسته میشه ؟
در ضمن command promt داس شبیه سازی شده در ویندوزه و خودش یه محیط جداست. درسته که در ویندوز اجرا میشه ولی شاید درست نباشه که بگیم برنامه ویندوزیه.
آقا پیمان شما درست می فرمایید
حالا اگر در رجیستری ، مقدار پیش فرض را برابر مسیر برنامه قرار دهیم ، باعث می شود وقتی روی گزینه Command (در منوی راست کلیک فولدر) کلیک کنیم برنامه باز شود و بعد از انجام مراحلی که هانی هاشمی گفت ،برنامه عنوان پنجره فوکوس شده را بخواند
با این کار حداقل مسیر فولدر را می توان بدست آورد
سلام
من این کار رو می کنم
form1.appilication.path
و آدر کامل رو می گیرم
سلام
من سورسی که این کار رو کنه ندارم
اما برنامه ای مثل FileMon این کار رو انجام می ده و هر نوع دسترسی به فایل و شاخه ها را Log می کنه باید دید از چه روشی استفاده میشه اما فکر می کنم از توابع API ویندوز استفاده کنه
دنبال راهی توی API باشید
برنامه ای هم APIMON هم هست که هنگام دسترسی به توابع API می گه کدوم تابع استفاده شده
حالا اگر فرضیات درست باشه پس هنگام اجرای FileMon اگر APIMon رو هم اجرا کنیم میشه فهمید FileMon از کدوم تابع استفاده کرده
البته اینا همه یک حدسه
ولی اگه این راه رو ادامه بدین احتمالا به نتیجه می رسین
اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com
siahacker اگه منظورت app.path هست آدرس برنامه رو میده نه فولدرهای دیگرو.
S_VB.max من به مسیری که شما گفتی رفتم ولی کلید command نبود مسیری رو که گفتین ایجاد کردم و مقدار دیفالت رو کردم cmd.exe ولی command به راست کلیکم اضافه نشد.
در ضمن چرا command عنوان پنجره فوکوس رو برامون بخونه. خودمون با api ها خیلی راحت میتونیم این کار رو از تو برنامه بکنیم. ولی تغییرات تو فولدر آپشن کارو میپیچونه.
روش vbhamed هم جالبه. این برنامه هارو اگه داری بذار تا روشون کار کنیم شاید api شو پیدا کنیم .
سلام
اینم دو برنامه FileMon و ApiMon
نرم افزارهای بسیار مفیدی هستند مخصوصا برای سر درآوردن از کار برنامه های دیگه
یه دونه دیگه هم هست به نام RegMon که حتما می دونین چیکار میکنه
PortMonitor
VXDMonitor
اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com
Payman62 عزیز
من مسیر دقیق را نوشتم حتما یه جایی اشتباه کردی
HKEY_CLASSES_ROOT\Directory\shell\MyProgram\comman d
برای کلید Shell ، یک زیر کلید با نام اختیاری بساز تا اینجای کار باید برای راست کلیک فولدر ها یک گزینه با نام MyProgram وجود داشته باشد و بعد برای این کلید هم یک زیر کلید دیگه که باید اسمش حتما Command باشه بساز و مقدار دیفالت را برابر cmd.exe کن
اگر بازم مشکل داشتی بگو تا کد ویبی را برات بذارم
آخرین ویرایش به وسیله S_VB.max : چهارشنبه 24 اسفند 1384 در 11:39 صبح
من یک روش دیگه برای بدست آوردن مسیر فولدر بدست آوردم
اول برنامه را با این دستورات کامپایل کن و بعد در رجیستری همانطوری که قبلا گفتم مسیر برنامه را وارد کن
Private Sub Drive1_Change()
Dir1 = Drive1
End Sub
Private Sub Form_Load()
Text1.Text = Dir1
End Sub
میشه در مورد طریقه کار ApiMon توضیح بدی. من چک کردم ولی اطلاعات نامفهوم به جای API داد.نوشته شده توسط vbhamed
S_VB.max روشت جواب داد. صفحه داس باز شد و آدرس فولدر توش بود. ولی چه طور میخوای از این تو برنامه استفاده کنی؟
با صفحه داس فکر نکنم بشه کاری کرد ولی با کنترلهای Dir1 و Drive1 حداقل میشه مسیر فولدر را بدست آورد .
بابت اسم فولدر هنوز جوابی پیدا نکردم.
مشکل کار با ApiMon حل شد.
DirListBox و DriveListBox فقط تو خود برنامه کاربرد دارن. شما که نمیتونی ازشون تو خارج محیط برنامه استفاده کنی.
اگر برنامه را با دستورات زیر کامپایل کنی و بعد در رجیستری مقدار دیفالت Command را برابر مسیر برنامه قرار بدی ، وقتی روی راست کلیک فولدر ، کلیک می کنی مسیر فولدر در TextBox نشان داده می شود .
Private Sub Drive1_Change()
Dir1 = Drive1
End Sub
Private Sub Form_Load()
Text1.Text = Dir1
End Sub
البته اگر دقت کنی اینا در بالا گفته بودم .
ابتدا داخل مای کامپیوترت بشو بعد در منوی تولز فولدر آپشن را بنزن
بعد توی File Type
فولدر را انتخاب کن بعد رووی advance کلیک کن
بعدش روی new بزن در قسمت اکشن یک اسم بده و در قسمت پایین مسیر برنامه که کامپایل کردی را وارد کن بعد روی هر فولدری که راست کلیک کنی اون کلمه ای که تو اکشن نوشتی ظاهر می شه بعدش با کلیک کردنت روی اون اگر برنامه بسته باشه باز می شه و مسیر را انتقال می ده به تکست باکست اگر هم برنامه باز باشه بازم همین کار رو می کنه
اگر سئوالی بود در خدمتم
خوب گیر ما سر همین ایجاد تغییر در فولدر آپشنه دیگه. وگرنه راهی که هانی پیشنهاد کرده بود که خیلی ساده تره. کافیه هندل پنجره دارای فوکوس رو بگیریم و کپشنش رو بخونیم.نوشته شده توسط hamid2002ir
نوشته شده توسط هانی هاشمی
HKEY_CLASSES_ROOT\Directory\shell\Open With our Program\command
در مسیر بالا تو ریجستری کلید زیر را وارد کن عزیز جان نوشتی ای که حالت بولد داره نام اکشن شماست
"C:\Documents and Settings\Vatan\My Documents\Project1.exe" %1
مسیر بالا هم مسیر برنامه ات است
آقا حمید دستت درد نکنه ، خیلی ممنون
قابلی نداشت
این جا چه خبره. hamid2002ir این روشو که S_VB.max گفته بود. S_VB.max شما خودت این روشو پیشنهاد کردی و حالا که حمید پستتو تکرار کرده براش دست میزنیو تشکر میکنی؟ مگه برات تازگی داشت؟نوشته شده توسط S_VB.max
در روش من تنها مسیر فولدر بدست می آمد در صورتی که در روش hamid2002ir می تونی علاوه بر مسیر فولدر ،نام فولدر را هم بدست بیاوری
شما اصلا نیاز نیست به folderoption کاری داشته باشید تنها در رجیستری مسیر برنامه را به همان صورتی که hamid2002ir گفت وارد کنید، در این روش در تکس باکس علاوه بر مسبر فولدر ، نام فولدر با هم داده می شود. مثلا بصورت: E:\WINDOWS\system32
برای جدا کردن این دو از هم از دستورات زیر استفاده کنید:
Dim path, NameFolder As String
Dim i As Integer
Private Sub Form_Load()
Text1.Text = Command
For i = 0 To Len(Text1.Text)
NameFolder = Right(Text1.Text, i)
If Left(NameFolder, 1) = "\" Then
NameFolder = Right(Text1.Text, i - 1)
path = Left(Text1.Text, Len(Text1.Text) - i)
Exit For
End If
Next
MsgBox "name folder is =" & NameFolder & vbCrLf & " path folder is =" & path
End Sub
من متوجه نمی شم اینجا چه خبره!
یعنی همه گیر سر یه 1% بود. جالبه. ولی من فکر میکردم شما میخوای کاربر وارد هر فولدری بشه مسیرش رو به دست بیاری. نه به این صورت که رایت کلیک کنه و یه گزینه انتخاب کنه. بلکه همین که وارد یه فولدر شد مسیرش به دست بیاد.
حالا که مشکل S_VB.max حل شد. ولی من دلم میخواد با این روشم که گفتم نام فولدر رو به دست بیارم. یعنی وارد فولدر که شدی بدون هیچ کلیکی آدرس فولدر گیر بیاد.
payman62 من هنوز نتونستم جوابی برای سئوال شما پیدا کنم ، اگه کسی از دوستان میدونه اینجا بگه
چه جوری می تونم کنار گزینه راست کلیک فولدرها یک آیکون بگذارم ؟