Jump to content

asmazh

Üye
  • Posts

    377
  • Joined

  • Last visited

Posts posted by asmazh

  1. Koda Form Designer'ı biraz incelesen istediğin şeyi yaparsın. Misal:

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 615, 437, 192, 124, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    	EndSwitch
    WEnd
    
    
    
  2. Dosyalar sistem kullanıcısı sahipliğinde olduğundan direk erişiminiz engelleniyor.

    TAKEOWN /F C:\* komutu ile tüm dosyaların sahipliğini alabilirsiniz fakat kesinlikle önermem!

    Bu güvenlik önlemi, birçok virüsün sisteminizi ele geçirmesini engelliyor.

     

    Ben de önermem lakin, zeki bir virüs bu engeli çok kolay bir şekilde aşar. Mesele değil.

  3. 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.

  4. 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
    
    
  5. 
    _WinKill("adsız")
    
    Func _WinKill($Title)
    
    	Local $WinList = WinList(), $T, $TT
    	If @error Or Not IsArray($WinList) Then Return SetError(@error)
    
    	For $i = 1 To $WinList[0][0]
    
    		If $WinList[$i][0] <> "" And IsVisible($WinList[$i][1]) Then
    			If StringInStr($WinList[$i][0], $Title) Then WinKill($WinList[$i][0])
    		EndIf
    
    	Next
    
    EndFunc
    
    Func IsVisible($handle)
        If BitAND(WinGetState($handle), 2) Then
            Return 1
        Else
            Return 0
        EndIf
    
    EndFunc   ;==>IsVisible
    
  6. 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
    
    
  7. 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
    
  8. İş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.

  9. #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
    
    
  10. #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("AutoTick", 378, 146, -1, -1)
    $Button1 = GUICtrlCreateButton("Koordinat belirle", 8, 8, 107, 21)
    $Input1 = GUICtrlCreateInput("", 9, 40, 106, 21)
    $Input2 = GUICtrlCreateInput("", 128, 24, 41, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
    $Graphic1 = GUICtrlCreateGraphic(8, 72, 361, 1)
    GUICtrlSetColor(-1, 0x004000)
    $Label1 = GUICtrlCreateLabel("saniyede bir", 176, 28, 60, 17)
    $Combo1 = GUICtrlCreateCombo("", 248, 24, 73, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, "1) Sol (Tek)|2) Sol (Çift)|3) Sağ")
    $Label2 = GUICtrlCreateLabel("tıkla.", 336, 28, 26, 17)
    $Button2 = GUICtrlCreateButton("Başla", 8, 80, 75, 25)
    $Button3 = GUICtrlCreateButton("Dur", 88, 80, 75, 25)
    $Label3 = GUICtrlCreateLabel("Basit bir örnektir. Çeşitlendirilebilir. AsmazH", 8, 120, 203, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    Global $Coor, $TickStyle
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $Button1
    			GUICtrlSetState($Button1, $GUI_DISABLE)
    
    			_CoorToMake()
    
    			GUICtrlSetData($Input1, $Coor[0] & ";" & $Coor[1])
    			GUICtrlSetState($Button1, $GUI_ENABLE)
    			If Not WinActive($Form1, "") Then WinActivate($Form1, "")
    		Case $Button2
    			If Not IsArray($Coor) Or _
    			   GUICtrlRead($Input2) = "" Or _
    			   GUICtrlRead($Combo1) = "" Then
    
    			   MsgBox(0, "", "kardeş önce gerekli ayarları gir. yok öyle 3 kuruşa 5 köfte. (ne alakaysa :))", $Form1)
    		   Else
    			   $TickStyle = Number(StringLeft(GUICtrlRead($Combo1), 1))
    			   AdlibRegister("_StartTick", Number(GUICtrlRead($Input2)) * 1000)
    		   EndIf
    	   case $Button3
    		   AdlibUnRegister("_StartTick")
    
    	EndSwitch
    WEnd
    
    
    Func _CoorToMake()
    
    	While _IsPressed("01") <> 1
    
    		Sleep(5)
    		ToolTip("Belirtmek istediğiniz koordinatın üstüne gidin" & @CRLF & "ve fare ile sol tıklayın.")
    
    	WEnd
    
    	ToolTip("")
    	$Coor = MouseGetPos()
    
    EndFunc
    
    Func _StartTick()
    
    	If $TickStyle = 1 Then
    		MouseClick("left",  $Coor[0], $Coor[1], 1, 0)
    	ElseIf $TickStyle = 2 Then
    		MouseClick("left",  $Coor[0], $Coor[1], 2, 0)
    	Else
    		MouseClick("right",  $Coor[0], $Coor[1], 1, 0)
    	EndIf
    
    EndFunc
    
    

    Aha da böyle bir şey karaladım. İstediğin gibi bir şey yapman dileğiyle.

  11.  

     

    Veriyor kardeşim vermez olur mu :)

     

    Tarayıcıyı kullanarak paylaşma
    1. Paylaşmak istediğiniz dosyayı seçin.

    2. Alt bölmedeki seçim düğmesini Genel konumuna getirin. Bu düğme, Paylaş düğmesini tıklattığınızda kullanımınıza sunulur.

       web-share-improved.png
    3. Dosya bağlantısı alanında görünen bağlantıyı kopyalayın.

     

     

    Demek istediğim bu değil. Direkt link, yani tarayıcının arama kısmına yapıştırıp "enter"lediğimde direk indirme işlemi başlayacak. İndirme butonuna falan basmayacağım. Yani sunucudaki dosyanın uzantısını direk versin istiyorum :)

    Yine de teşekkür ederim.

×
×
  • Create New...