PDA

View Full Version : مشکل با دستور shell



xrezax
شنبه 06 مهر 1392, 16:17 عصر
من یک کامند دارم و یک تکست باکس.
داخل تکست باکس هرچی می نویسم می خوای جلوی سایت بیفته و سایتو باز کنه.

این دستور رو ببینید

Shell "explorer http://test.com/test/test.php?txt=" & Text1.Text, vbNormalFocus

حالا وقتی روی کامند کلیک می کنم Documents باز میشه بجای سایت. مشکل توی = هستش که باید پاک بشه. اما خوب دستورم ناقص می شه.
چیکار کنم بنظرتون ؟

مثلا اگر توی تکست بنویسم 100 و روی دکمه کلیک کنم می خوام وارد این سایت بشم
http://test.com/test/test.php?txt=100

هر کاری کردم به = گیر میده ویندوز و Documents رو باز میکنه.

mehran901
یک شنبه 07 مهر 1392, 02:22 صبح
برای این کار از Api استفاده میکنیم

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

Dim r As Long
r = ShellExecute(0, "open", "http://test.com/test/test.php?txt=" & "100", 0, 0, 1)

xrezax
یک شنبه 07 مهر 1392, 10:44 صبح
من از دستور شل می خوام استفاده کنم بخاطر قابلیت vbHide که داره. می خوام سایتی که باز میشه دیده نشه.
این سورس شما این قابلیتو داره ؟؟ vbHide

محسن واژدی
یک شنبه 07 مهر 1392, 17:00 عصر
سلام علیکم
Shell بصورت زیر ویرایش کنید درسته:
Private Sub Command1_Click()
Shell """" & Environ("HOMEDRIVE") & "\Program Files\Internet Explorer\iexplore.exe"" http://test.com/test/test.php?txt=" & Text1.Text, vbHide
End Sub

اگه vbHide رو به دستور ShellExecute آقای mehran901 عزیز اضافه کنیم هم همین عملکرد داره، البته ShellExecute را بیشتر توصیه می کنم، چرا که مزیت های کاربردی بیشتری نسبت به Shell داره:
r = ShellExecute(0, "open", "http://test.com/test/test.php?txt=" & "100", 0, 0, vbHide)

موفق باشید

xrezax
یک شنبه 07 مهر 1392, 18:04 عصر
راهی داره که پارمترهایی که ارسال می کنم توی حافظه اینترنت بروزر نمونه ؟؟؟

محسن واژدی
دوشنبه 08 مهر 1392, 07:45 صبح
راهی داره که پارمترهایی که ارسال می کنم توی حافظه اینترنت بروزر نمونه ؟؟؟
URLهای IE در کلید زیر ذخیره میشن:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs

میتوانید بعد از باز شدن ادرس این کلید را حذف کنید

xrezax
دوشنبه 08 مهر 1392, 08:58 صبح
r = ShellExecute(0, "open", "http://test.com/test/test.php?txt=" & "100", 0, 0, vbHide)

وقتی vbHide اضافه می کنم به حالت مخفی اجرا نمیشه چرا ؟؟؟

-------------------------------------------------------------------------------------------------------

یه سوال دیگه ای هم داشتم اونم اینه که

چطوری توی ایم مسیر
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs

اسم ساتمو پیدا کنم و پاک کنم ؟ فقط سایت خودمو می خوام پاک کنم.
با دستور shell باشه عالی میشه.

xrezax
دوشنبه 08 مهر 1392, 15:36 عصر
یک مشکل دیگه هم برخوردم
در این مسیر
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs

فقط آدرس هایی که دستی تایپ میشن ثبت میشن. آدرس هایی که برنامه وارد می کنه توی History می مونه ولی توی این مسیر نیستن.
بنظرتون مشکل کجاست ؟

xrezax
پنج شنبه 11 مهر 1392, 16:40 عصر
دوستان کسی نظری نداره ؟

محسن واژدی
پنج شنبه 11 مهر 1392, 16:56 عصر
یک مشکل دیگه هم برخوردم
در این مسیر
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs

فقط آدرس هایی که دستی تایپ میشن ثبت میشن. آدرس هایی که برنامه وارد می کنه توی History می مونه ولی توی این مسیر نیستن.
بنظرتون مشکل کجاست ؟
چون این آدرس ها در History ذخیره می شن می توانید از دستوراتی مثل کد زیر برای حذف تاریخچه استفاده کنید:
Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1", vbHide


موفق باشید

xrezax
جمعه 12 مهر 1392, 15:16 عصر
Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1", vbHide



از این دستور که استفاده می کنم صفحه پاک کردن history نمایان میشه. راهی داره مخفی این کارو انجام بده؟

Gr33nNINf1Ght3R
پنج شنبه 25 مهر 1392, 10:56 صبح
سلام دوستان
من با دستور
Shell("attrib +h "%userprofile%\my documents"")
در vb مشکل دارم .ارور میده میگه علامت درصد اولی نامشخه.خب اگه اونو نزارم که اصلا نمیشه.
یه سوال دیگه.از کجا بفهمیم که visual studio رو روی vb.net تنظیم کردیم یا روی vb 6

vbhamed
پنج شنبه 25 مهر 1392, 12:06 عصر
سلام
براي سؤال اول از دستورات خود وي بي استفاده كنيد
SetAttr Environ$("userprofile") & "\my documents", vbHidden
در مورد سؤال دوم هم ويژوال استوديو ورژن 6 براي VB6 هست و بالاترش براي وي بي دات نت و ويژوال استوديويي نداريم كه هم VB6 داشته باشه هم دات نت