PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : پرسش: نقطه ضعف در برنامه LockXLS و راه حلی برای آن ؟



a.dal65
2018/10/14, 11:39
سلام خدومت اساتید

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

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

برای اینکار من اومدم توسط یه Packer مثل enigma
exe رو دوباره pack کردم که 2 بار از فایل اجرا نشه ولی یه مشکل دیگه هست که فایل رو دیگه نمیتونم توسط خود lockxls دیکریپت کنم !
برای همین این راه حل جواب نمیده

دوستانی میشه توسط vba کد نوشت که فایل یکبار اجرا بشه
یا هر راه حلی که کارآمد باشه
من میخوام فایلی که توسطlockxls محافظت میشه فقط یکبار اجرا بشه ازش .

a.dal65
2018/10/14, 12:05
راستی آیا میشه از طریق vba چک کرد که اگه فایلی با نام 1.exe اجرا هست دیگه فایل باز نشه و پیام بده .
؟

a.dal65
2018/10/14, 12:29
پیدا کردم
در work book open


If IsProcessRunning("1.EXE") = True Then
MsgBox "برنامه قبلا باز شده است", vbCritical + vbMsgBoxRight, "خطا"
ActiveWorkbook.Close savechanges:=False
Else
End If

و این مازول هم اضافه بشه به فایل


Public Const SW_RESTORE = 9

Public Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long



Function IsProcessRunning(process As String)
Dim objList As Object

Set objList = GetObject("winmgmts:") _
.ExecQuery("select * from win32_process where name='" & process & "'")

If objList.Count > 0 Then
IsProcessRunning = True
Else
IsProcessRunning = False
End If

End Function

hasa2
2019/05/10, 16:41
ممنون بابت راه کاری که به اشتراک گذاشتید...
حالا که بحث LockXLS شد یه سوال :

جدیدا روی سیستم خودم دیگه فایلهای خروجی exe از این برنامه اجرا نمیشه و خطای زیر رو میده :

---------------------------
File can't be opened. Please make sure that LockXLS Runtime Add-in is not disabled on your PC.
---------------------------
OK
---------------------------


به این مشکل برخورد کردید ؟

a.dal65
2021/02/09, 13:44
کافیه فایل dll یا همون add on رو توی قسمت add on اضافه کنید.
یا یکبار تیکشو بردارید و دوباره بزارید