ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

ارتباط بانك اكسس رمز دار با برنامه

 
Post new topic   Reply to topic    ParsX.com Forum Index -> ويژوال بيسيك .NET
View previous topic :: View next topic  
Author Message
Rayaneh.farda
مهمون يكي دو روزه


Joined: 16 Aug 2006
Posts: 22

PostPosted: Wed Aug 30, 2006 3:13 pm    Post subject: ارتباط بانك اكسس رمز دار با برنامه Reply with quote

من براي يكي از دوستانم يك بانك به اكسس و يك برنامه ذخيره اطلاعاتي با ويژال بيسيك نوشتم و در برنامه رمز براي ورود دادم

حالا ميخواستم بدانم چه كار كنم اين دوستم
بانك و برنامه را نتونه به كس ديگري بده؟
يعني رمزي داشته باشه يك قفلي داشته باشه كه فقط در كامپيوتر دوستم قابل اجرا باشه؟


Last edited by Rayaneh.farda on Sat Sep 02, 2006 8:50 am; edited 1 time in total
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Wed Aug 30, 2006 3:57 pm    Post subject: Reply with quote

روش رمز گذاري روي بانك اكسس رو تو لينك زير مي بيني
http://computer.parsx.com/viewtopic.php?p=6352#6352
بعد از رمز گذاري توي بانك رمز ورود رو اينطوري توي ويژوال بيسيك وارد مي كني


     "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\ParsX.mdb" & _
     ";Jet OLEDB:Database Password=" & Password & ";"

در ضمن سوالت رو يك جا با عنوان درست بپرس .
براي چپ چين شدن كد ها هم توي اديتور سايت بعد از انتخاب كد ها دكمه code رو بزن .
Back to top
Rayaneh.farda
مهمون يكي دو روزه


Joined: 16 Aug 2006
Posts: 22

PostPosted: Sat Sep 02, 2006 8:35 am    Post subject: Reply with quote

وحيد جان مرسي از راهنمايت
سوال من را درست متوجه نشدي
دوباره با توضيح بيشتري مي پرسم
ببين من بانكم را password دادم. روي برنامه هم password دادم
براي ارتباط برنامه و بانك از adodc استفاده كردم و در تابع Form_Load دستورات شما را نوشته و مشكلي نبود
ولي من ميخواستم بدانم چه دستوري بايد بنويسم كه برنامه و بانك در يك كامپيوتر اجرا شود و وقتي برنامه به كسي دادم آن شخص برنامه من را به شخص ديگر ندهد
بانكم رمز داره و كسي نميتواند داخل بانك شود و هر شخصي ميتواند بانكم را كپي كند و همينطور برنامه را
فكر كنم توضيحاتم كافي باشد
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Sat Sep 02, 2006 11:49 am    Post subject: Reply with quote

باید برای برنامت سریال نامبری یا چیزی مشابه بزاری .
بعضی ها سریال هارد یا سخت افزار کامپیوتر رو می خونن و باهاش یه کد درست می کنند ...
Back to top
Rayaneh.farda
مهمون يكي دو روزه


Joined: 16 Aug 2006
Posts: 22

PostPosted: Sat Sep 02, 2006 5:11 pm    Post subject: Reply with quote

وحيد جان
من براي برنامه كلمه عبور گذاشتم كه هر وقتي روي برنامه دبل كليك كنه از دوستم كلمه عبور ميخواهد و در صورت درست بودن كلمه فرم اصلي برنامه باز ميشود
من داخل برنامه متغيري تعريف كردم كه بعد از يك مدتي يك پيغام ميدهد و سريال نامبر ميخواهد
اين متغير را براي اين نوشتم كه اگر دوستم به قولش عمل نكرد من password را بهش نميدهم
و وقتي سريال را به او دادم برنامه اجر ميشود و ديگر سريال نامبر نميخواهد
ولي اگر دوستم بعد از گرفتن سريال برنامه را كپي و به شخص ديگر داد بايد چكار كنم
من از كجا بايد بدانم كه شماره هارد و غيره كامپيوتر دوستم چي هست كه آن سريال را در برنامه ام وارد كنم
البته دوستم 3 كامپيوتر در دفترش دارد كه بهم لينك هستند و اگر شماره اي از كامپيوتر دوستم دانستم در برنامه گذاشتم پس براي 2 كامپيوتر ديگر چه ميشود
لطفا بيشتر مرا راهنمايي كنيد
Back to top
arash
مدير بخش سي
مدير بخش سي


Joined: 27 Nov 2004
Posts: 1232
Location: www.parsx.com

PostPosted: Sun Sep 03, 2006 8:34 am    Post subject: Reply with quote

خوب بزار صورت مسئله رو ببینیم :
برنامه ای بنویسید که ( ب.ب.ک) در صورتی که روی کامپیوتری اجرا شود شخص دیگری نتواند از این پسورد استفاه کند ؟
برای حل این مشکل باید پسورد داینامیک به وجود بیاری یعنی وقتی برنامه ی تو روی کامپیوتر دیگری اجرا شد پسورد متفاوتی از تو درخواست کند.برای این که پسورد داینامیک به وجود بیاری باید سه عدد تابع بنویسی یک تابع که روی برنامه است که در حال حاظر نوشتی این تابع یک متغییر ثابت می خواند .این متغییر ثابت می تواند سریال نامبر هارد یا سریال نامبر هر قطعه دیگری باشد و یا حتی سریال نامبر خود ویندوز .بعد این کد رو تغییر داده و تبدیل به یک عدد یا یک رشته می کند. بعد آن را به کاربر نشان می دهد . کاربر این سریال نامبر را با تلفن به شما به شما می گوید . شما این کد را گرفته و به تابع دیگری که در برنامه دیگری است می دهید . سپس تابع شما این عدد را با انجام یکسری اعمال تبدیل به کد دیگری خواهد کرد و در نهایت کد دیگری خواهد ساخت . شما این کد را به کاربرتان می گویید و او این کد در برنامه خودش وارد می کند سپس برنامه شما این کد را به تابعی که درست برعکس کار تابعی که در دست شماست انجام می دهد و نتیجه را با کد که از تبدیل سریال نامبر هارد دوست شما است مقایسه می کند و اگر یکی بود اجازه ورود می دهد و برای اینکه دوست شما هر بار کد را وارد نکند یک کلید در رجیستری یا یک فایل در یک جای هارد با یک نام مشخص و با یک مقدار مشخص ثبت می کند که کاربر دفعه بعد که وارد برنامه شد اگر این فایل یا این کلید رجیستری موجود بود دیگر لزومی به استفاده از رجیستر کردن نرم افزار نباشد.
یکم دردسر داره ولی هر که طاوس خواهد جور هندوستان کشد.
Back to top
Rayaneh.farda
مهمون يكي دو روزه


Joined: 16 Aug 2006
Posts: 22

PostPosted: Sun Sep 03, 2006 11:56 am    Post subject: Reply with quote

آرش جان مرسي از راهنمايت
ولي سوال من اين نبود
ببين عزيزم اگر بعد از تلفن آن شخص من كلمه عبور آخر را به او دادم و برنامه ريجستر شد و ديگر كلمه رمز نخواست
و ان وقت آن شخص برنامه ريجستر شده را كپي و به شخص ديگر داد تكليف چي ميشه؟
در ضمن راجب به ريجستر شدن ميتواني مثال بزني من متوجه منظورت شدم
ولي نميدانم كه چه طوري يك سريال از كامپيوتر آن طرف در برنامه ام بياورم و بعد چطوري بايد آنرا به متغير ديگر تبديل كنم؟
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Sun Sep 03, 2006 10:14 pm    Post subject: Reply with quote

نيازي به رجيستر كردن نيست . مي توني توي بانكت يه جدول بزاري كه درد سر اينكار رو نكشي .
بعد هم در مورد مشكلي كه گفتي در هر زمان اجرا بايد سريال نامبر يه بار ديكد بشه تا در هر لحظه بفهمه كه روي كامپيوتر هست يا جاش عوض شده .
Back to top
Rayaneh.farda
مهمون يكي دو روزه


Joined: 16 Aug 2006
Posts: 22

PostPosted: Mon Sep 04, 2006 1:54 pm    Post subject: Reply with quote

من دستوراتي براي پيدا كردن سريال هارد دارم
لطفا چك كنيد

Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Private Sub Command1_Click()
Dim objs
Dim obj
Dim WMI

Set WMI = GetObject("WinMgmts:")

    Label1.Caption = "HDD Serial Num: " & GetSerialNumber("C:\")
 
End Sub

Function GetSerialNumber(strDrive As String) As Long

 Dim SerialNum As Long
 Dim Res As Long
 Dim Temp1 As String
 Dim Temp2 As String

 Temp1 = String$(255, Chr$(0))
 Temp2 = String$(255, Chr$(0))
 Res = GetVolumeInformation(strDrive, Temp1, Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))

 GetSerialNumber = SerialNum
 
End Function

من ميخواستم بدانم آيا هميشه شماره هارد بصورت عدد ميباشد يا نه ميتوان تركيب عدد و حرف هم باشد
اگر فقط عدد است من يك فكر بنظر رسيد آيا بنظر شما خوب است
ببيند من ميخواهم 4 رقم اول آنرا جدا كنم
و بعد برنامه اختلاف آنر را تا 10000 بدست بياورد و بعد ان عدد را براي دوستم نمايش بدهد
و بعد از تماس دوستم و اعلام عدد بدست آمده من عدد را به سيستمم بدم و عدد بعدي كه همان عدد هارد است بدست مياورم و به او اعلام ميكنم و
بعد دوستم عدد هارد خودش كه خبر ندارد را به سيستم داده و برنامه مطابقت 4 رقم عدد هارد را با 4 رقم عدد من چك ميكند در صورت درست بودن برنامه قابل اجر ميباشد

آيا بنظر شما مشكلي بوجود ميايد؟
لطفا مرا راهنمايي كنيد
Back to top
arash
مدير بخش سي
مدير بخش سي


Joined: 27 Nov 2004
Posts: 1232
Location: www.parsx.com

PostPosted: Wed Sep 06, 2006 12:43 am    Post subject: Reply with quote

اینم چیزی که می خواستی
اگه خیلی دقیق نیست به خاطر اینه که خودم دستی نوشتم
از رو کد خودت
تا بفهمی منظورم چی بود
فقط یادت باشه Form1 صفحه اولت می شه
Form2 رو از تو پروژه بردار چون با این صفحه هستش که رجیستری کد رو می تونی در بیاری
از بقیش رو هم که خودت فولی ...
http://h1.ripway.com/arashkey/vbserialhard.zip
در ضمن تو این برنامه هیچ گونه امکانات امنیتی تعبیه نشده
هواست باشه
و هم چنین می تونی به جای استفاده از فایل از رجیستری کمک بگیری که مقالات آموزشیش تو سایت هست
برای کد کردن اطلاعات از یک ضرب و جمع ساده استفاده کردم تو هر چقدر بخوای می تونی پیچیدش کنی
Back to top
Rayaneh.farda
مهمون يكي دو روزه


Joined: 16 Aug 2006
Posts: 22

PostPosted: Wed Sep 06, 2006 10:25 am    Post subject: Reply with quote

بسيار بسيار ممنون
خيلي بهم كمك كردي
آرش من سوالات ديگر روي سايت گذاشتم كه ممكن براي خيلي ها اين مشكلات پيش بياد
ميشه خواهش كنم به آنها جواب بدي
باز هم تشكر
Wink
Back to top
Rayaneh.farda
مهمون يكي دو روزه


Joined: 16 Aug 2006
Posts: 22

PostPosted: Wed Sep 06, 2006 10:40 am    Post subject: Reply with quote

دوستان من روي بانك password گذاشتم
و براي ارتباط برنامه با بانك هم دستورات بالا را نوشتم يك مشكل بوجود آمد

آن هم اين بود كه در پروژه اي كه نوشتم از كريستال ريپورت استفاده كردم
و وقتي برنامه را Run كردم متوجه شدم موقعيكه ميخواهم فايل كريستال ريپورت را از درون برنامه باز كنم به مشكل بر ميخورم بايد چه كار كنم
من دستوري كه براي باز كردن فايل كريستال است مينوسم
Private Const OpenDialogFilter As String = "Crystal Reports |*.rpt"
Private errString, errTitle As String

Dim m_Application As New CRAXDDRT.Application
Dim m_Report As CRAXDDRT.Report


 If Text4 = "PNG" Then
    Me.Caption = " چكهاي پاس نشده قبلي"
    Text3.Text = App.Path + "\Crystal Reports\Chekha.rpt"
    Set m_Report = m_Application.OpenReport(Text3.Text, 1)
    m_Report.RecordSelectionFormula = "{Q_ChekHa.pas}=خير''  and {Q_ChekHa.Date}<'" + Main.Tarikh.Text + "'"
    m_Report.FormulaFields(2).Text = "'" & Main.Tarikh.Text & "'"
    m_Report.FormulaFields(3).Text = "ليست چكهاي پاس نشده قبلي"
End If


CRViewer1.ReportSource = m_Report
CRViewer1.ViewReport
Back to top
arash
مدير بخش سي
مدير بخش سي


Joined: 27 Nov 2004
Posts: 1232
Location: www.parsx.com

PostPosted: Tue Sep 12, 2006 10:36 pm    Post subject: Reply with quote

بعید می دونم اینها به هم ربطی داشته باشن
در ضمن یادت باشه در صورتی که طرفت درایوش رو فرمت کنه یک سریال نامبر جدید می خوااد
Back to top
Rayaneh.farda
مهمون يكي دو روزه


Joined: 16 Aug 2006
Posts: 22

PostPosted: Mon Sep 18, 2006 1:10 pm    Post subject: لطفا به سوالات من جواب بدهيد Reply with quote

من 3 كامپيوتر به هم لينك دارم (شبكه)
بنظر شما من بايد براي اتصال بانكها به هم چه كار بكنم
1- برنامه را در هر 3 كامپيوتر كپي و بعد Table بانك 2 كامپيوتر USER را LINK به كامپيوتر SERVER بكنم
2- برنامه را در كامپيوتر SERVER كپي و بعد يك شورت كات در 2 كامپيوتر USER درست كنم
3- برنامه را در هر 3 كامپيوتر كپي و بعد در برنامه 2 كامپيوتر USER مسير بانكها را در شبكه قرار دهم
4-آيا روشي بهتر موجود است

دوستان من روي بانك password گذاشتم و براي ارتباط برنامه با بانك هم دستورات مربوطه را نوشتم يك مشكل بوجود آمد و آن هم اين بود كه در پروژه اي كه نوشتم از كريستال ريپورت استفاده كردم و وقتي برنامه را Run كردم متوجه شدم موقعيكه ميخواهم فايل كريستال ريپورت را از درون برنامه باز كنم به مشكل بر ميخورم و فايلهاي كريستال ريپورت كلمه عبور ميخواهند بايد چه كار كنم

چطور ميتوان از تركيب 2 كليد استفاده كرد؟ مثال ctrl+s
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> ويژوال بيسيك .NET All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum