منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مساعدة في اختيار ملف عن طريق اداة WebBrowser
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
اصدقائي اريد منكم مساعدتي في طريقة اختيار ملف من الجهاز باستخدام اداة WebBrowser للتحكم بمنتدانا العزيز

لقد قمت بعمل برنامج صغير يقوم بالضغط على زر الاستعراض في موقع ما

وبعدها تظهر لي شاشة الديالوج Select File

واقوم يدوياً باختيار الملف وبعدها اضغط oK ولكن هذة الطريقة مملة وطويلة لانني اريد ان ارفع على الموقع في كل مرة اكثر من 10 صور

واريد الحل بجعل البرنامج لا يظهر الشاشة الافتراضية التي تظهر بل يقوم بارسال موقع الملف الى الشاشة ولكن وهي تعمل في الخلفية BackGround اي لا تظهر وقد حاولت اخفائها وان
اجعل البرنامج يتحكم بها لكن لم استطيع ذلك

وشاكرة لكم اهتمامكم

قمت بالبحث في جوجل ولكن لم استطع ايجاد الحل (رابط البحث)

وقد قمت سابقاً بعمل برنامج يقوم بسحب الصفحات وحفظها على الجهاز عن طريق
اداة WebBrowser دون ظهور الشاشة الاعتيادية لتحديد مكان حفظ الملف

كما هو الحال في الكود التالي
PHP كود :
Public Function SavePages(ByVal links2s As String)

        Try

            
Dim SaveFileDialog1 As New SaveFileDialog()
            
SaveFileDialog1.Filter "mht files (*.mht)|*.mht|All files (*.*)|*.*"


            
wb.Navigate(links2s)
            Do 
Until wb.ReadyState WebBrowserReadyState.Complete
                My
.Application.DoEvents()
            
Loop

            SavePage
(wb.Url.ToString"D:\All Pages Vb4arab\" & filename & ".mht")

        Catch ex As Exception

        End Try
    End Function

    Private Sub SavePage(ByVal Url As String, ByVal FilePath As String)
        Try

            Dim iMessage As CDO.Message = New CDO.Message
            iMessage.CreateMHTMLBody(Url, CDO.CdoMHTMLFlags.cdoSuppressObjects, "
فاتن", "1234")
            Dim adodbstream As ADODB.Stream = New ADODB.Stream
            adodbstream.Type = ADODB.StreamTypeEnum.adTypeText
            adodbstream.Charset = "
US-ASCII"
            adodbstream.Open()
            iMessage.DataSource.SaveToObject(adodbstream, "
_Stream")
            adodbstream.SaveToFile(FilePath, ADODB.SaveOptionsEnum.adSaveCreateOverWrite)
        Catch ex As Exception

            TextBox6.Text += "
Error is " & ex.Message & vbNewLine & "Url " & Url & vbNewLine & "Path " & FilePath & vbNewLine & "================" & vbNewLine

        End Try

    End Sub 


يوجد مثال للتعديل عليه مرفق

صورة توضيحية
وهي الشرح الي جبت منو الكود السابق الخاص بحفظ صفحات الانترنت دون ظهور شاشة الحفظ

http://social.msdn.microsoft.com/forums/...5d16f458c/
لا بد من ظهور مربع الحوار
kslawy كتب :لا بد من ظهور مربع الحوار

انا متأكدة انو في والطريقة معقولة لاني عملت من زمان كود خاص بالغاء شاشة الحفظ بأسم
كما ذكرت بالموضوع

وقمت بأخذ الطريقة من الرابط التالي

http://social.msdn.microsoft.com/forums/...5d16f458c/
سؤال خارج موضوعك ،، ما الفائدة من البرنامج ،، اذا كان القصد من هذا عرض صفحات المنتدى القديم من خلال رفع مرفقاته ،، فيمكنك الدخول على هذا الرابط


http://vb4arb.com/vb/showthread.php?3398...%E3-%A1%A1


اما اذا كان العمل المراد منه رفع ملفات المنتدى القديم فقد قمت باستخدام اسلوب اسرع من اسلووبك

اولا قمت برفع جميع المرفقات على الميديا فير دفعه واحده ،،، ثم أخذت اسماء اللفات و وضعتها بقاعدة بيانات و ثم قم بعمل كود يحلل صفحة المنتدى المفتوحه ثم يستبدل الروابط القديمه بالجديدة

اما بالنسبه للصور قمت برفعها كلها الى موقع بكسا التابع لموقع قوقل ،، و رفعتها دفعه واحده و ايضا قمت بحفظ محتوى روابط الصور المرفوعه الجديده و حفظها في قاعدة البيانات و عند فتح الصفحة يقوم بتحليل محتوى الصفحة و استبدال الروابط


بالنسبه لك اختي ،، على العموم ،، لم افهد الفائدة من برنامج اذا وضحتي اكثر ربما اقدر ان اساعدك ،،

كنت ممكن انزل الكود المصدري لبرنامجي لأجل ان تستفيدي بالطريقة التي استخدمتها لكني حاليا اعمل على جهاز أخر ،،
السكر المغرور كتب :سؤال خارج موضوعك ،، ما الفائدة من البرنامج ،، اذا كان القصد من هذا عرض صفحات المنتدى القديم من خلال رفع مرفقاته ،، فيمكنك الدخول على هذا الرابط


http://vb4arb.com/vb/showthread.php?3398...%E3-%A1%A1


اما اذا كان العمل المراد منه رفع ملفات المنتدى القديم فقد قمت باستخدام اسلوب اسرع من اسلووبك

اولا قمت برفع جميع المرفقات على الميديا فير دفعه واحده ،،، ثم أخذت اسماء اللفات و وضعتها بقاعدة بيانات و ثم قم بعمل كود يحلل صفحة المنتدى المفتوحه ثم يستبدل الروابط القديمه بالجديدة

اما بالنسبه للصور قمت برفعها كلها الى موقع بكسا التابع لموقع قوقل ،، و رفعتها دفعه واحده و ايضا قمت بحفظ محتوى روابط الصور المرفوعه الجديده و حفظها في قاعدة البيانات و عند فتح الصفحة يقوم بتحليل محتوى الصفحة و استبدال الروابط


بالنسبه لك اختي ،، على العموم ،، لم افهد الفائدة من برنامج اذا وضحتي اكثر ربما اقدر ان اساعدك ،،

كنت ممكن انزل الكود المصدري لبرنامجي لأجل ان تستفيدي بالطريقة التي استخدمتها لكني حاليا اعمل على جهاز أخر ،،



شكراً لك للرد لكن انا لا اريد عمل شيئ للمنتدى انا بشتغل على نظام ارشفة للشركة عندنا

ولكن لا مانع من وضعك الكود المصدري هنا :o في الموضوع لانو ممكن انا استفيد والكل يستفيد من الكود
تفضلي برنامج VB4Arab Uploader في المرفقات لرفع الملفات بدون إستخدام المتصفح
Osama_Ghareeb كتب :تفضلي برنامج VB4Arab Uploader في المرفقات لرفع الملفات بدون إستخدام المتصفح

تمت تجربة البرنامج ويعمل جيداً Smile

هل يمكنني استخدام الكود لرفع ملفات لموقع Kutub بدون الحوجة لتعديل أي جزئية في الكود سوى رابط صفحة الـ Upload ؟
kslawy كتب :تمت تجربة البرنامج ويعمل جيداً Smile

هل يمكنني استخدام الكود لرفع ملفات لموقع Kutub بدون الحوجة لتعديل أي جزئية في الكود سوى رابط صفحة الـ Upload ؟

لازم تحلل موقع كتب وتشوف شلون عملية الرفع وإيش هي الصفحة و طريقة إرسال البيانات ... إستخدم أداة Tamper Data الموجودة في الـ Firefox للتحليل
بالنسبة لطريقة صنع البرنامج فهي كالتالي :


في صفحة التحميل للموقع اللي بدك ياه رح يكون فيها أداة نوعها HTML Form

بالنسبة للمنتدى هاد فأوامر صفحة التحميل كالتالي :
كود :
[color=#0000ff]<form[/color] [color=#800080]method[/color]="[color=#ff0000]post[/color]" [color=#800080]action[/color]="[color=#ff0000]uploader.php?do=doupload[/color]" [color=#800080]enctype[/color]="[color=#ff0000]multipart/form-data[/color]"[COLOR=#0000ff]>
[/COLOR]<input type="[color=#ff0000]hidden[/color]" name="[color=#003366]do[/color]" value="[color=#003366]doupload[/color]" />
[COLOR=#00ff00]<br>
<table class="blockrow" cellpadding="" cellspacing="" border="0" width="100%" align="center">
        <thead>
                <tr align="center">
                        <td class="blockhead">مركز رفع الملفات</td>
                </tr>
        </thead>
<tr>
<td class="blockrow" align="center" colspan="7">
        <div id="uploadmsg"><br>
                
                        يمكنك عزيزي <font color="Maroon"><b>Osama_Ghareeb</b></font> أن تقوم برفع الصور والملفات في منتدى فيجوال بيسك لكل العرب من دون اللجوء لمواقع أخرى
                
        </div><br>
<p />
<div id="selectfile">اختر الملف الذي تريد رفعه</div>
[/COLOR]<div><input id="filetext0" type="[color=#ff0000]file[/color]" class="bginput" name="[color=#003366]file[][/color]" size="30" dir="ltr" /></div>
<div><input id="filetext1" type="[color=#ff0000]file[/color]" class="bginput" name="[color=#003366]file[][/color]" size="30" dir="ltr" /></div>
<div><input id="filetext2" type="[color=#ff0000]file[/color]" class="bginput" name="[color=#003366]file[][/color]" size="30" dir="ltr" /></div>
<div><input id="filetext3" type="[color=#ff0000]file[/color]" class="bginput" name="[color=#003366]file[][/color]" size="30" dir="ltr" /></div>
<div><input id="filetext4" type="[color=#ff0000]file[/color]" class="bginput" name="[color=#003366]file[][/color]" size="30" dir="ltr" /></div>
<div><input id="filetext5" type="[color=#ff0000]file[/color]" class="bginput" name="[color=#003366]file[][/color]" size="30" dir="ltr" /></div>
<div><input id="filetext6" type="[color=#ff0000]file[/color]" class="bginput" name="[color=#003366]file[][/color]" size="30" dir="ltr" /></div>
<div><input id="filetext7" type="[color=#ff0000]file[/color]" class="bginput" name="[color=#003366]file[][/color]" size="30" dir="ltr" /></div>
<div><input id="filetext8" type="[color=#ff0000]file[/color]" class="bginput" name="[color=#003366]file[][/color]" size="30" dir="ltr" /></div>

[COLOR=#00ff00]<br>
<div align="center" id="uploading" style="display:none; margin-top:px">
<br />
<font color="#FF0000"><strong>جاري رفع الملف الرجاء الانتظار</strong></font>
<br />
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="300" height="25">
        <param name="movie" value="images/uploadericon/up.swf">
        <param name="wmode" value=transparent>
        <param name="quality" value="high">
        <param name="bgcolor" value="#FFFFFF">
        <embed src="images/uploadericon/up.swf" quality="high" wmode="transparent" width="300" height="25" type="application/x-shockwave-flash" pluginspace="http://www.macromedia.com/go/getflashplayer">        </embed>
</object></div>
<div id="upload">[/COLOR]<input type="submit" class="button" name="upload" value="تحميل الملف" onclick="return verify_upload(this.form);" />[COLOR=#00ff00]</div>
[/COLOR]
[COLOR=#00ff00]<br />

أقصى حجم للملف : 10.00 ميجابايت<br /><br />
أقصى حجم للمجلد الخاص: 25.00 ميجابايت<br /><br />
بلغ مجلدك الخاص : 519.4 كيلوبايت<br /><br />
الأنواع المسموح رفعها : jpg jpe jpeg png gif txt swf zip doc rar<br /><br /></td>

</tr>
</table>
[/COLOR] [color=#0000ff]</form>[/color]


الأوامر المحددة بالأخضر ما بتفيدنا برمجيا
أما الأوامر المحددة بالبنفسجي :
method بتدل على نوع الطلب وغالبا بيكون POST
action بتدل على الصفحة اللي رح يرتسلها الطلب واللي هي uploader.php?do=doupload
enctype بيدل على طريقة إرسال الطلب فإن كانت application/x-www-form-urlencoded أو مو موجودة فرح تكون طريقة الإرسال كالتالي :
name1=value1&name2=value2&...

كود :
[color=#ff0000]HttpWebRequest[/color].ContentType = "[color=#ff0000]application/x-www-form-urlencoded[/color]"





وإذا كانت القيمة multipart/form-data فرح تكون طريقة الإرسال كالتالي :
كود :
[COLOR=#800080]
-----------------------------265001916915724
Content-Disposition: form-data; name="name1"

value1
-----------------------------265001916915724
Content-Disposition: form-data; name="name2"

value2
[/COLOR][COLOR=#800080]-----------------------------265001916915724
Content-Disposition: form-data; name="[/COLOR][color=#800080]etc..[/color][COLOR=#800080]"

[/COLOR][COLOR=#800080]etc..
-----------------------------265001916915724[/COLOR][COLOR=#800080]
[/COLOR]

بالنسبة لـ -----------------------------265001916915724 فهو أمر محدد منرسله للموقع مشان يفرق بين البيانات... وطريقة إرساله للموقع كالتالي :
كود :
[color=#ff0000]HttpWebRequest[/color].ContentType = "multipart/form-data; boundary=[color=#800080]-----------------------------[/color][color=#800080]265001916915724[/color]"




طريقة معرفة البيانات المرسلة :
بالنسبة للأوامر اللي بترتسل فهي كل أداة HTML داخل أداة الـ Form إلها قيمة في خاصية name فمثلا في الأمر اللي فوق :
في أداة اسمها do وهي مخفية وقيمتها ثابتة وفي تسع أدوات اسمهم file[] وفي أداة اسمها upload واللي هي زر الحفظ (المفروض ما يكون إله Name المفروض يكون id شكله خطأ برمجي (ما بيأثر شي) لأنه ما له داعي Big Grin)

*ملاحظة : إذا كان نوع الأداة ملف (type="file") رح تكون طريقة إرسال البيانات كالتالي :
كود :
[COLOR=#800080]
-----------------------------265001916915724
Content-Disposition: form-data; name="name1"

value1
-----------------------------265001916915724
Content-Disposition: form-data; name="name2"

value2
[/COLOR][COLOR=#800080]-----------------------------265001916915724
Content-Disposition: form-data; name="[/COLOR][color=#800080]file1[/color][color=#800080]"; filename="[/color][color=#ff0000]file1.txt[/color][COLOR=#800080]"
Content-Type: [/COLOR][COLOR=#ff0000]text/plain
[/COLOR][COLOR=#800080]
[/COLOR][COLOR=#ff0000]file1 data
[/COLOR][color=#800080] -----------------------------265001916915724[/color][COLOR=#800080]
[/COLOR]


file1.txt اسم الملف
text/plain نوع الملف
file1 data محتوى الملف


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


وهيك بما إنه enctype قيمتها multipart/form-data فرح تكون البيانات المرسلة كالتالي :

كود :
[COLOR=#800080]-----------------------------265001916915724
Content-Disposition: form-data; name="do"

doupload
[/COLOR][COLOR=#800080]----------------------------265001916915724
Content-Disposition: form-data; name="[/COLOR][color=#800080]file[][/color][color=#800080]"; filename="[/color][color=#ff0000]file1.txt[/color][COLOR=#800080]"
Content-Type: [/COLOR][COLOR=#ff0000]text/plain
[/COLOR][COLOR=#800080]
[/COLOR][COLOR=#ff0000]file1 data
[/COLOR][color=#800080] -----------------------------265001916915724[/color]
[color=#800080]Content-Disposition: form-data; name="[/color][color=#800080]file[][/color][color=#800080]"; filename="[/color][color=#ff0000]file2.txt[/color][COLOR=#800080]"
Content-Type: [/COLOR][COLOR=#ff0000]text/plain
[/COLOR][COLOR=#800080]
[/COLOR][COLOR=#ff0000]file2 data
[/COLOR][COLOR=#800080] -----------------------------265001916915724
[/COLOR][color=#800080]Content-Disposition: form-data; name="[/color][color=#800080]file[][/color][color=#800080]"; filename="[/color][color=#ff0000]file3.txt[/color][COLOR=#800080]"
Content-Type: [/COLOR][COLOR=#ff0000]text/plain
[/COLOR][COLOR=#800080]
[/COLOR][COLOR=#ff0000]file3 data
[/COLOR][COLOR=#800080] -----------------------------265001916915724
[/COLOR][color=#800080]Content-Disposition: form-data; name="[/color][color=#800080]file[][/color][color=#800080]"; filename="[/color][color=#ff0000]file4.txt[/color][COLOR=#800080]"
Content-Type: [/COLOR][COLOR=#ff0000]text/plain
[/COLOR][COLOR=#800080]
[/COLOR][COLOR=#ff0000]file4 data
[/COLOR][COLOR=#800080] -----------------------------265001916915724
[/COLOR][color=#800080]Content-Disposition: form-data; name="[/color][color=#800080]file[][/color][color=#800080]"; filename="[/color][color=#ff0000]file5.txt[/color][COLOR=#800080]"
Content-Type: [/COLOR][COLOR=#ff0000]text/plain
[/COLOR][COLOR=#800080]
[/COLOR][COLOR=#ff0000]file5 data
[/COLOR][COLOR=#800080] -----------------------------265001916915724
[/COLOR][color=#800080]Content-Disposition: form-data; name="[/color][color=#800080]file[][/color][color=#800080]"; filename="[/color][color=#ff0000]file6.txt[/color][COLOR=#800080]"
Content-Type: [/COLOR][COLOR=#ff0000]text/plain
[/COLOR][COLOR=#800080]
[/COLOR][COLOR=#ff0000]file6 data
[/COLOR][COLOR=#800080] -----------------------------265001916915724
[/COLOR][color=#800080]Content-Disposition: form-data; name="[/color][color=#800080]file[][/color][color=#800080]"; filename="[/color][color=#ff0000]file7.txt[/color][COLOR=#800080]"
Content-Type: [/COLOR][COLOR=#ff0000]text/plain
[/COLOR][COLOR=#800080]
[/COLOR][COLOR=#ff0000]file7 data
[/COLOR][COLOR=#800080] -----------------------------265001916915724
[/COLOR][color=#800080]Content-Disposition: form-data; name="[/color][color=#800080]file[][/color][color=#800080]"; filename="[/color][color=#ff0000]file8.txt[/color][COLOR=#800080]"
Content-Type: [/COLOR][COLOR=#ff0000]text/plain
[/COLOR][COLOR=#800080]
[/COLOR][COLOR=#ff0000]file8 data
[/COLOR][COLOR=#800080] -----------------------------265001916915724
[/COLOR][color=#800080]Content-Disposition: form-data; name="[/color][color=#800080]file[][/color][color=#800080]"; filename="[/color][color=#ff0000]file9.png[/color][COLOR=#800080]"
Content-Type: [/COLOR][COLOR=#ff0000]image/png
[/COLOR][COLOR=#800080]
[/COLOR][COLOR=#ff0000]PNG....
[/COLOR][COLOR=#800080] -----------------------------265001916915724
[/COLOR][COLOR=#800080]Content-Disposition: form-data; name="do"

doupload
[/COLOR][color=#800080]----------------------------265001916915724[/color] [COLOR=#003366]
[/COLOR]




بالتوفيق للجميع
:o
الصفحات : 1 2