Editor pairs Posted June 3, 2013 Editor Share Posted June 3, 2013 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. Quote Link to comment Share on other sites More sharing options...
blue_life Posted June 3, 2013 Share Posted June 3, 2013 Aşağıdaki konuya gözatarsın...http://www.tnctr.com/topic/213374- Quote Link to comment Share on other sites More sharing options...
mesale0077 Posted June 3, 2013 Share Posted June 3, 2013 (edited) 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 June 3, 2013 by mesale0077 Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted June 3, 2013 Author Editor Share Posted June 3, 2013 #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. Quote Link to comment Share on other sites More sharing options...
reyiz Posted June 3, 2013 Share Posted June 3, 2013 (edited) Niye bütün komutları ayrı Case altına yazdınız? Case'de değişken de kullanmamışsınız? Ne işe yarayacak? Edited June 3, 2013 by reyiz Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted June 3, 2013 Author Editor Share Posted June 3, 2013 Birisi oturum kapatınca birisi sistemi kapatınca. Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted June 3, 2013 Author Editor Share Posted June 3, 2013 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 Quote Link to comment Share on other sites More sharing options...
reyiz Posted June 3, 2013 Share Posted June 3, 2013 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ı. Quote Link to comment Share on other sites More sharing options...
mesale0077 Posted June 3, 2013 Share Posted June 3, 2013 (edited) 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 June 3, 2013 by mesale0077 Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted June 3, 2013 Author Editor Share Posted June 3, 2013 Anlaşılan zor galiba çokta şart değildi zaten. Quote Link to comment Share on other sites More sharing options...
reyiz Posted June 3, 2013 Share Posted June 3, 2013 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. Quote Link to comment Share on other sites More sharing options...
mesale0077 Posted June 3, 2013 Share Posted June 3, 2013 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 :) Quote Link to comment Share on other sites More sharing options...
reyiz Posted June 3, 2013 Share Posted June 3, 2013 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. Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted June 3, 2013 Share Posted June 3, 2013 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/ Quote Link to comment Share on other sites More sharing options...
reyiz Posted June 3, 2013 Share Posted June 3, 2013 @SimpsoN_Bart örnek Windows 8'de çalışmıyor. Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted June 3, 2013 Share Posted June 3, 2013 Dll ile denediniz mi ? Ayrıca çalışmaması normal bir durum "[CLASS:#32770]" değişkeni win8 de farklıdır onu düzenleyip denerseniz çalışması lazım mantık olarak. Quote Link to comment Share on other sites More sharing options...
reyiz Posted June 3, 2013 Share Posted June 3, 2013 [attachment=1077:2013-06-03_160538.png] DLL'yi denediğimde çalışmadı zaten. Evet, yukarıda da yazdığım gibi her sistemde farklı class kullanmak gerekiyor. Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted June 3, 2013 Share Posted June 3, 2013 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.