# پایگاه‌های داده > سایر پایگاه‌های داده > Access >  اجرای RunTime برنامه های اکسس

## شاپرک

این مطلب رو جناب سنبله کار مطرح کردند .. به نظرم مطلب جالبیه ...گفتم بهتره براش یک تاپیک اختصاصی بزنیم .
بحث قبلی تو این تاپیک بود :
http://www.barnamenevis.org/sh...ad.php?t=49323



> بهترین روش برای بستن همه چیز runtime است
> اگر فایلتون با سوییچ runtime/ اجرا بشه برنامه شما در محیطی محافظت شده و بدون حتی یک اعلان اکسس فعال میشه .
> برای این کار هم می تونید بوسیله Shortcut آدرس دهی کنید .
> از شر همه پنجره های اضافی هم راحت می شید .
> 
> 
> داخل سی دی آفیس در این شاخه FILES\ACCRT دو تا فایل داری که با اجرای ACCESSRT.MSI ( که فایل نصبی هست ) روی کامپیوتر کاربر اکسس به صورت runtime فعال می شه و با اجرای فایل خودت فقط به صورت یک برنامه بدون امکان تغییرات و دسترسی به منوها کاربر می تونه استفاده کنه .
> 
> یادت باشه که اگر روی سیستم خودت نصبش کنی اکسست تبدیل می شه و دیگه نمی تونی طراحی کنی .
> ...

----------


## Ali_Fallah

با تشکر از شاپرک
چگونگی اجرای RUNTIME رو در صورت نصب آفیس رو هم توضیح بدید. ممنون

----------


## moustafa

ضمن تشکر از اقا/خانم سنبله کار وشما شاپرک  
اگه ممکنه از اول شروع کنید که چه مراحلی را باید طی کنیم

----------


## moustafa

به نقل از اقای کامران کامرانی :




> در مورد RunTime که شاپرک عزیز مطالبش رو جمع آوری کرد باید بگم که در CD آفیس 2003 پوشه ای بنام FILES هست که در اون بازم پوشه ای بنام ACCRT که در این پوشه یه فایل نصبی بنام ACCESSRT هست اون رو نصب کن البته برای جواب گرفتن بایستی آفیس رو سیستم نصب نباشه یا اینکه موقع نصب آفیس ACCESS نصب نکنی. در این صورت برنامه ای که دراکسس درست کردی بصورت EXE در میاد ونمیتونی تغییری روش اعمال کنی چون اکسس نصب شده نداری. موفق باشی 
> من تا این اندازه بلد بودم شاید بقیه دوستان مطالب بیشتری بلد باشند

----------


## mohsenna30ri

جهت استفاده از سوئیچ runtime /آدرسدهی محل نصب اکسس و خود برنامه مهم است و فکر کنم اگر نام فایلتان دارای فاصله خالی باشد یا مسیر نصب آفیستان دارای فاصله خالی باشد باید عبارت مسیر اکسس و نام فایلتان را داخل گیومه قرار دهید

----------


## سنبله کار

> ضمن تشکر از اقا/خانم سنبله کار وشما شاپرک  
> اگه ممکنه از اول شروع کنید که چه مراحلی را باید طی کنیم


ممنون (آقای سنبله کار)
از این که این مبحث مورد توجه قرار گرفت خوشحالم .
مراحل خیلی ساده هستند و در تاپیک قبلی که توسط شاپرک لینک شده آمده لطفا تست کنید و در صورت بروز اشکال بفرمائید .

----------


## شاپرک

به نظر من که بحث جالبیه اگه ممکنه همین جا ادامه بدید .

----------


## سنبله کار

چشم پیشنهاد می کنم دوستانی که مرحله ورود با runtime را جواب گرفتن به این مرحله وارد بشن .
شما ممکنه هنگام انتشار برنامتون از این روش استفاده کنید اما آیا مطمئن هستید که کاربر خریدار برنامه شما حتما از همین راه وارد بشه چرا که اکثر کاربرها روی سیستمشون آفیس کامل دارن و خوب اگه با اکسس کامل بازش کنن برنامه شما فاقد اون قابلیت اولیه می شه .
پس باید کاری کنید که برنامه خودشو هنگام اجرا چک کنه که اگر کاربر اونو بدون runtime اجرا کرده بود خارج شده و به صورت runtime اجرا بشه
این کد می تونه هنگام لود اولین فرم اجرا بشه

if SysCmd(acSysCmdRuntime) = false then
Shell Chr(34) & "msaccess.exe" & Chr(34) & " " & Chr(34) & Application.CurrentProject.FullName & Chr(34) & " /runtime", vbMaximizedFocus
DoCmd.Quit acQuitPrompt
End If

چطوره ؟

----------


## Ali_Fallah

أقای سنبله کار بفرمایید که این کد رو در کجا باید استفاده کرد ...

----------


## شاپرک

من فکر میکنم موقع اجرای برنامه یعنی لود شدن فرم اصلی برنامه .....

----------


## سنبله کار

همونطور که عرض کردم این کد می تونه هنگام لود اولین فرم اجرا بشه

Private Sub Form_Load()
محل کد ...
End Sub

----------


## moustafa

با تشکر
من الان تمرکز کافی ندارم ولی با یه برنامه اکسس دیگه میشه برنامه دیگه راتحت تاثیر قرار داد مثلا شیفت را از حالت قفل خارج کرد گزارشی را چاپ کرد.........
به این کد نیز میشه حمله کردیا نه ؟

----------


## moustafa

درهمان مسیر اولیه که گفتید یه پوشه بنامvs run time
وجودداره کار اون چی ؟
البته من visual studio نصب کردم

----------


## سنبله کار

دوست خوبم
این کد چون داخل فرم قرار داره با تبدیل به mde قابل حمله نیست و با هر بار لود شدن فرم ، کار می کنه .
مگر اینکه کاربر از اون فرم صرف نظر کنه که اگر روی تمام فرمها باشه باید از همشون صرف نظر کنه یا اینکه برنامه را decompile کنه که فقط پوسته فرمها را خواهد داشت و کد نویسیهای برنامه به دست نمی آیند که بتوان این قسمت آنها را جدا کرد و از بقیه برنامه استفاده کرد .

----------


## moustafa

راست میگی اصلان mde را فراموش کرده بودم!!!

----------


## سنبله کار

> راست میگی اصلان mde را فراموش کرده بودم!!!


چون من خیلی ADP رودوست دارم ADE رو هم بهش اضافه کنید .

----------


## Ali_Fallah

باسلام مجدد من کدی که آقای سنبله کار گفتند استفاده کردم جواب میده ولی با شیفت اینتر دوباره میشه به طراحی و... دسترسی داشت
چطور این گزینه رو غیر فعال کنیم
البته در صورت نصب اکسس
ممنونم

----------


## سنبله کار

البته همونطور که عرض کردم شما برای توزیع برنامه از این کد استفاده می کنید پس باید توجه داشته باشید که :
1-یک کپی از برنامه خود کنار بگذارید
2-کد بالا را برای runtime به فرمها اضافه کنید
3- کد زیر را برای غیر فعال کردن shift استفاده کنید
CurrentProject.Properties.Add "AllowBypassKey", False
4- فایل خود را به MDE یا ADE تبدیل کنید

----------


## Ali_Fallah

من استفاده کردم ولی نشد...

----------


## سنبله کار

روی کدوم مشکل دارید :
runtime  یا shift

----------


## Ali_Fallah

من تمام کدهایی که گفتید استفاده کردم ولی بازم میشه با شیفت اینتر دوباره به طراحی دسترسی داشت ضمنآ گفتید که کد مربوطه چک میکنه که با RUNTIME اجرا کرده اید یانه وگرنه اجرا نمیشه ولی روی سیستم من اصلا RUNTIME نصب نیست و اجرا هم میشه تازه روی سیستم دیگه ای هم امتحان کردم همین کدها رو ولی براحتی باز میشه 
بصورت RUNTIME اجرا میشه ولی با شیفت اینتر هم دیتا بیس باز میشه...

البته این کد CurrentProject.Properties.Add "AllowBypassKey", False رو هم در ON OPEN  فرم کپی کردم حالا نمیدونم درسته یا نه...

----------


## سنبله کار

کدی که برای غیر فعال کردن shift داده بودم برای اکسس پروجکت بود شما باید از این کد استفاده کنید .
Private Sub Form_Open(Cancel As Integer)

    ChangeProperty "AllowBypassKey", DB_Boolean, False
    
    If SysCmd(acSysCmdRuntime) = False Then
    Shell Chr(34) & "msaccess.exe" & Chr(34) & " " & Chr(34) & Application.CurrentProject.FullName & Chr(34) & " /runtime", vbMaximizedFocus
    DoCmd.Quit acQuitPrompt
    End If

End Sub


Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
    Dim dbs As Object, prp As Variant
    Const conPropNotFoundError = 3270

    Set dbs = CurrentDb
    On Error GoTo Change_Err
    dbs.Properties(strPropName) = varPropValue
    ChangeProperty = True

Change_Bye:
    Exit Function

Change_Err:
    If Err = conPropNotFoundError Then    ' Property not found.
        Set prp = dbs.CreateProperty(strPropName, _
            varPropType, varPropValue)
        dbs.Properties.Append prp
        Resume Next
    Else
        ' Unknown error.
        ChangeProperty = False
        Resume Change_Bye
    End If
End Function


برای آزمایش هم این نمونه را قرار می دهم .

----------


## Ali_Fallah

ممنون . من کد رو تست نکردم ولی فایل ضمیمه رو نگاه کردم ظاهراً بایستی فایل رو MDE کرد تا جواب بده 
...

----------


## سنبله کار

> ممنون . من کد رو تست نکردم ولی فایل ضمیمه رو نگاه کردم ظاهراً بایستی فایل رو MDE کرد تا جواب بده 
> ...


ضرورتا MDE نیاز نیست ولی کار از محکم کاری عیب نمی کنه.

----------


## Ali_Fallah

متشکرم خوب بود ...

----------


## سنبله کار

اگر تست کردید پیشنهاد می کنم شما و دیگر دوستان برای اینکه از هر نظر نتیجه بگیریم روی نمونه آزمایش کنید تا ببینیم راه نفوذ داره یا نه ؟
ممنون

----------


## mohsenna30ri

بابا اگر تو برنامه های سنگین هم بشه اینجوری محدود سازی کرد که حرف نداره
اگر میشه اصلش رو بدون غیر فعال کردن شیفت آپلود کنید

----------


## سنبله کار

کدش رو که نوشتم
اینم اصلش

----------


## HAMRAHSOFT.IR

بهترین راه وقشترین راه این که برای برنامه خود اینستال بسازیدو برنامه خود را بصورت نصبی در اوردید 

که برای این کهر برنامه مختلفی هست 

من برنامه دارم که تمام این مراحا را انجام مدهد فقط در کمال شرمندگی قیمت که نرم افزار فوق را خریدم گران است ولی حاضرم درصورتی که کسانی که نرم افزار فوق را خواستارهستنی به بشتر از 10 نفر برسد بصورت نصف قیمت بفروشم 


در اینم تبلقیست که فوشنده اصلی نرم افزار از ان کرده 


تبدیل اکسس به exe 
 تبدیل database های مبتنی بر access به exe ، بدون نیاز به نصب office و تغییر در database شما ، قابلیت install و uninstall کردن از روی CD ، امکان اضافه کردن Help فارسی ، ایجاد shortcut با ایکون مورد نظر شما ، امکان ایجاد product code ، code upgrade و version بندی محصولات ، اضافه کردن agreement license ، banner Image و غیره...

قیمت: 20000 اصل نرم افزار تومان

----------


## سنبله کار

دوست عزیز :
1- اینجا جای تبلیغات و فروش نرم افزار نیست برای اینکار بخشهایی در نظر گرفته شده .
2- قبل از معرفی امکانات هر نرم افزار نام اون باید معرفی بشه .
3- غلطهای املایی زیادی در پستهای شما دیده می شه لطفا اصلاح کنید .
با تشکر

----------


## Fazaeli

جناب mrz9000 بزودی برنامه Access Developer را در یک پست جدید  (لینک در سایت خودم) آپ لود میکنم تا دوستان استفاده کنند(حجمش 3تا 4 مگا بایت است، وقت زیاد میبره) دوستان منتظر باشند حتماً .
م.فضائلی

----------


## Fazaeli

در جواب جناب mrz9000حتماً به تاپیک https://barnamenevis.org/showthread.php?t=53844یه سر بزنید جالبه دوستان

----------


## HAMRAHSOFT.IR

دوستان من نخواستم تبلیغ کنم نه چیزی ولی اینوبگه که نرم افزار که من مگم اسمش این نیست 

ودر این زمین دیگرصحبت نمکنم

----------


## reza_hhh

> جهت استفاده از سوئیچ runtime /آدرسدهی محل نصب اکسس و خود برنامه مهم است و فکر کنم اگر نام فایلتان دارای فاصله خالی باشد یا مسیر نصب آفیستان دارای فاصله خالی باشد باید عبارت مسیر اکسس و نام فایلتان را داخل گیومه قرار دهید


 

مانند
"C:\Program Files\Microsoft Office\Office 11\MSAccess.exe"" D:\My Files\Taxes.mdb"

----------


## golabeton

> بهترین راه وقشترین راه این که برای برنامه خود اینستال بسازیدو برنامه خود را بصورت نصبی در اوردید 
> 
> که برای این کهر برنامه مختلفی هست 
> 
> من برنامه دارم که تمام این مراحا را انجام مدهد فقط در کمال شرمندگی قیمت که نرم افزار فوق را خریدم گران است ولی حاضرم درصورتی که کسانی که نرم افزار فوق را خواستارهستنی به بشتر از 10 نفر برسد بصورت نصف قیمت بفروشم 
> 
> 
> در اینم تبلقیست که فوشنده اصلی نرم افزار از ان کرده 
> 
> ...


سلام
میشه اسم نرم افزار رو بگین تا منم اونو تهیه کنم؟
ممنون میشم.

----------


## aromega65

> میشه اسم نرم افزار رو بگین تا منم اونو تهیه کنم؟


mdecompiler

----------


## hamid-nice

> کدش رو که نوشتم
> اینم اصلش


با سلام
با تشکر از جناب سنبله کار که فایل ارزنده ای را در پست 28# قرار دادند
یک مساله ای که وجود داره این هست که وقتی فایل پسورد داشته باشه هنگام باز کردن اون، پسورد دوبار پرسیده می شود فایل زیر با پسورد 123 ضمیمه شده است
اگر کسی بتونه این مشکل را رفع کنه ممنون میشیم
با تشکر

----------


## hamid-nice

اساتيد گرامي ، دوستان ،  حرفه اي ها ، لطفا 
راهكاري برای سوال پست قبل وجود دارد؟
در ضمن اينكه دستور Shell نوشته شده در فايل مذكور ، as double مي باشد 
اما بیشتر فکر می کنم به این دلیل است که چک می کند و چون فایل در حالت runtime اجرا نشده آنرا می بندد و دوباره اما در حالت runtime باز می کند و از اینرو دوبار پسورد پرسیده می شود 
بنابراین فکر می کنم برای این هم مثل macro security level باید به دنبال راهکار خارجی باشیم یعنی نه استفاده از کد داخل خود فایل تا قبل از باز کردن فایل و اجرای کد ، آنرا از اول در حالت runtime باز کند

 اگر دستور جايگزيني یا راهکار دیگری هم باشد خيلي خوب است
با تشكر

----------


## hamid-nice

> اساتيد گرامي ، دوستان ،  حرفه اي ها ، لطفا 
> راهكاري برای سوال پست قبل وجود دارد؟
> در ضمن اينكه دستور Shell نوشته شده در فايل مذكور ، as double مي باشد 
> اما بیشتر فکر می کنم به این دلیل است که چک می کند و چون فایل در حالت runtime اجرا نشده آنرا می بندد و دوباره اما در حالت runtime باز می کند و از اینرو دوبار پسورد پرسیده می شود 
> بنابراین فکر می کنم برای این هم مثل macro security level باید به دنبال راهکار خارجی باشیم یعنی نه استفاده از کد داخل خود فایل تا قبل از باز کردن فایل و اجرای کد ، آنرا از اول در حالت runtime باز کند
> 
>  اگر دستور جايگزيني یا راهکار دیگری هم باشد خيلي خوب است
> با تشكر


 همانطور که گفتم راهکار خارجی لازم است که برای این منظور به لینک زیر مراجعه نمایید
https://barnamenevis.org/showthread.p...=1#post1878232
موفق باشید

----------

