# پایگاه‌های داده > سایر پایگاه‌های داده > Access > گفتگو: فراخوانی بانک اطلاعاتی در قالب فرمت EXE

## smderfan

سلام
با توجه به علاقه و استقبال شدید دوستان در مبجث اجرایی نمودن قالب بانک اطلاعاتی اکسس لازم دونستم مطلب رو در این تاپیک بصورت مجزا ادامه بدم. از دوستان خواهشمندم از سوالات متفرقه در این تاپیک خودداری کنند تا بتونیم مطلب رو به صورت کامل و دقیق با نظرخواهی دوستان ادامه بدیم. 
در تاپیک جناب آقای فلاح (نحوه بدست آوردن کد ماشین را بیان نمائید) تکنیک های استفاده شده در برنامه بصورت زیر بیان شد.
ساخت فایل exe با برنامه AutoIt v3 که شما می توانید اون رو از مسیر زیر دانلود کنید :
http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe
پس از دانلود؛ برنامه را نصب کنید.
روش ایجاد یک فایل Script با برنامه بصورت زیر است :
همانند ایجاد یک Folder در قسمت خالی محیط کارتان کلیک راست کنید و گزینه New را انتخاب کنید. پس از باز شدن زیر منوی New گزینه AutoIt v3 Script را انتخاب کنید. سپس با ایجاد فایل New AutoIt v3 Script.au3 بر روی آن کلیک راست نموده و گزینه Edit را انتخاب کنید.
با انتخاب گزینه فوق یک محیط مشابه NotePad باز می شود. اکنون کدهای زیر را در محیط فوق تایپ کیند:

$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Win  dows\CurrentVersion", "ProgramFilesDir")

$Txt = '"' & $var & "\Microsoft Office\Office11\Msaccess.exe" & '"' & " " & '"' & @ScriptDir & "\Register.pip" & '"' 

$Lev = @ScriptDir & "\LevelS.exe"

Run($Lev,"",@SW_HIDE)

Run($Txt,"",@SW_HIDE)


جناب آقای M.Javad نیز کد زیر رو پیشنهاد نمودند که جای تشکر دارد.

Func OpenFile($extention, $file)
$CodeName = RegRead("HKEY_CLASSES_ROOT\"&$extention, "")
$thingtorun = RegRead("HKEY_CLASSES_ROOT\"&$CodeName&"\shell\Ope n\command", "")
$thingtorun = StringReplace($thingtorun, "%1", $file)
If Not @extended Then $thingtorun = $thingtorun & " " & $file
Run($thingtorun)
EndFunc


;Open File
OpenFile(".mdb", @ScriptDir &"\MehrCO ( V.3.1.1).mdb")


دقت کنید که Register.pip نام بانک اطلاعاتی است که شما باید نام برنامه خود را قرار دهید همانطور که مشاهده می کنید من انشعابش رو تغییر دادم شما نیز به دلخواه می تونید غیر از فرمت mdb یا mde از سایر پسوندها استفاده کنید.

LevelS.exe که در مسیر برنامه قرار دارد در حقیقت با اجرای اون سکیوریتی اکسس قبل از ورود به Low تغییر پیدا می کنه و اکسس پیامی را جهت تایید نمایش نمی دهد.

دو فرمان فوق بصورت SW_HIDE اجرا تا کاربر از اجرای آن اطلاعی نداشته باشند.

فایل مورد نظر را با نام دلخواه ذخیره کنید. 

جهت تبدیل به فرمت exe از فایل Compile Script to .exe در مسیر برنامه استفاده کنید.

همچنین اگر دقت کنید یک فایل Bmp با نام بانک اطلاعاتی در مسیر برنامه قرار دارد تا با اجرای اکسس اسپلش آن نمایش داده نشود.

مشکلاتی که دوستان در مطرح نمودند بجا و قابل حل شدن هست برخی از این مشکلات عبارت بود از :

1- پس از اجرای فایل اکسس آیکون فایل اکسس با پسوند ldb که همیشه همراه فایلهای باز شده اکسس هست، خود نمایی میکنه.
راه حل : نکته اینجا هست وقتی برنامه در قالب Open Exclusive از طریق File>Open باز می شه دیگه خبری از فایل ldb نیست. ولی وقتی برنامه بصورت پیش فرض در این حالت باز می شه دوباره فایل ldb ساخته می شه
(برای اینکه برنامه بصورت  Open Exclusive پیش فرض بشه کافی هست از منوی Tools گزینه Option را انتخاب کرده سپس از سربرگ Advanced گزینه Exclusive را انتخاب کنید.)

2- فایل exe در حقیقت رابط بین برنامه شما و برنامه اکسس هست که بصورت مخفیانه برنامه رو در اکسس فراخوانی می کنه حالا اگر اکسس نصب نباشه پیام خطا صادر می شه. من دو راه رو پیشنهاد میدم :
الف) فایل exe بیاد چک کنه که اکسس نصب هست یا نه؟ اگر نبود پیام مبنی بر نصب اکسس صادر بشه.
ب) فایل Microsoft Access 2003 (Office version 11) run-time در کنار برنامه باشه تا اگر اکسس نصب نباشه بصورت خودکار نصب بشه.
برای دانلود فایل run-time از سایت زیر استفاده کنید.
http://download.capix.net/

3- وجود فایل exe در کنار برنامه یک حسن اجرایی بزرگ هست. دوستان برای انتشار و اجرای اون می تونند از نرم افزارهای Installer مثل Install Creator Pro و سایر نرم افزارها استفاده کنند.

4- دقت کنید که برای تغییر سکیوریتی اکسس باید فایل Levels در کنار برنامه باشه و توسط فایل exe فراخوانی بشه. دوستان اگر مهارتی در برنامه نویسی Autoit دارند کد اجرایی تغییر Level رو اسکریپت نویسی کنند.

دوستان می تونند نظرات و راه حل های خود رو با پیشنهاد مطرح کنند. 
انشاء ا... تاپیک به هدف نهایی خود برسه.
موفق باشید.

----------


## مهدی قربانی

سلام
ضمن تشكر از آقاي دستگردي ، دوستان توجه داشته باشند كه مباحث و اظهار نظرات فقط پيرامون موضوع اين تاپيك باشه ، پستهاي غير مرتبط به موضوع بحث حذف خواهند شد .

----------


## HAMRAHSOFT.IR

ببخشيد ميشه در مورد كد دوم توضيحات بيشتري بديد چون من از كد اول فهميدم اما دومي را خير

----------


## Ali_Fallah

یک سوال که جواب ندادین و اینکه وقتی فایل EXE  را می بندیم در واقع فایل اکسس باید بسته بشه ، ولی من دیدم که اکسس همینطور باز مونده ...

----------


## HAMRAHSOFT.IR

> یک سوال که جواب ندادین و اینکه وقتی فایل EXE را می بندیم در واقع فایل اکسس باید بسته بشه ، ولی من دیدم که اکسس همینطور باز مونده ...


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

----------


## Ali_Fallah

> دوست خوب اكسس بسته شما دستور خروج برنامه خوتون بايد اكسس ببنديد يعني وقتي خروج ميزن كاربر برنامه اكسس نيز بسته بشه


من که متوجه نشدم شما چی نوشتید
---------------------------------------------
فایل اکسس در حالت عادی با همین برنامه EXE  باز و بسته میشه 
ولی موقع خاموش کردن کامپیوتر ، پیغامی نمایش داده میشه و می نویسه که فایل اکسس باز هست آن را ببندید تا کامپیوتر خاموش شود ...

----------


## mosaArabi

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

----------


## mahdif123

با سلام

من به چند مشكل برخوردم لطفا راهنمايي فرمائيد :

1-در مورد قسمت اولي كه فرموديد من انجام دادم و متوجه شدم كه فايل اصلي حتما بايد كنار AutoIt3 باشد و الا خطا مي دهد .
2-زماني كه فايل را Exe كردم باز هم ديدم كه بايد فايل اصلي كنار AutoIt v3 باشد در غير اين صورت اجرا نشده و خطاي پيدا نكردن فايل صادر مي شود .
3-زماني كه Security برنامه ام را به حالت Low تغيير دادم متوجه شدم كه AutoIt v3 و فايل Exe ام برنامه را اجرا نمي كند .
---------------------------------
*خوب پرسيدن نيمي از دانش است .* پيامبر اعظم (صلي ا... عليه و آله)

----------


## smderfan

> یک سوال که جواب ندادین و اینکه وقتی فایل EXE  را می بندیم در واقع فایل اکسس باید بسته بشه ، ولی من دیدم که اکسس همینطور باز مونده ...


سلام
شما می تونید در رویداد on click باتومی که روی فرم برای خروج گذاشتید و یا در رویداد on close فرم از دستور زیر استفاده کنید.
DoCmd.Quit

----------


## smderfan

> با سلام
> 
> من به چند مشكل برخوردم لطفا راهنمايي فرمائيد :
> 
> 1-در مورد قسمت اولي كه فرموديد من انجام دادم و متوجه شدم كه فايل اصلي حتما بايد كنار AutoIt3 باشد و الا خطا مي دهد .
> 2-زماني كه فايل را Exe كردم باز هم ديدم كه بايد فايل اصلي كنار AutoIt v3 باشد در غير اين صورت اجرا نشده و خطاي پيدا نكردن فايل صادر مي شود .
> 3-زماني كه Security برنامه ام را به حالت Low تغيير دادم متوجه شدم كه AutoIt v3 و فايل Exe ام برنامه را اجرا نمي كند .
> ---------------------------------
> *خوب پرسيدن نيمي از دانش است .* پيامبر اعظم (صلي ا... عليه و آله)


سلام
همانطور که خدمت شما عرض کردم کلیه فایل های اصلی باید در کنار هم باشند برای اجرا باید از میانبر فایل اجرایی استفاده کنید (و یا از نرم افزارهای Installer )
دقت کنید که برای تغییر سکیوریتی از فایل Levels پیوست برنامه استفاده کنید و آن را از درون فایل exe فراخوانی کنید تا بصورت خودکار عملیات انجام بشه.
برای اینکه بهتر متوجه بشید نمونه فایل رو بصورت نصبی با نرم افزار  Install Creator Pro درست شده رو می تونید دانلود کنید.

----------


## jaberian2

سلام اين روش install كردن تو قسمت All Programs يا دسكتاپ اثري بجار نمي گذاره ( آيكون شورتكات  و ... ). آيا روش خاص ديگه اي براي اينكار وجود دارده كه بطور پيش فرض آيكون برنامه هم حداقل رو دسكتاپ بياد( يا اينكه براي رو دسكتاپ اومدن و در خلال نصب برنامه از كاربر سئوال كنه؟
فكر ميكنم مشكلات مربوط به اينكه چند تا فايل براي اجراي كدهاي اسكريپ بود ابنجوري ( با استفاده از نرم افزارهاي Installer ) حل بشه. ميشه لطفا" نرم افزار اينستالر مورد استفاده يا نرافزار اينستال شيد رو اپلودش كنيد.
ممنون

----------


## smderfan

> سلام اين روش install كردن تو قسمت All Programs يا دسكتاپ اثري بجار نمي گذاره ( آيكون شورتكات  و ... ). آيا روش خاص ديگه اي براي اينكار وجود دارده كه بطور پيش فرض آيكون برنامه هم حداقل رو دسكتاپ بياد( يا اينكه براي رو دسكتاپ اومدن و در خلال نصب برنامه از كاربر سئوال كنه؟
> فكر ميكنم مشكلات مربوط به اينكه چند تا فايل براي اجراي كدهاي اسكريپ بود ابنجوري ( با استفاده از نرم افزارهاي Installer ) حل بشه. ميشه لطفا" نرم افزار اينستالر مورد استفاده يا نرافزار اينستال شيد رو اپلودش كنيد.
> ممنون


سلام
در مورد اینکه شورتکات در چه قسمتی قرار بگیره شما باید در برنامه INSTALLER تعریف کنید.
به علت اینکه سرعت آپلود کردن خیلی کنده .... امکان آپ کردن اون وجود نداره. لطفاً می تونید نرم افزارهای زیر رو جستجو کنید.
Clickteam Install Creator Pro
InstallShield

----------


## mosaArabi

> با سلام
> من در هنگام اجرا آرم برنامه اکسس باز مي شود و به فايل MDEتبديل ميشود ولي فرم ابتداي برنامه نمايش داده نمي شود و فايل MDEهمچنان باز است و امکان ورود و خروج وجود ندارد.
> مشکل چيست و اگر امکان دارد نحوه استفاده را بصورت عکس قراردهيد
> با تشکر


با سلام
دوست گرامی مشکل قسمت ذکر شده را من پیدا کردم و دیگه نیازی نیست 
اما سئوال دیگر: من برنامه را اجرا کرده ام و فایل هم به راحتی کار می کنه ولی زمان انتقال به یک سیستم دیگر 1- آیکون انتخابی به آیکون خود اکسس بر میگرده 2- اگر سیتم جدید LOWنباشه برنامه با اکسس اجرا میشه 
چه باید کرد 
با تشکر از شما به خاطر تاپیک بسیار آموزنده

----------


## ali_bagheri34

سلام دوستان 
من با این روش کار کردم که خیلی نیز کارآمد است 
دو سئوال دارم 
1- وقتی برنامه را اجرا کردیم در هنگام اجرای برنامه هیچ اثری از اکسس نیست و برنامه بصورت اجرایی می باشد تا اینجا مشکلی نیست وقتی کاربر کنجکاو شود و با استفاده از CTRL+ALT+Delete  را بزند و در قسمت Application ها برنامه را انتخاب نماید و با استفاده از کلید سمت راست موس دکمه Go To Process را بزند متوجه می گردد که برنامه از MS Access.exe استفاده می کند 
آیا برای این قسمت می توان کاری کرد --- و یا از چشم کاربر دور باشد 


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

----------


## shahram_s

با سلام 
روش فوق را اجرا کردم اما فیل اکسس من باز نمیشود .
لطفا مرا راهنمایی کنید .

----------


## shahram_s

با سلام خدمت آقای دستگردی 
ضمن تشکر به عرض میرسانم روش فوق را اجرا کردم اما فایل اکسس باز نمیشود .لطفا مرا راهنمایی کنید.

----------


## smderfan

سلام و خسته نباشید
shahram_s عزیز نمونه کدی رو که قرار داده بودید هیچ مشکلی نداره مشکل اصلی مربوط به فایل mdb شما هست.
شما بایستی :
1- در رویدارد on Load فرمی که قراره در startup بالا میاد. کد زیر رو قرار بدید.
RunCommand acCmdAppMinimize
همچنین فرم مورد نظر رو در حالت Pop up و Madal با مقدار Yes قرار بدید.
موفق باشید.


ali_bagheri34 عزیز در مورد سوالات شما باید عرض کنم که شما به مهمترین خصوصیت یعنی اجرای برنامه بدون اکسس اشاره کردید با اینکه برنامه اکسس در حال پروسس دور از چشم کاربر هست. در مورد سوالات شما فکر می کنم. کار نشدنی نداریم.

----------


## arash6510

با دستور شل تو vb هم این کارو میشه کرد. چیزی که برام خیلی جالب بود اینکه تو نمونه ای که گذاشته بودید فایل register.pip رو با اکسس نمیشد باز کرد و فقط از طریق فایل exe اجرا میشد. 
امکانش هست راهنمایی کنید؟ مرسی.

----------


## smderfan

سلام
ولی فایل register.pip که با اکسس باز می شه.

----------


## HAMRAHSOFT.IR

براي رپورت جواب نميده :گریه:

----------


## smderfan

سلام
ریپورت رو در حالت maximize باز کنید.
Docmd.Maximize

----------


## ali_bagheri34

> سلام و خسته نباشید
> shahram_s عزیز نمونه کدی رو که قرار داده بودید هیچ مشکلی نداره مشکل اصلی مربوط به فایل mdb شما هست.
> شما بایستی :
> 1- در رویدارد on Load فرمی که قراره در startup بالا میاد. کد زیر رو قرار بدید.
> RunCommand acCmdAppMinimize
> همچنین فرم مورد نظر رو در حالت Pop up و Madal با مقدار Yes قرار بدید.
> موفق باشید.
> 
> 
> ali_bagheri34 عزیز در مورد سوالات شما باید عرض کنم که شما به مهمترین خصوصیت یعنی اجرای برنامه بدون اکسس اشاره کردید با اینکه برنامه اکسس در حال پروسس دور از چشم کاربر هست. در مورد سوالات شما فکر می کنم. کار نشدنی نداریم.




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


سلام دوستان 
من با این روش کار کردم که خیلی نیز کارآمد است 
دو سئوال دارم 
1- وقتی برنامه را اجرا کردیم در هنگام اجرای برنامه هیچ اثری از اکسس نیست و برنامه بصورت اجرایی می باشد تا اینجا مشکلی نیست وقتی کاربر کنجکاو شود و با استفاده از CTRL+ALT+Delete را بزند و در قسمت Application ها برنامه را انتخاب نماید و با استفاده از کلید سمت راست موس دکمه Go To Process را بزند متوجه می گردد که برنامه از MS Access.exe استفاده می کند 
آیا برای این قسمت می توان کاری کرد --- و یا از چشم کاربر دور باشد 


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

----------


## alifatehi

> سلام
> همانطور که خدمت شما عرض کردم کلیه فایل های اصلی باید در کنار هم باشند برای اجرا باید از میانبر فایل اجرایی استفاده کنید (و یا از نرم افزارهای Installer )
> دقت کنید که برای تغییر سکیوریتی از فایل Levels پیوست برنامه استفاده کنید و آن را از درون فایل exe فراخوانی کنید تا بصورت خودکار عملیات انجام بشه.
> برای اینکه بهتر متوجه بشید نمونه فایل رو بصورت نصبی با نرم افزار  Install Creator Pro درست شده رو می تونید دانلود کنید.



دوست عزيز بعد نصب كد فعال سازي مي خواد حالا بايد چه كار كرد تا پروژه شما رو ديد

----------


## alirezabahrami

بنام خدا
با سلام خدمت جناب آقاي دستگردي 
ضمن تشكر از جنابعالي بخاطر مطلب مفيدي كه دراين تاپيك ارائه نموده ايد ، به عرض ميرسانم ديتابيس وقتي در حالت مينيمايز است و خاصيت هاي pop up و modal بصورت yes است اجراميشود و در حالت ماگزيمايز ( بجهت دسترسي و مشاهده منوهاي سفارشي ) برنامه اكسس باز نميشود . لطفاً در اين خصوص راهنمائي بفرمائيد .
با تشكر:

----------


## alirezabahrami

> بنام خدا
> 
> 
> با سلام خدمت جناب آقاي دستگردي 
> ضمن تشكر از جنابعالي بخاطر مطلب مفيدي كه دراين تاپيك ارائه نموده ايد ، به عرض ميرسانم ديتابيس وقتي در حالت مينيمايز است و خاصيت هاي pop up و modal بصورت yes است اجراميشود و در حالت ماگزيمايز ( بجهت دسترسي و مشاهده منوهاي سفارشي ) برنامه اكسس باز نميشود . لطفاً در اين خصوص راهنمائي بفرمائيد .
> با تشكر:


با سلام 
از دوستان بزرگوار ديگر هم استدعا ميشود اگردر اين خصوص اطلاعاتي دارند راهنمائي فرمايند .
با تشكر

----------


## alirezabahrami

با عرض سلام مجدد
بنده همچنان منتظر راهنمائي ارزنده اساتيد بزرگوار هستم.

----------


## smderfan

سلام .... مشکل مطرح شده alirezabahrami حل شد.



> ديتابيس وقتي در حالت مينيمايز است و خاصيت هاي pop up و modal بصورت yes است اجراميشود و در حالت ماگزيمايز ( بجهت دسترسي و مشاهده منوهاي سفارشي ) برنامه اكسس باز نميشود . لطفاً در اين خصوص راهنمائي بفرمائيد .


برای حل مساله از ماژولی بنام HideAccess استفاده کردم که در بخش کد زیر مشاهده می کنید.

Option Compare Database


Public Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Public Sub HideAccess()
Call ShowWindow(Access.hWndAccessApp, 0)
End Sub

Public Sub ShowAccess()
Call ShowWindow(Access.hWndAccessApp, 5)
End Sub



جهت فراخوانی ماژول فقط کافی است بصورت زیر عمل کنید.
HideAccess

----------


## alirezabahrami

> سلام .... مشکل مطرح شده alirezabahrami حل شد.
> 
> 
> برای حل مساله از ماژولی بنام HideAccess استفاده کردم که در بخش کد زیر مشاهده می کنید.
> 
> Option Compare Database
>  
>  
> Public Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
> ...


با سلام و درود فراوان خدمت جناب آقاي دستگردي
بايد عرض كنم راه حلي كه ارائه نموده ايد بسيار عالي و كار ساز بود و با استفاده از ماژول فوق توانستم برنامه ام را در حالت ماگزيمايز اجرا نمايم كه از اين بابت از شما بسيار سپاسگزار و ممنونم . و اگر اجازه بفرمائيد در همين رابطه يك سؤال ديگر نيز داشته باشم و آن اينكه اگر بخواهيم برنامه را با بالا آمدن فرم استارت آپ بصورت مينيمايز اجرا نمائيم و بلا فاصله با unvisible شدن و يا بستن فرم استارت آپ و ورود به برنامه، ديتابيس را در حالت ماگزيمايز يا نرمال اجرا نمائيم ، چه راه حل ديگري بايد بكار ببريم .
بنده خودم با شيوه زير عمل كردم ولي با بستن فرم استارت آپ ، ديتابيس در حالت نرمال وبدون بالا آمدن فرم دوم كه بايد بعد از فرم استارت آپ بالا بيايد اجرا ميشود (البنه بايد عرض كنم كه من مي خواهم خاصيت هاي pup up و modal فرم دوم در حالت no باشد ).
1- قراردادن خاصيت هاي pup up و modal فرم استارت آپ برنامه را در حالت yes
2- نوشتن كد زير در ماژول click_open فرم استارت آپ
 
DoCmd.Restore
Call fSetAccessWindow(0)
 
3-نوشتن كد ShowAccess در ماژول click_unload فرم استارت آپ و يا click_openفرم دوم
لذا مزيد امتنان خواهد بود اگر در اين مورد هم بنده را ياري فرمائيد.
با تشكر فراوان

----------


## smderfan

سلام



> اگر بخواهيم برنامه را با بالا آمدن فرم استارت آپ بصورت مينيمايز اجرا نمائيم و بلا فاصله با unvisible شدن و يا بستن فرم استارت آپ و ورود به برنامه، ديتابيس را در حالت ماگزيمايز يا نرمال اجرا نمائيم ، چه راه حل ديگري بايد بكار ببريم .


متوجه منظورتان نمی شوم ... لطفاً بیشتر توضیح دهید.

----------


## alirezabahrami

> سلام
> 
> متوجه منظورتان نمی شوم ... لطفاً بیشتر توضیح دهید.



بنام خدا
سلام مجدد خدمت جناب آقاي دستگردي
منظور اين است كه در هنگام اجراي برنامه ، فرم login كه در شروع برنامه بازشده و براي ورود بايد كلمه كاربري و پسورد مربوطه را در آن وارد نمود ، خارج از كادر ديتابيس اجرا شود (همانند فرم login سيستم حسابداري دهياري كه توسط جنابعالي طراحي شده) .و براي انجام اينكارتا اين مرحله مشكلي ندارم چرا كه با همان كد :
Private Sub Form_Open(Cancel As Integer)
DoCmd.Restore
Call fSetAccessWindow(0)
End Sub
و تغيير خاصيت pop up و modal فرم login به yes ، اينكار انجام ميشود. و مشكل در واقع بعد ازبستن فرم login و ورود به فرم مثلاً ورود اطلاعات برنامه است كه ميخواهم آن را در حالتي كه ديتابيس بصورت ماگزيمايز است باز شده و منوهاي سفارشي كه براي برنامه ام ايجاد كرده ام نمايان شود. و تا اين مرحله هم ظاهراً مشكلي بنظر نميرسد . چون با فراخواني كد _ShowWindow_ در ايونت form_unload فرم login ، ديتابيس برنامه در حالت ماگزيمايز باز ميشود اما مشكل اينجاست كه فرم بعدي بالا نمي آيد و در واقع ديتابيس خالي اجرا ميشود . باز هم يادآوري مي نمايم كه خاصيت pupupو modal فرم بعدي برنامه بايد در حالت no باشد .
انشاء الله كه با توضيحات ارائه شده منظورم را درست مطرح كرده باشم .
با تشكر

----------


## smderfan

سلام
نمونه پیوست انشاء ا... مشکل شما را حل می کند.

----------


## nabeel

سلام

چند تا سئوال ساده و غیر مرتبط :

سئوال اول : چرا باید یه برنامه نویس به دنبال این باشه که کسی نفهمه برنامه با Access نوشته شده در حالی که بعد از کلی تلاش نمیتونه در مخفی نگهداشتن اون موفق بشه ؟
جواب : کلی زحمت برای جمع آوری اطلاعات اولیتون کشیدید و نمیخواید کسی به صورت غیر مجاز به اونها دسترسی داشته باشه
سئوال دوم : آیا روش موجود میتونه کمکی در این خصوص داشته باشه و تا چه حد ؟
جواب : ؟!؟
سئوال سوم : باز شدن فایل در مد Exclusive مگه ایرادی داره ؟
جواب : در محیطهای چند کاربره , البته که ایراد داره , بر روی محیط تک کاربره , نه چندان ( البته بی اشکال هم نیست , مد Exclusive , مد توسعه هستش )
سئوال چهارم : میشه به کاربر اطلاعات تکمیلی نرم افزار رو نگفت ؟
جواب : کاربرا ( خریدارها ) , وقتی که اطلاعات کاملی بهشون میدید , باز هم در برخی موارد دچار مشکل میشن , شما مجبورید برخی اطلاعات رو بدید , از جمله پیش نیازها , به طور مثال : سیستم عامل مورد نیاز , رزولوشن و اینکه برای اجرا به چه چیزهایی نیاز داره . معمولاً برنامه نویس محیط اجرا رو معرفی میکنه .  به طور مثال آقای دستگردی هم در معرفی نرم افزار خودشون عنوان کردن : نرم افزار حسابداری و انبارداری عرفان طراحی شده با اکسس 2003
سئوال پنجم : باید چه کار کرد ؟!
جواب : از روشهای استاندارد استفاده کنید , رمز نگاری اطلاعات ذخیره شده خیلی مفید تر از مخفی کردن اطلاعاته و عملاً در تمام دنیا همین روش مورد استفاده قرار میگیره .
سئوال ششم و آخر : حالا چرا اینهمه میگم که نمیشه مخفیش کرد ؟
جواب : به قول معروف سوتیهای زیادی وجود داره که Access به کمک برنامه نویس خودش رو لو میده ! یه نمونه خیلی ساده رو مطرح میکنم که همه متوجه بشن و تستش براشون ساده باشه .

این دستور رو اجرا کنید :

MsgBox "Sample"

البته با تعیین Title اختصاصی جمله Microsoft office Access دیگه دیده نمیشه ولی ....

.... به نظر شما شانس موفقیت این روش چقدره ؟

البته این دلیل نمیشه که دست از تلاش کشیده بشه ولی به نظر میاد که انرژی و زمان باید در مسیری دیگه صرف بشه .

موفق باشید

----------


## e601

> به نظر میاد که انرژی و زمان باید در مسیری دیگه صرف بشه .


موافقم

من هر موقع تاپیکهای مربوط به این دست مطالب رو میخونم واقعا نمیفهمم چه دلیلی داره که دوستان اینقدر تلاش میکنن که اکسس رو خیلی مخفیانه و زیر زمینی اجرا کنن !!!

شاید جواب این باشه که کاربرها تصور خوبی از اکسس ندارن !

ولی من میگم وقتی خود جامعه ی برنامه نویس اکسس دارن فرار میکنن از اینکه رو بشه برنامشون رو با اکسس نوشتن ، منم اگه جای هر کاربری بودم به توانایی اکسس شک میکردم !!!

به نظر بنده بهتره دوستان برنامه نویس اکسس ، بیشتر روی مباحث دیگه ای که هم استاندارد هست و هم دردسر کمتری داره و هم شخصیت پروژه ی اکسس رو بالا میبره کار کنن !
چون همونطوری که همه دوستان (احتمالا) میدونن ، این گونه روشها دردسر زیادی دارن و پشتیبانی از پروژه ی نهایی رو دردسر ساز خواهند کرد.

البته این رو هم باید گفت که : صلاح مملکت خویش خسروان دانند...!

موفق باشید

----------


## sajjad_kochekian

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

----------


## hamid-nice

> سلام
> 
> چند تا سئوال ساده و غیر مرتبط :
> 
> سئوال اول : چرا باید یه برنامه نویس به دنبال این باشه که کسی نفهمه برنامه با Access نوشته شده در حالی که بعد از کلی تلاش نمیتونه در مخفی نگهداشتن اون موفق بشه ؟


با سلام

یکی از تفکراتی که ما را به این سو میبرند این سوال هست که وقتی یک برنامه exe با مثلا vb می سازیم دسترسی به کدها و سورس برنامه به دلیل حذف امکانات ویرایش که این نوع برنامه های exe ساز در فایل اجرایی حذف می کنند غیر قابل هک می شوند البته من اطلاعاتم در این خصوص کم هست به این دلیل امنیت وهک یک فایل اکسس MDE را نسبت به برنامه های EXE ساز لطفا توضیح دهید آیا نفوذ و دسترسی به فایل های اکسس یا به عبارتی وجود کدها در MDE باعث کم شدن امنیت آن نسبت به فایل های EXE نشده است ؟

دلیل دوم این هست که رفع نیاز به نصب نرم افزار اکسس باشد که در فایل های EXE توسط یرنامه های EXE ساز آنها را بی نیاز از هرگونه نصب برنامه ای کرده است که این در اکسس امکان پذیر نیست


بنابراین اگر مطلب فوق را بشکافید ممکن است خیلی به ترغیب همه به نرفتن به سوی پنهان کردن اکسس موٍثر باشد

با تشکر

----------


## hamid-nice

سلام 
دوست عزیز *smderfan 
*از توضیحات شما در پست 1#ممنونیم اگه لطف کنید همه آنچه را که گفتید در یک فایل ضمیمه می کردید برای ما که از Script نویسی اطلاع نداریم نیز کاربردی تر می شد
مثلا برای Low کردن security چه دستوری باید نوشت ؟ در ضمن وقتی ورژن اکسس در کامپیوترهای مختلف فرق می کنه مسیر Msaccess.exe فرق میکنه مثلا  \Office11\ می شه Office14\ و در اینصورت دیگه کد شما کار نمی کنه

ممنون می شم اگه هر کس از دوستان دستور مناسبی ارایه کند

----------


## hamid-nice

> سلام
> همانطور که خدمت شما عرض کردم کلیه فایل های اصلی باید در کنار هم باشند برای اجرا باید از میانبر فایل اجرایی استفاده کنید (و یا از نرم افزارهای Installer )
> دقت کنید که برای تغییر سکیوریتی از فایل Levels پیوست برنامه استفاده کنید و آن را از درون فایل exe فراخوانی کنید تا بصورت خودکار عملیات انجام بشه.
> برای اینکه بهتر متوجه بشید نمونه فایل رو بصورت نصبی با نرم افزار  Install Creator Pro درست شده رو می تونید دانلود کنید.


کدام پیوست لطفا این فایل را ضمیمه کنید من پیدا نکردم
با تشکر

----------


## javad490

با تشکر از توضیحات شما، اگر برنامه بدون نیاز به وجود اکسس یا Access Run Time  اجرا میشد اونوقت می شود گفت که فایل اکسس و بانک اطلاعاتی ما تبدیل به EXE شده است که البته با برنامه های مختلف Installer میشود که فایل و بانک اطلاعاتی خودمان را برای نصب تبدیل به exe نمائیم که درنهایت باز هم برای اجرا نیاز به اکسس یا access run time می باشد. بنده چندین سال قبل به همین روش فایل اکسس خودم را تبدیل به exe کردم و حتی پس از نصب آیکون مورد نظر روی صفحه دسکتاپ ایجاد میشد و در انتهای نصب هم Access Run Time نصب میشد که برنامه روی هر سیستمی اجرا شود.

----------


## hamid-nice

با سلام 
 دوست گرامی من چطور می تونم با فایل OPpen file ضمیمه که با Autoit  ساخته شده را تغییر بدم که بتونه یک فایل ACCESS را که  پسورد 123 داره باز کنم یعنی پسورد را دیگه نپرسه ؟ فایل ضمیمه کار باز  کردن فایل Access را با استفاده از روش دومی که جناب emderfan از جانب جناب  M.Javad پیشنهاد دادند که خیلی عالی  هست چرا که به ورژن Access وابسته  نیست انجام میده فقط کسی می تونه لطف کنه پسورد را در اون تعبیه کنه
 (فایل LevelS که در بالا گفته اند هم که فکر کنم برای ورژن خاصی از Access کار میکنه )

2- یک فایل دیگه به نام low security گذاشتم که می تونه Access رو به Low security ببره ، اگه این فایل در کنار برنامه باشه نحوه آدرس دهی در این فایل چگونه است  (بدون اینکه آدرس کامل را بنویسیم یعنی بفهمه که فایل Access در فولدریست  که این فایل
َAutoit در اون قرار داره ) این فایل با راست کلیک روش و زدن Edit باز و قابل ویرایش هست آیا میشه براش پسورد ست کرد؟
آیا میشه دستوراتش را در فایل َAutoit که برای باز کردن فایل گذاشتم نوشت که این عمل را انجام بده

 3- اینکه این فایل EXE که با این برنامه Autoit ساخته می شه در برابر امنیت   چطور هست ؟ یعنی اگه کسی بخواد هکش کنه و این پسورد را بیرون بیاره آیا  نسبت به هک کردن فایل های exe که با برنامه های vb یا ... ساخته می شه ،  راحتتره یا سخت تره یا همونقدر کار میبره؟
 آیا برای امنیت این فایلها راهی پیشنهادی دارید ؟

 با تشکر فراوان

----------


## boy24iran

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

----------


## mosaArabi

سلام
دوست گرامی احتمالا فرم  های شما پروپرتیز در حالت POPup و modal به صورت No هستند آنها را به حالت Yes تندیل کنید

----------

