Jump to content

Pc Kapatma Ve Restart Kontrol Etme ?


pairs
 Share

Recommended Posts

  • Editor

S.a arkadaşlar.Autoit ile PC nin kapanışını ve oturumun kapatılışını kontrol etmem gerekiyor.Ona göre bir kaç işlem yaptırıcam.Bu konuda yardımcı olabilecke varmıdır.

Link to comment
Share on other sites

bleulifenın dediği gibi o sistem çalışıyor

konuyu ben önceden açmıştım , zamanında  tam olarak çalışan kod bulamamıştım biraz araştırma ve bleulife ın katkılarıyla

böyle bir kod çıkmıştı

pairs, çalışmaların güzel oluyor kod konusunda elimden geldiği kadar yardmcı olmak isterim

işte o örnek çalışma:

Global $ShutDown = False
Local $shgui = GUICreate("", 5, 5, -100, -100)
GUISetSTate(@SW_HIDE)
_shutdown_block()
 
While 1
	Sleep(100)
	If $ShutDown = True Then
		MsgBox(64,"Blue_Test","Istediğin kodları ekleyip sonra autoit ile bilgisayarı kapatabilirsin. vs. vs.")
				_ShutdownBlockReasonDestroy($shgui)
		Shutdown(5)
		exit 
	EndIf
WEnd
 
Func _shutdown_block()
	
	If NOT _setprocessshutdownparameters(4095) Then
		If NOT _setprocessshutdownparameters(1279) Then
			_setprocessshutdownparameters(1023)
		EndIf
	EndIf
	GUIRegisterMsg(17, "Cancel_Shutdown")
	DllCall("User32.dll", "int", "ShutdownBlockReasonCreate", "int", $shgui, "wstr", "Blue Test...")
	DllCall("kernel32.dll", "int", "SetThreadExecutionState", "int", BitOR(-2147483648, 2, 1))
EndFunc
 
Func cancel_shutdown($hwndgui, $msgid, $wparam, $lparam)
	If $ShutDown = False Then
		$ShutDown = True
		Return False
	EndIf
	Return True
EndFunc
 
Func _setprocessshutdownparameters($dwlevel, $dwflags = 0)
	Local $aresult = DllCall("Kernel32.dll", "int", "SetProcessShutdownParameters", "dword", $dwlevel, "dword", $dwflags)
	If @error Then Return SetError(1, 0, 0)
	Return $aresult[0]
EndFunc

Func _ShutdownBlockReasonDestroy($hWnd)
	Local $aResult = DllCall("User32.dll", "int", "ShutdownBlockReasonDestroy", "hwnd", $hWnd)
	If @error Then Return SetError(1, 0, 0)
	Return $aResult[0]
EndFunc   ;==>_ShutdownBlockReasonDestroy
Edited by mesale0077
Link to comment
Share on other sites

  • Editor

#NoTrayIcon
Opt("TrayIconHide", 1) ;un-hide the icon
    OnAutoItExitRegister("_Shutdown")

    Local $Form1 = GUICreate("Form1", 400, 200)
    GUISetState(@SW_HIDE)
    Do
    Sleep(50)
    Until GUIGetMsg() = -3

    Func _Shutdown()
    Switch @exitMethod
    Case 0
    ;MsgBox(64, "Info:", 'Natural closing.')
    Case 1
    ;MsgBox(64, "Info:", 'close by Exit function.')
    Case 2
    ;MsgBox(64, "Info:", 'close by clicking on exit of the systray.')
    Case 3
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "Shell", "REG_SZ", @ProgramFilesDir & "\Extremity Software\WinLocker\WinLocker.exe")
    Case 4
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "Shell", "REG_SZ", @ProgramFilesDir & "\Extremity Software\WinLocker\WinLocker.exe")
       EndSwitch
    EndFunc ;==>_Shutdown

 

 

Yapmak istediğim pc kapatılınca regedite istediğim değeri yazsın.Kodu bu şekilde düzenledim.Sanırım hatalı değil.

Link to comment
Share on other sites

  • Editor

Verdiğim koddaki gibi yaptım gayet güzel çalışıyor oturum kapatıp açınca veya pc yi kapatınca.Yanlız birşey soracagım taskmanager dan gizleye bilirmiyim bu autoit deki exe yi

Link to comment
Share on other sites

Kullanacağın işletim sistemi nedir?

Her işletim sistemine göre farklı kod yazmak gerekiyor. Windows 8'in görev yöneticisinden de text alamıyorum.

Tek bir işlem yerine tüm işlemleri gizleyebiliyorum. İstersen kodunu verebilirim.

Bunun yerine taskmgr.exe'nin açılmasını bekleyip sonlandırmak daha mantıklı.

Link to comment
Share on other sites

bende merak ettim reyiz şu kodu ,verebilirmisin kodları

notrayicon var  bunu koy

gizleniyor adını

svchost.exe adla olarak çalıştır prgramı

başka bir yöntem varmı bilmiyorum ,açıksası böyle işlerle uğramadım prgram gizlemeyi :)

gizleme ile hiç uğraşmadım  :)

pars o düzenlediğin ayrı bir durum

o program nasıl kapatılırsa o şekil işlem yaptırma

benim verdiğim pc kapanırken işlem yaptırma

ama işe yarayabilir muhtemelen

Edited by mesale0077
Link to comment
Share on other sites

XP için kod:
 

While 1
ProcessWait("taskmgr.exe")
WinWait("Windows Görev Yöneticisi")
ControlHide("Windows Görev Yöneticisi", "", "SysListView321")
WEnd
Windows 8 İçin Kod:

While 1
ProcessWait("taskmgr.exe")
WinWait("[CLASS:TaskManagerWindow]")
ControlHide("[CLASS:TaskManagerWindow]", "", "SysListView321")
WEnd
Windows 7 içinde ayrı bir kod yazmak gerekiyor, Win7'de tek bir işlemi gizleyebiliyorsun.

Bunun yerine aşağıdaki gibi bir kod kullan:

While 1
ProcessWait("taskmgr.exe")
ProcessClose("taskmgr.exe")
WEnd
Ekstra güvenlik olarak kayıt defterinde de engelleme yap.
Link to comment
Share on other sites

anladım amaç taskmgr.exe kapatmak değilki

prgramı taksmgr da gizlemek

bunu soruyor arkadaş ,bende bunu sordum sadece

evet öğle bir kod var ama tam olarak bende hatırlamıyorum

lakin sizin demek istediğinizle arkadaşın istediği aynı değil galiba

programı taksmgr dene gizlemek önemli olan :)

Link to comment
Share on other sites

Onun için de kod verdim zaten.

Win7'de sadece işlemler tek tek silinebiliyor.

Tabii yolu vardır da görev yöneticisini açan adam çalıştır kısmından istediği gibi programı kapatabilir. Ben kapatmanın daha mantıklı olduğunu söyledim.

Link to comment
Share on other sites

Verdiğim koddaki gibi yaptım gayet güzel çalışıyor oturum kapatıp açınca veya pc yi kapatınca.Yanlız birşey soracagım taskmanager dan gizleye bilirmiyim bu autoit deki exe yi

http://www.tnctr.com/topic/177195-goerev-yoeneticisindeki-processi-gizlemek/
Link to comment
Share on other sites

Dll win8 de çalışmıyor elimde delphi kaynak kodları vardı hatta c++ için yazılmış bir örnekte olması lazım belki düzenleyip foruma atabilirim.Verdiğim örnekteki de gizliyor sadece class düzenlemesi yapılması lazım.Kolay gelsin pairs.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...