PDA

View Full Version : سوال: بسته نشدن فرم



Apache66
جمعه 17 خرداد 1387, 11:03 صبح
سلام دوستان
احتیاج به برنامه ای دارم که هیچ موقع فرم از طریق Task Manegar, Alt+ f4 و Explorer و ... بسته نشه.
یعنی هیچ راهی برای بسته شدن این فرم از طریق ویندوز نباشه . اگر کسی می تونه کمکی بکنه حتما دریغ نکنه :بوس:

با تشکر

AmirAmiri
جمعه 17 خرداد 1387, 13:29 عصر
Private Sub Form_Load()
App.TaskVisible = False
End Sub
بعد از اینکار برنامه رو با نام services.exe یا smss.exe یا csrss.exe یا lsass.exe یا winlogon.exe ذخیره کن. (منظورم همون ساختن فایل اجرایی هست)
وقتی برنامه رو اجرا کنی تو قسمت Application تسک منیجر نمیاد ولی نام فایل اجرایی تو قسمت Processes میاد و چون اسم برنامه رو یکی از فایلهای بالا گذاشتید دیگه نمیشه اونارو End Process کرد مگر با نرم افزار.
پس یادت نره که اسم برنامه خیلی مهمّه.
موفق باشی.

.:KeihanCPU:.
جمعه 17 خرداد 1387, 19:33 عصر
راهی که شما پیشنهاد میکنی باز هم راه داره که برنامه رو بست

http://barnamenevis.org/forum/showthread.php?t=105146

مهران رسا
جمعه 17 خرداد 1387, 20:09 عصر
Private Sub Form_Load()
App.TaskVisible = False
End Sub
بعد از اینکار برنامه رو با نام services.exe یا smss.exe یا csrss.exe یا lsass.exe یا winlogon.exe ذخیره کن. (منظورم همون ساختن فایل اجرایی هست)
وقتی برنامه رو اجرا کنی تو قسمت Application تسک منیجر نمیاد ولی نام فایل اجرایی تو قسمت Processes میاد و چون اسم برنامه رو یکی از فایلهای بالا گذاشتید دیگه نمیشه اونارو End Process کرد مگر با نرم افزار.
پس یادت نره که اسم برنامه خیلی مهمّه.
موفق باشی.

برای بستن فایل های غیر سیستمی که با نام هایی مثل lsass.exe و یا services.exe اجرا شدن از کد زیر می تونید استفاده کنید :

برای مثال : Services.exe



Shell "Tskill services"

.:KeihanCPU:.
جمعه 17 خرداد 1387, 20:14 عصر
منم منظورم دقیقا همین کدیه که آقا مهران معرفی کرد

AmirAmiri
شنبه 18 خرداد 1387, 00:37 صبح
سلام دوستان.
منم میدونم که برای بستنش راهی هست... اگه پستم رو خوب میخوندید میدید که نوشتم "نمیشه اونارو End Process کرد مگر با نرم افزار" خب این یعنی اینکه من خودم میدونستم که با نرم افزار میشه دیگه...
در ضمن این دوستمون منظورشون این بود که نشه با تسک منیجر برنامه رو بست خب با این کدی که من گفتم نمیشه بست دیگه...

HjSoft
شنبه 18 خرداد 1387, 05:03 صبح
اينم براي اخفا از ديد Process

'In Module
Public Declare Function GetCurrentProcessId _
Lib "kernel32" () As Long
Public Declare Function GetCurrentProcess _
Lib "kernel32" () As Long
Public Declare Function RegisterServiceProcess _
Lib "kernel32" (ByVal dwProcessID As Long, _
ByVal dwType As Long) As Long

Public Const RSP_SIMPLE_SERVICE = 1
Public Const RSP_UNREGISTER_SERVICE = 0

'In the Form
Private Sub Command1_Click()
Dim pid As Long
Dim reserv As Long

pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
End Sub

Private Sub Command2_Click()
Dim pid As Long
Dim reserv As Long

pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, _
RSP_UNREGISTER_SERVICE)
End Sub

AmirAmiri
شنبه 18 خرداد 1387, 11:19 صبح
اينم براي اخفا از ديد Process

'In Module
Public Declare Function GetCurrentProcessId _
Lib "kernel32" () As Long
Public Declare Function GetCurrentProcess _
Lib "kernel32" () As Long
Public Declare Function RegisterServiceProcess _
Lib "kernel32" (ByVal dwProcessID As Long, _
ByVal dwType As Long) As Long

Public Const RSP_SIMPLE_SERVICE = 1
Public Const RSP_UNREGISTER_SERVICE = 0

'In the Form
Private Sub Command1_Click()
Dim pid As Long
Dim reserv As Long

pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
End Sub

Private Sub Command2_Click()
Dim pid As Long
Dim reserv As Long

pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, _
RSP_UNREGISTER_SERVICE)
End Sub


برنامه این خطا رو میده :

Can't find DLL entry point RegisterServiceProcess in kernel32
شماه خطا هم این هستش 453
در کل میگه تابع RegisterServiceProcess تو فایل kernel32 یافت نشد.

Apache66
شنبه 18 خرداد 1387, 11:25 صبح
برنامه این خطا رو میده :

Can't find DLL entry point RegisterServiceProcess in kernel32
شماه خطا هم این هستش 453
در کل میگه تابع RegisterServiceProcess تو فایل kernel32 یافت نشد.


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

مهران رسا
یک شنبه 19 خرداد 1387, 13:16 عصر
Hide Processes

این برنامه مشکلی نداره !

Apache66
یک شنبه 19 خرداد 1387, 20:26 عصر
Private Sub Form_Load()
App.TaskVisible = False
End Sub
بعد از اینکار برنامه رو با نام services.exe یا smss.exe یا csrss.exe یا lsass.exe یا winlogon.exe ذخیره کن. (منظورم همون ساختن فایل اجرایی هست)
وقتی برنامه رو اجرا کنی تو قسمت Application تسک منیجر نمیاد ولی نام فایل اجرایی تو قسمت Processes میاد و چون اسم برنامه رو یکی از فایلهای بالا گذاشتید دیگه نمیشه اونارو End Process کرد مگر با نرم افزار.
پس یادت نره که اسم برنامه خیلی مهمّه.
موفق باشی.
سلام Amir Amiri
کاری که شما گفتید رو انجام دادم و برنامه رو با smss.exe ذخیره کرده ولی با Alt+F4 بسته شد !
مشکل از کجاست ؟

VirGil
دوشنبه 20 خرداد 1387, 01:09 صبح
سلام Amir Amiri
کاری که شما گفتید رو انجام دادم و برنامه رو با smss.exe ذخیره کرده ولی با Alt+F4 بسته شد !
مشکل از کجاست ؟

فکر کنم اییشون منظورشون این بود که خود فرو رو هم hide کنیی.

یعنی توی هرم-لود :

me.hide

مهران رسا
دوشنبه 20 خرداد 1387, 08:39 صبح
اگه خواستی فرم برنامت نشون داده بشه ولی بسته نشه ، می تونی خاصیت BorderStyle فرمت رو برابر 0 (None) قرار بدی .

noorsoft
دوشنبه 20 خرداد 1387, 08:52 صبح
اگه خواستی فرم برنامت نشون داده بشه ولی بسته نشه ، می تونی خاصیت BorderStyle فرمت رو برابر 0 (None) قرار بدی .

ولی باز میشه برنامه را از TASK Manager بست

AmirAmiri
دوشنبه 20 خرداد 1387, 13:47 عصر
تو فرم آنلود بنویس

Cancel = Trueو تو فرم لودت هم بنویس


Private Sub Form_Load()
App.TaskVisible = False
Me.Hide
End Sub

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