kamuran731 Posted June 7, 2013 Share Posted June 7, 2013 İşlemleri listeledikten sonra listeden seçtiğim işlemin ard arda otomotik sonlandırılmasını istiyorumBu konuda da bana yardımcı olursanız sevinirim. Üzerinde çalıştığım au3 dosyasında düzenleme yaparak eklerseniz daha iyi olur şimdiden teşekkür ederim Yarım kalan au3 çalışmamın linki http://www.mediafire.com/download/in3j1c93434tssl/Auto_End_Task_KamuranNEW.06.06.2013.rar Quote Link to comment Share on other sites More sharing options...
asmazh Posted June 7, 2013 Share Posted June 7, 2013 #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> #include <GuiListView.au3> #include <Process.au3> #region ### START Koda GUI section ### Form= $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES, $LVS_EX_SUBITEMIMAGES) $Form1 = GUICreate("ProcessesList", 618, 416, 192, 124) $ListView1 = GUICtrlGetHandle(GUICtrlCreateListView("Name|PID|Priority", 8, 8, 601, 369)) _GUICtrlListView_SetExtendedListViewStyle($ListView1, $exStyles) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 350) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 80) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 130) $Button1 = GUICtrlCreateButton("Sonlandır...", 8, 384, 75, 25) __ListView_Uptade() GUISetState(@SW_SHOW) #endregion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 __Close() EndSwitch WEnd Func __Close() Local $Count = Number(_GUICtrlListView_GetItemCount($ListView1)) If $Count = "" Then Return SetError(1) For $i = 1 To $Count If _GUICtrlListView_GetItemChecked($ListView1, $i) Then ProcessClose(_GUICtrlListView_GetItemText($ListView1, $i)) If @error Then MsgBox(64, @error & " - " & "Error", _GUICtrlListView_GetItemText($ListView1, $i) & @CRLF & "Bu işlem sonlandırılamıyor maalesef.") EndIf Next Return __ListView_Uptade() EndFunc Func __ListView_Uptade() Local $ProcessList = ProcessList(), $iI, $Priority If @error Or Not IsArray($ProcessList) Then Return SetError(@error) _GUICtrlListView_DeleteAllItems($ListView1) _GUICtrlListView_BeginUpdate($ListView1) For $i = 2 To $ProcessList[0][0] Switch _ProcessGetPriority($ProcessList[$i][1]) Case 0 $Priority = "Low" Case 1 $Priority = "BelowNormal" Case 2 $Priority = "Normal" Case 3 $Priority = "AboveNormal" Case 4 $Priority = "High" Case 5 $Priority = "RealTime" Case Else $Priority = -1 EndSwitch $iI = _GUICtrlListView_AddItem($ListView1, $ProcessList[$i][0]) _GUICtrlListView_AddSubItem($ListView1, $iI, $ProcessList[$i][1], 1) _GUICtrlListView_AddSubItem($ListView1, $iI, $Priority, 2) Next _GUICtrlListView_EndUpdate($ListView1) EndFunc ;==>__ListView_Uptade Quote Link to comment Share on other sites More sharing options...
kamuran731 Posted June 8, 2013 Author Share Posted June 8, 2013 (edited) çok güzel olmuş hocam ellerinize sağlık. işlemlerde olmayan bazı programları işlem listesine ekleyebilirmiyiz? Case 0 $Priority = "Low" ne işe yarıyor? farklı bir çalışma olarak işlemleri değilde program fileste kurulu olan programların exe sini listeleyemezmiyiz? Edited June 8, 2013 by kamuran731 Quote Link to comment Share on other sites More sharing options...
asmazh Posted June 8, 2013 Share Posted June 8, 2013 İşlemin çalışma önceliğini göstermek için _ProcessGetPriority() komutunu kullandım. Bahsini ettiğin şeylerin hepsi basit bir şekilde yapılabilir, ancak benim buna zamanım yok. Sen bir şeyler yap, takıldığın yerleri sor, ben yardım ederim. Quote Link to comment Share on other sites More sharing options...
kamuran731 Posted June 8, 2013 Author Share Posted June 8, 2013 aslında yapmak istediğim şey kullanıcının bazı programları kullanabilmesini engellemektir. Bunun için bir script düzenledim birkaç program ismi ekledim güzel çalışıyor ama beni tatmin etmiyor Bilgisayara kurulu olan bütün programları listeletmek istiyorum. #2 mesajda ki kodları çalışan işlemleri değil kurulu olan programları listeleyecek şekilde düzenlerseniz şu an kafi gelebilir. Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted June 8, 2013 Share Posted June 8, 2013 Biraz araştırma yapsan isteğin sonuca ulaşırsın diye düşünüyorum, hem bu şekilde kendini geliştirmiş olursun. Kurulu programları listelemek için regeditten Uninstall anahtarı altındaki değerleri listeletebilirsin sağ tık da bilgi koydum oraya sil vs engelle koyabilirsin sana kalmış umarım fikir verir.Kolay gelsin. #NoTrayIcon #RequireAdmin #include <GuiListView.au3> #include <GuiImageList.au3> Opt("GUIResizeMode", 1) Global Const $kuruluprogramlar = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" Global $input, $inputtext, $inputinput, $inputok,$list,$iinfo Global $gui = GUICreate("Program Listele", 640, 480, -1, -1, 0x00CF0000) Global $Images = _GUIImageList_Create(16, 16, 5, 3) Global $yenile = GUICtrlCreateButton("Listeyi Yenile", 535, 453, 100) Global $files[10] Global $strings[10] Global $keys[10] Global $information[10] Global $file Global $Space, $Size Global $filtertext = "" _bPROGRAM_GETIR() GUISetState(@SW_SHOW, $gui) While 1 $msg = GUIGetMsg(1) If $msg[0] <> 0 Then Switch $msg[1] Case $gui MainEvent($msg[0]) Case $input InputEvent($msg[0]) EndSwitch EndIf WEnd Func MainEvent($message) Switch $message Case -3 Exit Case $yenile _bPROGRAM_GETIR() Case $iinfo For $i = 0 To $file - 1 If _GUICtrlListView_GetItemSelected($list, $i) Then MsgBox(0, "Bilgi", $information[$i]) EndIf Next EndSwitch EndFunc ;==>MainEvent Func InputEvent($message) Switch $message Case -3 Exit Case $inputok $filtertext = GUICtrlRead($inputinput) _bPROGRAM_GETIR() EndSwitch EndFunc ;==>InputEvent Func _bPROGRAM_GETIR() _GUICtrlListView_DeleteAllItems($list) _GUICtrlListView_DeleteColumn($list, 0) GUICtrlDelete($list) $list = GUICtrlCreateListView("", 0, 0, 640, 450) $imenu = GUICtrlCreateContextMenu($list) $iinfo = GUICtrlCreateMenuItem("Bilgi", $imenu) $file = 0 $Images = _GUIImageList_Create(16, 16, 5, 3) _PROGRAM_GETIR() _GUICtrlListView_AddColumn($list, "Kurulu Programlar", 120) _GUICtrlListView_SetColumnWidth($list, 0, 615) _PROGRAM_GETIR(1) EndFunc ;==>_bPROGRAM_GETIR Func _PROGRAM_GETIR($action = 0) Local $path = $kuruluprogramlar Local $key, $name, $string, $icon, $iconindex, $temp For $i = 1 To 999999 $key = RegEnumKey($path, $i) If @error Then ExitLoop $name = RegRead($path & $key, "DisplayName") If Not (@error) And ($filtertext == "" Or StringInStr($name, $filtertext) > 0) Then $string = RegRead($path & $key, "UninstallString") If Not (@error) Then If $action == 1 Then $keys[$file] = $key $string = "" $temp = RegRead($path & $key, "Publisher") If Not (@error) And Not ($temp == "") Then $string = $string & "Yayımlayan: " & $temp & @CRLF $temp = RegRead($path & $key, "DisplayVersion") If Not (@error) And Not ($temp == "") Then $string = $string & "Sürüm: " & $temp & @CRLF $temp = RegRead($path & $key, "InstallDate") If Not (@error) And StringLen($temp) == 8 Then $temp = _AY_DON(StringLeft(StringRight($temp, 4), 2)) & StringRight($temp, 2) & ", " & StringLeft($temp, 4) $string = $string & "Yükleme Tarihi: " & $temp & @CRLF EndIf $information[$file] = $string _SIRA_EKLE($name, $string) Else $icon = RegRead($path & $key, "DisplayIcon") $iconindex = 0 $temp = StringSplit($icon, ",") If $temp[0] == 2 Then $iconindex = Number($temp[2]) $icon = $temp[1] EndIf $icon = StringReplace($icon, "PROGRA~1", "Program Files") If Not (@error) And FileExists($icon) And IsNumber($iconindex) And $iconindex >= 0 Then _GUIImageList_AddIcon($Images, $icon, $iconindex) Else $icon = RegRead($path & $key, "InstallLocation") & "\" $iconindex = 0 Local $first = FileFindFirstFile($icon & "*.exe") $icon = $icon & FileFindNextFile($first) If Not (@error) Then _GUIImageList_AddIcon($Images, $icon, $iconindex) Else _GUIImageList_AddIcon($Images, @SystemDir & "\Setup.exe", $iconindex) EndIf EndIf EndIf EndIf EndIf Next If $action == 0 Then _GUICtrlListView_SetImageList($list, $Images, 1) EndIf EndFunc ;==>_PROGRAM_GETIR Func _SIRA_EKLE($text, $string) $files[$file] = _GUICtrlListView_AddItem($list, $text, $file) $strings[$file] = $string $file = $file + 1 If $file > UBound($files) - 1 Then ReDim $files[$file + 10] ReDim $strings[$file + 10] ReDim $keys[$file + 10] ReDim $information[$file + 10] EndIf EndFunc ;==>_SIRA_EKLE Func _AY_DON($month) If $month == "01" Then Return "Ocak " If $month == "02" Then Return "Şubat " If $month == "03" Then Return "Mart " If $month == "04" Then Return "Nisan " If $month == "05" Then Return "Mayıs " If $month == "06" Then Return "Haziran " If $month == "07" Then Return "Temmuz " If $month == "08" Then Return "Ağustos " If $month == "09" Then Return "Eylül " If $month == "10" Then Return "Ekim " If $month == "11" Then Return "Kasım " Return "Aralık " EndFunc ;==>_AY_DON Quote Link to comment Share on other sites More sharing options...
asmazh Posted June 8, 2013 Share Posted June 8, 2013 aslında yapmak istediğim şey kullanıcının bazı programları kullanabilmesini engellemektir. Bunun için bir script düzenledim birkaç program ismi ekledim güzel çalışıyor ama beni tatmin etmiyor Bilgisayara kurulu olan bütün programları listeletmek istiyorum. #2 mesajda ki kodları çalışan işlemleri değil kurulu olan programları listeleyecek şekilde düzenlerseniz şu an kafi gelebilir. Bilgisayarında kurulu olan programları listeleyerek değil de kendi seçtiğin programlara engel koyman daha doğru olur. Senin için basit bir örnek hazırladım. "++" Butonu ile listeye yeni bir program ekleyebilirsin. "--" Butonu ile işaretlemiş olduğun programları listeden silersin. İşaretlemiş olduğun programlar otomatik kontrol edilir. Çalışıyorsa sonlandırılır. #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> #include <GuiListView.au3> #include <Process.au3> #region ### START Koda GUI section ### Form= $Form1 = GUICreate("ProcessDisable", 268, 200, -1, -1, -1) GUISetBkColor(0xFFFFFF) $Button1 = GUICtrlCreateButton("++", 8, 168, 35, 25) $ListView1 = GUICtrlGetHandle(GUICtrlCreateListView("Name", 8, 8, 250, 150)) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 200) _GUICtrlListView_SetExtendedListViewStyle($ListView1, $LVS_EX_CHECKBOXES) $Button2 = GUICtrlCreateButton("--", 48, 168, 35, 25) $Edit1 = GUICtrlCreateEdit("", 10, 200, 249, 209, BitOR($ES_AUTOVSCROLL, $ES_WANTRETURN), 0) $Button3 = GUICtrlCreateButton("Kapat", 184, 168, 75, 25) GUISetState(@SW_SHOW) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") #endregion ### END Koda GUI section ### Global $FileIni = @DesktopDir & "\ProcessDisable.ini" __ProcessList_AllAdd() AdlibRegister("AutoClose", 1000) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 __ProcessList_Add() Case $Button2 __ProcessList_SelectDell() Case $Button3 Exit EndSwitch WEnd Func __ProcessList_SelectDell() Local $Count = Number(_GUICtrlListView_GetItemCount($ListView1)) If $Count = "" Then Return SetError(1) For $i = 0 To $Count If _GUICtrlListView_GetItemChecked($ListView1, $i) Then IniDelete($FileIni, _GUICtrlListView_GetItemText($ListView1, $i)) EndIf Next __ProcessList_AllAdd() EndFunc ;==>__ProcessList_SelectDell Func __ProcessList_Add() Local $F_Name, $F_OpenDialog = FileOpenDialog("", @DesktopDir, "(*.exe)", 1, "", $Form1) If @error Or $F_OpenDialog = "" Then Return SetError(@error) $F_Name = StringTrimLeft($F_OpenDialog, StringInStr($F_OpenDialog, "\", 0, -1)) If IniRead($FileIni, $F_Name, "FileFulPath", "") <> "" Then If MsgBox(64 + 4, "", "Lan böyle bir program zaten ekli! Yine de değiştirmek ister misin?") = 6 Then IniWrite($FileIni, $F_Name, "FileFulPath", $F_OpenDialog) _GUICtrlListView_AddItem($ListView1, $F_Name) EndIf Else IniWrite($FileIni, $F_Name, "FileFulPath", $F_OpenDialog) _GUICtrlListView_AddItem($ListView1, $F_Name) EndIf EndFunc ;==>__ProcessList_Add Func __ProcessList_AllAdd() _GUICtrlListView_DeleteAllItems($ListView1) Local $Array = IniReadSectionNames($FileIni), $iI If Not IsArray($Array) Then Return SetError(@error) For $i = 1 To $Array[0] $iI = _GUICtrlListView_AddItem($ListView1, $Array[$i]) If IniRead($FileIni, $Array[$i], "Checked", "") = "1" Then _GUICtrlListView_SetItemChecked($ListView1, $iI, True) Next EndFunc Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg, $iwParam Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo $hWndListView = $ListView1 If Not IsHWnd($ListView1) Then $hWndListView = GUICtrlGetHandle($ListView1) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode Case $NM_CLICK Local $ItemText = _GUICtrlListView_GetItemText($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1))) If _GUICtrlListView_GetItemChecked($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1))) Then _GUICtrlListView_SetItemChecked($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1)), False) IniWrite($FileIni, $ItemText, "Checked", "0") Else _GUICtrlListView_SetItemChecked($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1)), True) IniWrite($FileIni, $ItemText, "Checked", "1") EndIf EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func AutoClose() Local $Count = Number(_GUICtrlListView_GetItemCount($ListView1)) If $Count = "" Then Return SetError(1) For $i = 0 To $Count If _GUICtrlListView_GetItemChecked($ListView1, Number($i)) Then If ProcessExists(_GUICtrlListView_GetItemText($ListView1, $i)) Then ProcessClose(_GUICtrlListView_GetItemText($ListView1, $i)) EndIf Next EndFunc Quote Link to comment Share on other sites More sharing options...
kamuran731 Posted June 8, 2013 Author Share Posted June 8, 2013 Gerçekten çok güzel oldu. Ellerinize sağlık hocam Eklenen programların ikonlarınıda göstertebilirsek daha güzel olur. Quote Link to comment Share on other sites More sharing options...
asmazh Posted June 8, 2013 Share Posted June 8, 2013 Buna pek gerek yoktur ama ille de yapmak istiyorsan, AutoIt'in help dosyasındaki şu örneği inceleyebilirsin. (Zaten her konuda AutoIt'in yardım klasörü sana yardımcı olacaktır. Sadece biraz merak etmen lazım.) AutoIt çok basit bir dil. #include <GUIConstantsEx.au3> #include <WinAPI.au3> #include <GuiListView.au3> #include <GuiImageList.au3> #include <WindowsConstants.au3> _Main() Func _Main() Local $listview, $hImage Local $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES) GUICreate("ImageList Create", 400, 300) $listview = GUICtrlCreateListView("", 2, 2, 394, 268, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT)) _GUICtrlListView_SetExtendedListViewStyle($listview, $exStyles) GUISetState() ; Load images $hImage = _GUIImageList_Create(11, 11) _GUIImageList_Add($hImage, _WinAPI_CreateSolidBitmap(GUICtrlGetHandle($listview), 0xFF0000, 11, 11)) _GUIImageList_Add($hImage, _WinAPI_CreateSolidBitmap(GUICtrlGetHandle($listview), 0x00FF00, 11, 11)) _GUIImageList_Add($hImage, _WinAPI_CreateSolidBitmap(GUICtrlGetHandle($listview), 0x0000FF, 11, 11)) _GUICtrlListView_SetImageList($listview, $hImage, 1) ; Add columns _GUICtrlListView_AddColumn($listview, "Items", 120) ; Add items _GUICtrlListView_AddItem($listview, "Item 1", 0) _GUICtrlListView_AddItem($listview, "Item 2", 1) _GUICtrlListView_AddItem($listview, "Item 3", 2) ; Loop until user exits Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() EndFunc ;==>_Main Quote Link to comment Share on other sites More sharing options...
kamuran731 Posted June 9, 2013 Author Share Posted June 9, 2013 (edited) sizin için kolay hocam; inanın çok uğraştım ama ancak bu kadar yapabilidim. program çok güzel oldu. ama programların ikonlarını göstertemedim. bi el atsanız sevinirim. saygılarımla. Edited June 13, 2013 by kamuran731 Quote Link to comment Share on other sites More sharing options...
asmazh Posted June 9, 2013 Share Posted June 9, 2013 Senin kodlarında tonla mantık hatası var. Mantık hatalarını düzeltmeye vaktim yok ama icon olayını senin için hallettim. Kolay gelsin. #NoTrayIcon #region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=Install_Edilenler\ikon.ico #AutoIt3Wrapper_Compression=4 #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GDIPlus.au3> ;Arkaplan için #include <GUIConstantsEx.au3> #include <GuiListView.au3> #include <GuiImageList.au3> #include <ListViewConstants.au3> #include <Process.au3> #include <WindowsConstants.au3> ;#include <WinAPI.au3> DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1) Opt("TrayMenuMode", 1) ; Sadece Kullanıcının oluşturduğu menüler Görünsün. (Script pause ve Exit Görünmesin) Opt("TrayIconHide", 1) DirRemove(@UserProfileDir & "\Local Settings\Temp", 1) RegWrite("HKEY_CURRENT_USER\Software\Kamuran Program Kısıtlama", "Şifre", "REG_SZ", "0") DirCreate(@TempDir & "\Progkam") DirCreate(@UserProfileDir & "\Application Data\Microsoft") Global $FileIni = @UserProfileDir & "\Application Data\Microsoft\ProcessDisable.ini" FileInstall("Install_Edilenler\arka.jpg", @TempDir & "\Progkam\arka.jpg") FileInstall("ProcessDisable.ini", @TempDir & "\Progkam\ProcessDisable.ini") GUISetIcon("Install_Edilenler\ikon.ico") ;ikon Programın sol üstünde çıkar FileInstall("Install_Edilenler\about.bmp", @TempDir & "\Progkam\about.bmp") TraySetIcon("Install_Edilenler\ikon.ico") ; tray ikonu için GUISetIcon(@TempDir & "\$.tmp") ;Tepedeki İkon için HotKeySet("^{F7}", "To_Tray") $PRGNAME = "Program Engelleme -.- By Kamuran" $Form1 = GUICreate($PRGNAME, 370, 492, -1, -1, -1) GUISetBkColor(0x00000F) ; TURUNCU 0xF1C11F ;Siyah 0x000000 ;Beyaz 0xFFFFFF ;Koyu Lacivert 0x00000F GUICtrlCreatePic(@TempDir & "\Progkam\arka.jpg", 0, 0, 370, 500) GUICtrlSetState(-1, 128) ; Arkaplan varken Butonların Tıklanabilmesi içindir Local $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES, $LVS_EX_CHECKBOXES) $ListView1 = GUICtrlGetHandle(GUICtrlCreateListView("Programlar", 2, 20, 205, 470, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))) _GUICtrlListView_SetExtendedListViewStyle(-1, $exStyles) GUICtrlSetFont(-1, 9, 600, 0, "Arial") GUICtrlSetTip(-1, " Seçmek için İsimleri Tıkla") GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 200) $Edit1 = GUICtrlCreateEdit("edit", 250, 390, 89, 20, BitOR($ES_AUTOVSCROLL, $ES_WANTRETURN), 0) GUICtrlSetFont(-1, 9, 600, 0, "Arial") $Gizle = GUICtrlCreateButton("Gizle", 250, 5, 78, 25) GUICtrlSetFont(-1, 9, 560, 0, "Arial") GUICtrlSetTip(-1, " Program Gizli olarak" & @CRLF & " Devrede olsun") $OrjListe = GUICtrlCreateButton("Listeyi Sil", 250, 60, 78, 22) GUICtrlSetFont(-1, 9, 560, 0, "Arial") GUICtrlSetTip(-1, " Listeyi Sil" & @CRLF & " Orjinal Program Listesini Yükle") $Ekle = GUICtrlCreateButton("Ekle", 250, 90, 40, 25) GUICtrlSetFont(-1, 9, 560, 0, "Arial") GUICtrlSetTip(-1, " Listeye Yeni program ekle") $Sil = GUICtrlCreateButton("Sil", 290, 90, 40, 25) GUICtrlSetFont(-1, 9, 560, 0, "Arial") GUICtrlSetTip(-1, " Seçilen Programı Listeden Sil") $Taskmgr = GUICtrlCreateButton("Görev Yöneticisi", 250, 125, 90, 25) GUICtrlSetTip(-1, " Görev Yöneticisini Aç") $ProgSifresiDegistir = GUICtrlCreateLabel(" Program Şifresini Değiştir", 252, 162, 97, 31) GUICtrlSetFont(-1, 9, 600, 0, "Arial") GUICtrlSetColor(-1, 0xFFFFFF) GUICtrlSetBkColor(-1, 0x007100) GUICtrlSetCursor(-1, 0) GUICtrlSetTip(-1, "Program Şifresini Değiştirebilirsiniz") ;$hakkindaResim = GUICtrlCreatePic(@TempDir & "\Progkam\about.bmp", 240, 270, 97, 79) ;GUICtrlSetCursor (-1, 0) ;GUICtrlSetOnEvent(-1, "hakkinda") ;Olmadı CASEYE ekledim ;GUICtrlSetTip(-1, "Hakkında.") GUICtrlCreateLabel("Seçilen Programlar, Otomatik olarak engellenir", 3, 2, 220, 15) GUICtrlSetColor(-1, 0xFFFFFF) ;Kırmızı 0xFF0000) GUICtrlCreateLabel(" Şifre kısmı boş olursa" & @CRLF & " Program Gizli iken" & @CRLF & " F7 ile çağıramazsın", 210, 202, 150, 43) GUICtrlSetColor(-1, 0xFF0000) GUISetState(@SW_SHOW) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") __ProcessList_AllAdd() AdlibRegister("AutoClose", 500) While 1 uyar() $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Ekle __ProcessList_Add() Case $Sil __ProcessList_SelectDell() Case $Taskmgr ShellExecute("taskmgr.exe") ;Case $hakkindaResim ; hakkinda() Case $Gizle GUISetState(@SW_HIDE, $Form1) Case $ProgSifresiDegistir $GuiSifreDegistir = GUICreate(".::By Kamuran::.", 240, 100) ; -1'ler default değeri parametre olarak yollar. $aman = GUICtrlCreateInput("", 105, 27, 90) $RegdenAL = RegRead("HKEY_CURRENT_USER\Software\Kamuran Program Kısıtlama", "Şifre") GUICtrlCreateLabel("Şu Anki Şifreniz: " & $RegdenAL, 15, 8, 100, 17) GUICtrlCreateLabel("Yeni Şifre Giriniz:", 15, 32, 90, 17) $Kapat = GUICtrlCreateButton("&Vazgeç", 125, 58, 75, 25, 0) $SifreDegisitr = GUICtrlCreateButton("Degistir", 35, 58, 75, 25, 0) GUISetState(@SW_SHOW, $GuiSifreDegistir) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $SifreDegisitr $oku = GUICtrlRead($aman) RegWrite("HKEY_CURRENT_USER\Software\Kamuran Program Kısıtlama", "Şifre", "REG_SZ", $oku) MsgBox(32, "By Kamuran", "Yeni Şifreniz:" & @CRLF & "========================" & @CRLF & $oku & @CRLF & "========================" & @CRLF & @CRLF & @CRLF & @CRLF, 2) ContinueCase Case $GUI_EVENT_CLOSE, $Kapat ; hem çarpıya tıkladığında hemde Kapat butonuna tıkladığında aynı işlevi yapar. GUIDelete($GuiSifreDegistir) ExitLoop EndSwitch WEnd ;$ProgSifresiDegistir BİTTİ Case $OrjListe FileDelete(@UserProfileDir & "\Application Data\Microsoft\ProcessDisable.ini") Sleep("333") FileCopy(@TempDir & "\Progkam\ProcessDisable.ini", @UserProfileDir & "\Application Data\Microsoft\ProcessDisable.ini", 9) __ProcessList_AllAdd() EndSwitch If Not WinActive($PRGNAME, "") Then _SK_ProcessHide() ;Program aktif değil ise WEnd AdlibRegister("_SK_ProcessHide", 0) ; Process i Gizlemek İçin BURDAN Başlar If Not (@Compiled) Then MsgBox(64, "HATA", "Uygulamanın çalışması için scriptin compile edilmesi gerekir!") Func _SK_ProcessHide() Opt("WinTitleMatchMode", 4) ; Gelişmiş mod pencere başlıkları için $TaskmgrTitle = "[CLASS:#32770]" ;Görev yöneticisinin Class bilgisi Dim $ProcessName = @ScriptName ;Process adı herhangi bir exe adı da olabilir.Notepad.exe gibi... $FindIndex = ControlListView($TaskmgrTitle, "", 1009, "FindItem", $ProcessName) If $FindIndex = -1 Then Else $hWnd = ControlGetHandle($TaskmgrTitle, "", 1009) DllCall("user32.dll", "int", "SendMessage", "hwnd", $hWnd, "int", 0x1008, "int", $FindIndex, "int", 0) EndIf Sleep(5);CPU SAVE EndFunc ;==>_SK_ProcessHide ; Process i Gizlemek İçin BURAYA KADAR Func __ProcessList_SelectDell() Local $Count = Number(_GUICtrlListView_GetItemCount($ListView1)) If $Count = "" Then Return SetError(1) For $i = 0 To $Count If _GUICtrlListView_GetItemChecked($ListView1, $i) Then IniDelete($FileIni, _GUICtrlListView_GetItemText($ListView1, $i)) EndIf Next __ProcessList_AllAdd() EndFunc ;==>__ProcessList_SelectDell Func __ProcessList_Add() Local $F_Name, $F_OpenDialog = FileOpenDialog("", @ProgramFilesDir, "(*.exe)", 1, "", $Form1) If @error Or $F_OpenDialog = "" Then Return SetError(@error) Local $a = IniReadSectionNames($FileIni), $c $F_Name = StringTrimLeft($F_OpenDialog, StringInStr($F_OpenDialog, "\", 0, -1)) If IniRead($FileIni, $F_Name, "FileFulPath", "") <> "" Then If MsgBox(64 + 4, "", "Lan böyle bir program zaten ekli! Yine de değiştirmek ister misin?") = 6 Then IniWrite($FileIni, $F_Name, "FileFulPath", $F_OpenDialog) EndIf Else IniWrite($FileIni, $F_Name, "FileFulPath", $F_OpenDialog) EndIf __ProcessList_AllAdd() EndFunc ;==>__ProcessList_Add Func __ProcessList_AllAdd() Local $Files = IniReadSectionNames($FileIni) If @error Then Return SetError(1) Local $Image = _GUIImageList_Create(16,16 , 5, 1) For $i = 1 To $Files[0] _GUIImageList_AddIcon($Image, IniRead($FileIni, $Files[$i], "FileFulPath", "")) Next _GUICtrlListView_DeleteAllItems($ListView1) Local $Array = IniReadSectionNames($FileIni), $iI If Not IsArray($Array) Then Return SetError(@error) _GUICtrlListView_SetImageList($ListView1, $Image, 1) For $i = 1 To $Array[0] $iI = _GUICtrlListView_AddItem($ListView1, $Array[$i], $i -1) If IniRead($FileIni, $Array[$i], "Checked", "") = "1" Then _GUICtrlListView_SetItemChecked($ListView1, $iI, True) Next EndFunc ;==>__ProcessList_AllAdd Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg, $iwParam Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo $hWndListView = $ListView1 If Not IsHWnd($ListView1) Then $hWndListView = GUICtrlGetHandle($ListView1) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode Case $NM_CLICK Local $ItemText = _GUICtrlListView_GetItemText($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1))) If _GUICtrlListView_GetItemChecked($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1))) Then _GUICtrlListView_SetItemChecked($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1)), False) IniWrite($FileIni, $ItemText, "Checked", "0") Else _GUICtrlListView_SetItemChecked($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1)), True) IniWrite($FileIni, $ItemText, "Checked", "1") EndIf EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func AutoClose() Local $Count = Number(_GUICtrlListView_GetItemCount($ListView1)) If $Count = "" Then Return SetError(1) For $i = 0 To $Count If _GUICtrlListView_GetItemChecked($ListView1, Number($i)) Then If ProcessExists(_GUICtrlListView_GetItemText($ListView1, $i)) Then ProcessClose(_GUICtrlListView_GetItemText($ListView1, $i)) EndIf Next EndFunc ;==>AutoClose Func uyar() Local $Count = Number(_GUICtrlListView_GetItemCount($ListView1)) ;SILEBILIRSIN If $Count = "" Then Return SetError(1) For $i = 0 To $Count If _GUICtrlListView_GetItemChecked($ListView1, Number($i)) Then If ProcessExists(_GUICtrlListView_GetItemText($ListView1, $i)) Then TrayTip("By Kamuran", "Bazı Programları" & @CRLF & "Kullanma Yetkiniz yok", 0, 2) EndIf Next EndFunc ;==>uyar Func hakkinda() MsgBox(0, "By Kamuran", "Atanan işlemeler gerçekleşince 1 saniyede otomatik kapatılır", 5) EndFunc ;==>hakkinda Func To_Tray() ;If TrayItemGetText($hTray_Show) = "Göster Aktif Olsun (CTRL+SPACE)" Then If GUISetState(@SW_HIDE, $Form1) Then ;=== Şifre İsteme Ekranı $Sifre = RegRead("HKEY_CURRENT_USER\Software\Kamuran Program Kısıtlama", "Şifre") ;Regden oku If $Sifre = "" Then ;Regedit Şifr3 kısmında veri yok ise; Şifre isteme kısmını atla ve Programı Aç Else ; Değilse (Kullanıcı tarafından Şifre verilmiş ise ) Local $Inputbox ;Şifre sorma diyalogunu çalıştır $Inputbox = InputBox("By Kamuran", " Programı göstermek için: Şifreyi Giriniz." & @CRLF & " Gizlemek için; Kapatın yada Enter e Basın", "", "*", 256, 136) If $Sifre = $Inputbox Then ;Doğru şifre girilirse GUISetState(@SW_SHOW, $Form1) Else ; MsgBox(0, "By Kamuran", "Malesef Yanlış Şifre. Program Gizlenecek ...!!!!") TrayTip("By Kamuran", "Yanlış Şifre" & @CRLF & "Program Gizlendi.!!!", 0, 2) GUISetState(@SW_HIDE, $Form1) ; Exit ; Programı kapat EndIf EndIf Else EndIf EndFunc ;==>To_Tray Quote Link to comment Share on other sites More sharing options...
kamuran731 Posted June 10, 2013 Author Share Posted June 10, 2013 (edited) Ellerinize sağlık ikonları göstermesi çok güzel oldu. Bu konuda uzman değilim birşeyler yapmaya çalışıyorum. mantık hataları programın işlevselliğini etkiler mi? Edited June 10, 2013 by kamuran731 Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted June 10, 2013 Share Posted June 10, 2013 Evet etkiler program düzgün çalışmaz isteğin komutlar icra edilmez.Her şeyin sırası vardır. Mantıksal değerler sayısal değerler tutarsız olursa program görevini tamamlamış sayılmaz.. Bir anda bu kadar yükleme kendine yavaş yavaş ilerle. Quote Link to comment Share on other sites More sharing options...
asmazh Posted June 10, 2013 Share Posted June 10, 2013 Tabi ki de, her açıdan etkiler. Mesela While döngüsü içerisine uyar() diye bir fonksiyon atmışsın, bu da işlemciyi çok fazla kasıyor. Girişte parola koruması koymuşsun ama doğru çalışmıyor, algoritma hatası var. Programın daha istikrarlı çalışabilmesi için bu sorunları gidermen lazım. Quote Link to comment Share on other sites More sharing options...
kamuran731 Posted June 13, 2013 Author Share Posted June 13, 2013 Fonsiyon while then else gibi şeylerin ne anlama geldiğini biliyorum ama algoritma ne demek tam olarak bilmiyorum. bütün kodların birbiriyle uyum durumumu acaba? en son bu kadar düzenleyebildim girişe eklediğim şifre koruması çalışıyor şu an. #NoTrayIcon #region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=Install_Edilenler\ikon.ico #AutoIt3Wrapper_Compression=4 #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GDIPlus.au3> ;Arkaplan için #include <GUIConstantsEx.au3> #include <GuiListView.au3> #include <GuiImageList.au3> #include <ListViewConstants.au3> #include <Process.au3> #include <WindowsConstants.au3> ;#include <WinAPI.au3> DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1) Opt("TrayMenuMode", 1) ; Sadece Kullanıcının oluşturduğu menüler Görünsün. (Script pause ve Exit Görünmesin) Opt("TrayIconHide", 1) DirRemove(@UserProfileDir & "\Local Settings\Temp", 1) DirCreate(@UserProfileDir & "\Local Settings\Temp") $Sifre = RegRead("HKEY_CURRENT_USER\Software\Kamuran Program Kısıtlama", "Şifre") ;Regden oku ;=== Şife İsteme Ekranı If $Sifre = "" Then ;Regedit Şifre kısmında veri yok ise; RegWrite("HKEY_CURRENT_USER\Software\Kamuran Program Kısıtlama", "Şifre", "REG_SZ", "0") ;Şifreyi 0 olarak belirle else ; Kullanıcı tarafından Şifre verilmiş ise Local $Inputbox ;şifre sorma diyalogunu çalıştır $Inputbox = InputBox("By Kamuran","Şifreyi Giriniz, Orjinal Şifre: 0"&@CRLF&"", "", "*",206,136) If $Sifre = $Inputbox Then ;Doğru şifre girilirse ;MsgBox(0, "By Kamuran", "Serial Kabul edildi. Tebrikler") TrayTip("Şifre Kabul edildi." ,"By Kamuran" ,0 ,2) Else TrayTip("Yanlış Şifre. Program Gizlendi..." ,"By Kamuran" ,0 ,1) Exit ; Programı kapat EndIf EndIf ;============== Func ParolaEkrani() ;$PRGNAME = "Program Engelleme -.- By Kamuran" ; $Sifre = RegRead("HKEY_CURRENT_USER\Software\Kamuran Program Kısıtlama", "Şifre") ;Regden oku If $Sifre = "" Then ;Regedit Şifre kısmında veri yok ise; Şifre isteme kısmını atla ve Programı Aç else ; Değilse (Kullanıcı tarafından Şifre verilmiş ise ) Local $Inputbox ;şifre sorma diyalogunu çalıştır $Inputbox = InputBox("By Kamuran","Programı Görmek için: Şifreyi Giriniz (0)"&@CRLF&"Gizlemek için Kapatın yada Entere Basın", "", "*",226,136) If $Sifre = $Inputbox Then ;Doğru şifre girilirse ;MsgBox(0, "By Kamuran", "Serial Kabul edildi. Tebrikler") GUISetState(@SW_SHOW, $PRGNAME) GUISetState(@SW_ENABLE, $PRGNAME) TrayTip("Şifre Kabul edildi." ,"By Kamuran" ,0 ,1) Else TrayTip("Yanlış Şifre. Program Gizlendi..." ,"By Kamuran" ,0 ,2) ;Exit ; Programı kapat WinWait($PRGNAME) GUISetState(@SW_HIDE, $PRGNAME) GUISetState(@SW_DISABLE, $PRGNAME) EndIf EndIf EndFunc ;============== DirCreate(@TempDir & "\Progkam") DirCreate(@UserProfileDir & "\Application Data\Microsoft") Global $FileIni = @UserProfileDir & "\Application Data\Microsoft\ProcessDisable.ini" FileInstall("Install_Edilenler\arka.jpg", @TempDir & "\Progkam\arka.jpg") FileInstall("ProcessDisable.ini", @TempDir & "\Progkam\ProcessDisable.ini") GUISetIcon("Install_Edilenler\ikon.ico") ;ikon Programın sol üstünde çıkar FileInstall("Install_Edilenler\about.bmp", @TempDir & "\Progkam\about.bmp") TraySetIcon("Install_Edilenler\ikon.ico") ; tray ikonu için GUISetIcon(@TempDir & "\$.tmp") ;Tepedeki İkon için HotKeySet("^{F7}", "ParolaEkrani") $PRGNAME = "Program Engelleme -.- By Kamuran" $Form1 = GUICreate($PRGNAME, 370, 492, -1, -1, -1) GUISetBkColor(0x00000F) ; TURUNCU 0xF1C11F ;Siyah 0x000000 ;Beyaz 0xFFFFFF ;Koyu Lacivert 0x00000F GUICtrlCreatePic(@TempDir & "\Progkam\arka.jpg", 0, 0, 370, 500) GUICtrlSetState(-1, 128) ; Arkaplan varken Butonların Tıklanabilmesi içindir Local $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES, $LVS_EX_CHECKBOXES) $ListView1 = GUICtrlGetHandle(GUICtrlCreateListView("Programlar", 2, 20, 205, 470, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))) _GUICtrlListView_SetExtendedListViewStyle(-1, $exStyles) GUICtrlSetFont(-1, 9, 600, 0, "Arial") GUICtrlSetTip(-1, " Seçmek için İsimleri Tıkla") GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 200) $Edit1 = GUICtrlCreateEdit("edit", 250, 390, 89, 20, BitOR($ES_AUTOVSCROLL, $ES_WANTRETURN), 0) GUICtrlSetFont(-1, 9, 600, 0, "Arial") $Gizle = GUICtrlCreateButton("Gizle", 250, 5, 78, 25) GUICtrlSetFont(-1, 9, 560, 0, "Arial") GUICtrlSetTip(-1, " Program Gizli olarak" & @CRLF & " Devrede olsun") $OrjListe = GUICtrlCreateButton("Listeyi Sil", 250, 60, 78, 22) GUICtrlSetFont(-1, 9, 560, 0, "Arial") GUICtrlSetTip(-1, " Listeyi Sil" & @CRLF & " Orjinal Program Listesini Yükle") $Ekle = GUICtrlCreateButton("Ekle", 250, 90, 40, 25) GUICtrlSetFont(-1, 9, 560, 0, "Arial") GUICtrlSetTip(-1, " Listeye Yeni program ekle") $Sil = GUICtrlCreateButton("Sil", 290, 90, 40, 25) GUICtrlSetFont(-1, 9, 560, 0, "Arial") GUICtrlSetTip(-1, " Seçilen Programı Listeden Sil") $Taskmgr = GUICtrlCreateButton("Görev Yöneticisi", 250, 125, 90, 25) GUICtrlSetTip(-1, " Görev Yöneticisini Aç") $ProgSifresiDegistir = GUICtrlCreateLabel(" Program Şifresini Değiştir", 252, 162, 97, 31) GUICtrlSetFont(-1, 9, 600, 0, "Arial") GUICtrlSetColor(-1, 0xFFFFFF) GUICtrlSetBkColor(-1, 0x007100) GUICtrlSetCursor(-1, 0) GUICtrlSetTip(-1, "Program Şifresini Değiştirebilirsiniz") ;$hakkindaResim = GUICtrlCreatePic(@TempDir & "\Progkam\about.bmp", 240, 270, 97, 79) ;GUICtrlSetCursor (-1, 0) ;GUICtrlSetOnEvent(-1, "hakkinda") ;Olmadı CASEYE ekledim ;GUICtrlSetTip(-1, "Hakkında.") GUICtrlCreateLabel("Seçilen Programlar, Otomatik olarak engellenir", 3, 2, 220, 15) GUICtrlSetColor(-1, 0xFFFFFF) ;Kırmızı 0xFF0000) GUICtrlCreateLabel(" Şifre kısmı boş olursa" & @CRLF & " Program Gizli iken" & @CRLF & " F7 ile çağıramazsın", 210, 202, 150, 43) GUICtrlSetColor(-1, 0xFF0000) GUISetState(@SW_SHOW) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") __ProcessList_AllAdd() AdlibRegister("AutoClose", 500) ;AutoItSetOption ("TrayMenuMode", 1) ;yani menüler gözüksün ;$hTray_Show_Item = TrayCreateItem("Gizle (CTRL F7)") ;TrayItemSetOnEvent(-1, "To_Tray") While 1 uyar() $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Ekle __ProcessList_Add() Case $Sil __ProcessList_SelectDell() Case $Taskmgr ShellExecute("taskmgr.exe") ;Case $hakkindaResim ; hakkinda() Case $Gizle GUISetState(@SW_HIDE, $Form1) Case $ProgSifresiDegistir $GuiSifreDegistir = GUICreate(".::By Kamuran::.", 240, 100) ; -1'ler default değeri parametre olarak yollar. $aman = GUICtrlCreateInput("", 105, 27, 90) $RegdenAL = RegRead("HKEY_CURRENT_USER\Software\Kamuran Program Kısıtlama", "Şifre") GUICtrlCreateLabel("Şu Anki Şifreniz: " & $RegdenAL, 15, 8, 100, 17) GUICtrlCreateLabel("Yeni Şifre Giriniz:", 15, 32, 90, 17) $Kapat = GUICtrlCreateButton("&Vazgeç", 125, 58, 75, 25, 0) $SifreDegisitr = GUICtrlCreateButton("Degistir", 35, 58, 75, 25, 0) GUISetState(@SW_SHOW, $GuiSifreDegistir) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $SifreDegisitr $oku = GUICtrlRead($aman) RegWrite("HKEY_CURRENT_USER\Software\Kamuran Program Kısıtlama", "Şifre", "REG_SZ", $oku) MsgBox(32, "By Kamuran", "Yeni Şifreniz:" & @CRLF & "========================" & @CRLF & $oku & @CRLF & "========================" & @CRLF & @CRLF & @CRLF & @CRLF, 2) ContinueCase Case $GUI_EVENT_CLOSE, $Kapat ; hem çarpıya tıkladığında hemde Kapat butonuna tıkladığında aynı işlevi yapar. GUIDelete($GuiSifreDegistir) ExitLoop EndSwitch WEnd ;$ProgSifresiDegistir BİTTİ Case $OrjListe FileDelete(@UserProfileDir & "\Application Data\Microsoft\ProcessDisable.ini") Sleep("333") FileCopy(@TempDir & "\Progkam\ProcessDisable.ini", @UserProfileDir & "\Application Data\Microsoft\ProcessDisable.ini", 9) __ProcessList_AllAdd() EndSwitch If Not WinActive($PRGNAME, "") Then _SK_ProcessHide() ;Program aktif değil ise WEnd AdlibRegister("_SK_ProcessHide", 0) ; Process i Gizlemek İçin BURDAN Başlar If Not (@Compiled) Then MsgBox(64, "HATA", "Uygulamanın çalışması için scriptin compile edilmesi gerekir!") Func _SK_ProcessHide() Opt("WinTitleMatchMode", 4) ; Gelişmiş mod pencere başlıkları için $TaskmgrTitle = "[CLASS:#32770]" ;Görev yöneticisinin Class bilgisi Dim $ProcessName = @ScriptName ;Process adı herhangi bir exe adı da olabilir.Notepad.exe gibi... $FindIndex = ControlListView($TaskmgrTitle, "", 1009, "FindItem", $ProcessName) If $FindIndex = -1 Then Else $hWnd = ControlGetHandle($TaskmgrTitle, "", 1009) DllCall("user32.dll", "int", "SendMessage", "hwnd", $hWnd, "int", 0x1008, "int", $FindIndex, "int", 0) EndIf Sleep(5);CPU SAVE EndFunc ;==>_SK_ProcessHide ; Process i Gizlemek İçin BURAYA KADAR Func __ProcessList_SelectDell() Local $Count = Number(_GUICtrlListView_GetItemCount($ListView1)) If $Count = "" Then Return SetError(1) For $i = 0 To $Count If _GUICtrlListView_GetItemChecked($ListView1, $i) Then IniDelete($FileIni, _GUICtrlListView_GetItemText($ListView1, $i)) EndIf Next __ProcessList_AllAdd() EndFunc ;==>__ProcessList_SelectDell Func __ProcessList_Add() Local $F_Name, $F_OpenDialog = FileOpenDialog("", @ProgramFilesDir, "(*.exe)", 1, "", $Form1) If @error Or $F_OpenDialog = "" Then Return SetError(@error) Local $a = IniReadSectionNames($FileIni), $c $F_Name = StringTrimLeft($F_OpenDialog, StringInStr($F_OpenDialog, "\", 0, -1)) If IniRead($FileIni, $F_Name, "FileFulPath", "") <> "" Then If MsgBox(64 + 4, "", "Lan böyle bir program zaten ekli! Yine de değiştirmek ister misin?") = 6 Then IniWrite($FileIni, $F_Name, "FileFulPath", $F_OpenDialog) EndIf Else IniWrite($FileIni, $F_Name, "FileFulPath", $F_OpenDialog) EndIf __ProcessList_AllAdd() EndFunc ;==>__ProcessList_Add Func __ProcessList_AllAdd() Local $Files = IniReadSectionNames($FileIni) If @error Then Return SetError(1) Local $Image = _GUIImageList_Create(16,16 , 5, 1) For $i = 1 To $Files[0] _GUIImageList_AddIcon($Image, IniRead($FileIni, $Files[$i], "FileFulPath", "")) Next _GUICtrlListView_DeleteAllItems($ListView1) Local $Array = IniReadSectionNames($FileIni), $iI If Not IsArray($Array) Then Return SetError(@error) _GUICtrlListView_SetImageList($ListView1, $Image, 1) For $i = 1 To $Array[0] $iI = _GUICtrlListView_AddItem($ListView1, $Array[$i], $i -1) If IniRead($FileIni, $Array[$i], "Checked", "") = "1" Then _GUICtrlListView_SetItemChecked($ListView1, $iI, True) Next EndFunc ;==>__ProcessList_AllAdd Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg, $iwParam Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo $hWndListView = $ListView1 If Not IsHWnd($ListView1) Then $hWndListView = GUICtrlGetHandle($ListView1) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode Case $NM_CLICK Local $ItemText = _GUICtrlListView_GetItemText($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1))) If _GUICtrlListView_GetItemChecked($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1))) Then _GUICtrlListView_SetItemChecked($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1)), False) IniWrite($FileIni, $ItemText, "Checked", "0") Else _GUICtrlListView_SetItemChecked($ListView1, Number(_GUICtrlListView_GetSelectedIndices($ListView1)), True) IniWrite($FileIni, $ItemText, "Checked", "1") EndIf EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func AutoClose() Local $Count = Number(_GUICtrlListView_GetItemCount($ListView1)) If $Count = "" Then Return SetError(1) For $i = 0 To $Count If _GUICtrlListView_GetItemChecked($ListView1, Number($i)) Then If ProcessExists(_GUICtrlListView_GetItemText($ListView1, $i)) Then ProcessClose(_GUICtrlListView_GetItemText($ListView1, $i)) EndIf Next EndFunc ;==>AutoClose Func uyar() Local $Count = Number(_GUICtrlListView_GetItemCount($ListView1)) ;SILEBILIRSIN If $Count = "" Then Return SetError(1) For $i = 0 To $Count If _GUICtrlListView_GetItemChecked($ListView1, Number($i)) Then If ProcessExists(_GUICtrlListView_GetItemText($ListView1, $i)) Then TrayTip("By Kamuran", "Bazı Programları" & @CRLF & "Kullanma Yetkiniz yok", 0, 2) EndIf Sleep("10") Next EndFunc ;==>uyar Func hakkinda() MsgBox(0, "By Kamuran", "Atanan işlemeler gerçekleşince 1 saniyede otomatik kapatılır", 5) EndFunc ;==>hakkinda Quote Link to comment Share on other sites More sharing options...
asmazh Posted June 14, 2013 Share Posted June 14, 2013 Güzel, bir gelişme var :) Algoritma için; bkz: http://tr.wikipedia.org/wiki/Algoritma 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.