View previous topic :: View next topic |
Author |
Message |
Rayaneh.farda مهمون يكي دو روزه
Joined: 16 Aug 2006 Posts: 22
|
Posted: Wed Aug 30, 2006 3:13 pm Post subject: ارتباط بانك اكسس رمز دار با برنامه |
|
|
من براي يكي از دوستانم يك بانك به اكسس و يك برنامه ذخيره اطلاعاتي با ويژال بيسيك نوشتم و در برنامه رمز براي ورود دادم
حالا ميخواستم بدانم چه كار كنم اين دوستم
بانك و برنامه را نتونه به كس ديگري بده؟
يعني رمزي داشته باشه يك قفلي داشته باشه كه فقط در كامپيوتر دوستم قابل اجرا باشه؟
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
|
Posted: Wed Aug 30, 2006 3:57 pm Post subject: |
|
|
روش رمز گذاري روي بانك اكسس رو تو لينك زير مي بيني
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
|
Posted: Sat Sep 02, 2006 8:35 am Post subject: |
|
|
وحيد جان مرسي از راهنمايت
سوال من را درست متوجه نشدي
دوباره با توضيح بيشتري مي پرسم
ببين من بانكم را password دادم. روي برنامه هم password دادم
براي ارتباط برنامه و بانك از adodc استفاده كردم و در تابع Form_Load دستورات شما را نوشته و مشكلي نبود
ولي من ميخواستم بدانم چه دستوري بايد بنويسم كه برنامه و بانك در يك كامپيوتر اجرا شود و وقتي برنامه به كسي دادم آن شخص برنامه من را به شخص ديگر ندهد
بانكم رمز داره و كسي نميتواند داخل بانك شود و هر شخصي ميتواند بانكم را كپي كند و همينطور برنامه را
فكر كنم توضيحاتم كافي باشد |
|
Back to top |
|
|
vahid بي تو هرگز
Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
|
Posted: Sat Sep 02, 2006 11:49 am Post subject: |
|
|
باید برای برنامت سریال نامبری یا چیزی مشابه بزاری .
بعضی ها سریال هارد یا سخت افزار کامپیوتر رو می خونن و باهاش یه کد درست می کنند ... |
|
Back to top |
|
|
Rayaneh.farda مهمون يكي دو روزه
Joined: 16 Aug 2006 Posts: 22
|
Posted: Sat Sep 02, 2006 5:11 pm Post subject: |
|
|
وحيد جان
من براي برنامه كلمه عبور گذاشتم كه هر وقتي روي برنامه دبل كليك كنه از دوستم كلمه عبور ميخواهد و در صورت درست بودن كلمه فرم اصلي برنامه باز ميشود
من داخل برنامه متغيري تعريف كردم كه بعد از يك مدتي يك پيغام ميدهد و سريال نامبر ميخواهد
اين متغير را براي اين نوشتم كه اگر دوستم به قولش عمل نكرد من password را بهش نميدهم
و وقتي سريال را به او دادم برنامه اجر ميشود و ديگر سريال نامبر نميخواهد
ولي اگر دوستم بعد از گرفتن سريال برنامه را كپي و به شخص ديگر داد بايد چكار كنم
من از كجا بايد بدانم كه شماره هارد و غيره كامپيوتر دوستم چي هست كه آن سريال را در برنامه ام وارد كنم
البته دوستم 3 كامپيوتر در دفترش دارد كه بهم لينك هستند و اگر شماره اي از كامپيوتر دوستم دانستم در برنامه گذاشتم پس براي 2 كامپيوتر ديگر چه ميشود
لطفا بيشتر مرا راهنمايي كنيد |
|
Back to top |
|
|
arash مدير بخش سي
Joined: 27 Nov 2004 Posts: 1232 Location: www.parsx.com
|
Posted: Sun Sep 03, 2006 8:34 am Post subject: |
|
|
خوب بزار صورت مسئله رو ببینیم :
برنامه ای بنویسید که ( ب.ب.ک) در صورتی که روی کامپیوتری اجرا شود شخص دیگری نتواند از این پسورد استفاه کند ؟
برای حل این مشکل باید پسورد داینامیک به وجود بیاری یعنی وقتی برنامه ی تو روی کامپیوتر دیگری اجرا شد پسورد متفاوتی از تو درخواست کند.برای این که پسورد داینامیک به وجود بیاری باید سه عدد تابع بنویسی یک تابع که روی برنامه است که در حال حاظر نوشتی این تابع یک متغییر ثابت می خواند .این متغییر ثابت می تواند سریال نامبر هارد یا سریال نامبر هر قطعه دیگری باشد و یا حتی سریال نامبر خود ویندوز .بعد این کد رو تغییر داده و تبدیل به یک عدد یا یک رشته می کند. بعد آن را به کاربر نشان می دهد . کاربر این سریال نامبر را با تلفن به شما به شما می گوید . شما این کد را گرفته و به تابع دیگری که در برنامه دیگری است می دهید . سپس تابع شما این عدد را با انجام یکسری اعمال تبدیل به کد دیگری خواهد کرد و در نهایت کد دیگری خواهد ساخت . شما این کد را به کاربرتان می گویید و او این کد در برنامه خودش وارد می کند سپس برنامه شما این کد را به تابعی که درست برعکس کار تابعی که در دست شماست انجام می دهد و نتیجه را با کد که از تبدیل سریال نامبر هارد دوست شما است مقایسه می کند و اگر یکی بود اجازه ورود می دهد و برای اینکه دوست شما هر بار کد را وارد نکند یک کلید در رجیستری یا یک فایل در یک جای هارد با یک نام مشخص و با یک مقدار مشخص ثبت می کند که کاربر دفعه بعد که وارد برنامه شد اگر این فایل یا این کلید رجیستری موجود بود دیگر لزومی به استفاده از رجیستر کردن نرم افزار نباشد.
یکم دردسر داره ولی هر که طاوس خواهد جور هندوستان کشد. |
|
Back to top |
|
|
Rayaneh.farda مهمون يكي دو روزه
Joined: 16 Aug 2006 Posts: 22
|
Posted: Sun Sep 03, 2006 11:56 am Post subject: |
|
|
آرش جان مرسي از راهنمايت
ولي سوال من اين نبود
ببين عزيزم اگر بعد از تلفن آن شخص من كلمه عبور آخر را به او دادم و برنامه ريجستر شد و ديگر كلمه رمز نخواست
و ان وقت آن شخص برنامه ريجستر شده را كپي و به شخص ديگر داد تكليف چي ميشه؟
در ضمن راجب به ريجستر شدن ميتواني مثال بزني من متوجه منظورت شدم
ولي نميدانم كه چه طوري يك سريال از كامپيوتر آن طرف در برنامه ام بياورم و بعد چطوري بايد آنرا به متغير ديگر تبديل كنم؟ |
|
Back to top |
|
|
vahid بي تو هرگز
Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
|
Posted: Sun Sep 03, 2006 10:14 pm Post subject: |
|
|
نيازي به رجيستر كردن نيست . مي توني توي بانكت يه جدول بزاري كه درد سر اينكار رو نكشي .
بعد هم در مورد مشكلي كه گفتي در هر زمان اجرا بايد سريال نامبر يه بار ديكد بشه تا در هر لحظه بفهمه كه روي كامپيوتر هست يا جاش عوض شده . |
|
Back to top |
|
|
Rayaneh.farda مهمون يكي دو روزه
Joined: 16 Aug 2006 Posts: 22
|
Posted: Mon Sep 04, 2006 1:54 pm Post subject: |
|
|
من دستوراتي براي پيدا كردن سريال هارد دارم
لطفا چك كنيد
|
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
|
Posted: Wed Sep 06, 2006 12:43 am Post subject: |
|
|
اینم چیزی که می خواستی
اگه خیلی دقیق نیست به خاطر اینه که خودم دستی نوشتم
از رو کد خودت
تا بفهمی منظورم چی بود
فقط یادت باشه Form1 صفحه اولت می شه
Form2 رو از تو پروژه بردار چون با این صفحه هستش که رجیستری کد رو می تونی در بیاری
از بقیش رو هم که خودت فولی ...
http://h1.ripway.com/arashkey/vbserialhard.zip
در ضمن تو این برنامه هیچ گونه امکانات امنیتی تعبیه نشده
هواست باشه
و هم چنین می تونی به جای استفاده از فایل از رجیستری کمک بگیری که مقالات آموزشیش تو سایت هست
برای کد کردن اطلاعات از یک ضرب و جمع ساده استفاده کردم تو هر چقدر بخوای می تونی پیچیدش کنی |
|
Back to top |
|
|
Rayaneh.farda مهمون يكي دو روزه
Joined: 16 Aug 2006 Posts: 22
|
Posted: Wed Sep 06, 2006 10:25 am Post subject: |
|
|
بسيار بسيار ممنون
خيلي بهم كمك كردي
آرش من سوالات ديگر روي سايت گذاشتم كه ممكن براي خيلي ها اين مشكلات پيش بياد
ميشه خواهش كنم به آنها جواب بدي
باز هم تشكر
|
|
Back to top |
|
|
Rayaneh.farda مهمون يكي دو روزه
Joined: 16 Aug 2006 Posts: 22
|
Posted: Wed Sep 06, 2006 10:40 am Post subject: |
|
|
دوستان من روي بانك 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
|
Posted: Tue Sep 12, 2006 10:36 pm Post subject: |
|
|
بعید می دونم اینها به هم ربطی داشته باشن
در ضمن یادت باشه در صورتی که طرفت درایوش رو فرمت کنه یک سریال نامبر جدید می خوااد |
|
Back to top |
|
|
Rayaneh.farda مهمون يكي دو روزه
Joined: 16 Aug 2006 Posts: 22
|
Posted: Mon Sep 18, 2006 1:10 pm Post subject: لطفا به سوالات من جواب بدهيد |
|
|
من 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 |
|
|
|