Jump to content
Son zamanlarda artan kullanıcı hesap hırsızlıkları sebebiyle tüm kullanıcılara şifre sıfırlama maili gönderilmiştir. Lütfen güveli şifreler seçiniz. Mevcut e-mail adresinize erişemiyorsanız, en aşağıdaki destek linkinden bize ulaşınız. ×

Tnc Screen Capture


SimpsoN_Bart
 Share

Recommended Posts

[font="Tahoma"]Bu projeyi uzun zaman önce hazırlamıştım o zaman kimsenin böyle bir çalışması yoktu.Şimdilerde modası geçti ama ufak birkaç düzenleme ile yayınlamaya karar verdim.Umarım yararlı olur.[/font]

[font="Tahoma"][color="#ff0000"]Nedir Tnc Screen Capture v1.0 ?[/color][/font]
[font="Tahoma"]Bu program hızlı bir şekilde ekran görüntüsü almaya ve anında kaydetme özelliğine sahiptir.[/font]

[font="Tahoma"][color="#ff0000"]Gerekli Açıklamalar:[/color][/font]
[font="Tahoma"]Programın isteğiniz gibi ayarlarını yapıp kaydedebilirsiniz.Yaptığını ayarlar .ini dosyasında kaydedilir.[/font]
[font="Tahoma"]Kullanımı Basittir ve Günlük Hayatınızda Çok işinize Yarar.[/font]
[font="Tahoma"]Basit bir arayüze sahiptir ve kullanıcı dostudur.[/font]
[font="Tahoma"]Portabledir.Kurulum yapmanıza gerek yoktur.[/font]
[font="Tahoma"]Program Autoit v3.3.6.1 Script ile hazırlanmıştır.[/font]
[font="Tahoma"]Boyutu yaklaşık olarak 439 KB'dir.[/font]
[font="Tahoma"]Program Tnctr kullanıcıları için hazırlanmıştır.[/font]
[font="Tahoma"]Yeni başlayanlar için kaynak kodları da koydum ama (ç)alıntı yapmazsanız sevinirim.[/font]
[font="Tahoma"]GUI Design ve Programming SimpsoN_Bart[/font]

[font="Tahoma"][color="#ff0000"]Tnc Screen Capture v1.0 Sürüm Notları ve Özellikler:[/color][/font]
[font="Tahoma"]1- İlk sürüm çıkarıldı.[/font]

[font="Tahoma"]2 - Kapanış Efekti[/font]
[font="Tahoma"]3 - Seçenekler bölümünde Resimlerin Kayıt yeri , Kayıt biçimi ve diğer önemli ayarlar.Ayrıca bkz.[/font]
[font="Tahoma"]4 - Yapılan bu ayarların .ini dosyasında kaydedilmesi.[/font]
[font="Tahoma"]5 - Ana pencerede görünen pencere adları ve handle değerleri.[/font]
[font="Tahoma"]6 - Seçilen pencereye hızlı bir şekilde ekran görüntüsü alma.([/font][font="Tahoma"]Gizli pencerelere de buna dahil[/font][font="Tahoma"])[/font]
[font="Tahoma"]7 - Çekilen resimlerde adlandırmaların pencere adı ve yıl, ay, gün, saat, dakika, zaman ile olması.[/font]
[font="Tahoma"]8 - [/font][font="Tahoma"]ESC Tuşu ile kolayca programı kapatma[/font][font="Tahoma"] .[/font]
[font="Tahoma"]9 - [/font][font="Tahoma"]XP,VISTA,WIN7 platforumlarında çalışabilme gibi işlevleri bulunmaktadır.[/font]

[font="Tahoma"]JPG Kalitesi konusunda uğraşan dostum MostWanted'a ve Büyük Üstad Blue_life Teşekkür Ederim.
[/font]
[font="Tahoma"][color="#ff0000"]Programdan Görüntüler:[/color][/font]
[color="#445563"][font="Tahoma"][img]http://i.imgur.com/b6j5V.png[/img][/font][/color]
[color="#445563"]
[font="Tahoma"][img]http://i.imgur.com/8p9C0.png[/img][/font][/color]
[color="#445563"]
[font="Tahoma"][img]http://i.imgur.com/KOUoM.png[/img][/font][/color]

[color="#445563"][font="Tahoma"]İndirme Linki[/font][/color]
[color="#445563"][font="Tahoma"][code]https://www.box.com/s/8a83f68ce117f4a85c1f[/code][/font][/color]
[color="#445563"]
[font="Tahoma"][img]http://i.imgur.com/v7AIV.png[/img]
[/font][/color] Edited by SimpsoN_Bart
Link to comment
Share on other sites

[color="#8B0000"][font="Lucida Sans Unicode"]Geliştirirsen güzel birşey çıkar. Bunu beraber geliştirelim. Ama senin gibi bi grafikere böyle GUI yakışmıyor :) Daha güzel bi arayüz bekliyoruz senden.[/font][/color]

Link to comment
Share on other sites

[font="Tahoma"]Bununla çok zaman kaybettim zaten bayağı geliştirmeyi düşünüyordum ama demode oldu artık diğer çalışmalara da zaman ayırmalıyım.GUI Konusunda evet basit oldu bende farkındayım ama dediğim gibi sürüm çıkarmayacağım kaynak kodları pakette mevcut senin gibi işin mantığını çözen adamlar gelişttirsin artık :)[/font]

Link to comment
Share on other sites

[font="Tahoma"]MOTUN Hocam evet bende farkettim öyle bir hata mevcut, ilk sürüm hatalar var zaten böyle dandik hataların farkında olduğum için projeyi bu şekilde yarıda bırakarak paylaştım.Eğer rağbet ve gerçekten ihtiyaç olursa ilerki zamanlarda vaktim olduğunca hataları gidermeye çalışırım.Ama şuan gerçekten bu proje için yapacağım bişe yok gibi :([/font]

[font="Tahoma"]Not : Bu hatayı akşam işlerimi halledince adüzeltirim.[/font]

Link to comment
Share on other sites

[font="Tahoma"]Teşekkürler Hocam şimdi farkettim önce isteğiniz yere klasör oluşturun sonra .ini dosyasından oluşturduğunuz yolun sonuna \ koyun sorun kalkıyor.[/font]
[font="Tahoma"]Misal Directory=C:\Users\ASUS\Desktop\sdadadasd\ klasörünün içine atıyor görüntüleri hallederiz onu ufak bir sorun. :)[/font]

Link to comment
Share on other sites

[font="Tahoma"]Aklımda olan fikirlerdi bunlar ama dediğim gibi çok zaman ayırdım buna pek üzerine gitmem diye düşünüyorum.Ona bakarsan ben çekilen resmi birkaç sunucuya upload da yaptıracaktım ama hikaye oldu :)[/font]

Link to comment
Share on other sites

  • 8 ay sonra...
Arkadaşlar konu devam ediyor mu? Mesela resim almak istediğimiz programın koordinatlarını girsek. ve o koordinatları alsa olmaz mı?

 

Aga naaptın yaa? :blink: program sanki pasifik okyanusunda da koordinat girip ekran görüntüsünü alacan :D açık olan program pencerelerini tanıyormuş zaten program ona göre ekran görüntüsünü verir. Koordinat ve elle seçme derdi yok. Umarım yanlış anlamadım demek istediğini....

Link to comment
Share on other sites

Arkadaşlar konu devam ediyor mu? Mesela resim almak istediğimiz programın koordinatlarını girsek. ve o koordinatları alsa olmaz mı?

 

O dediğin özellik bu programda yok gülüm ya :D Program sadece windows pencerelerin görüntüsünü alıp kaydediyor. Senin dediğin olay sanırım elle seçim şeklinde yani mouse wrap onu da belirli alanları kendin seciyorsun sonra kaydediyor.Bu özelliği programa koymadım ama kodlamada birine yardım ettiğimi hatırlıyorum.Kadim dostum DivaneTR nin konularına bakarsan isteğin özellikli programı bulabilirsin.

Edit : Program ismi Ekran Alıntı aracı gibi bişey olması lazımdı.

 

 

Aga naaptın yaa? :blink: program sanki pasifik okyanusunda da koordinat girip ekran görüntüsünü alacan :D açık olan program pencerelerini tanıyormuş zaten program ona göre ekran görüntüsünü verir. Koordinat ve elle seçme derdi yok. Umarım yanlış anlamadım demek istediğini....

 

Yalnız pasifik okyanusu iyiydi :D

Edited by SimpsoN_Bart
Link to comment
Share on other sites

  • 1 yıl yıl...
  • 5 hafta sonra ...

Tnc screen capture güzel düşünülmüş bir çalışma olmuş .

 

belirli alanın resmini  almaya yarayan

örnek bir kod.

 

prtsc tuşu ile ekran görüntüsünü alıyorsunuz seçim alanı kendinize göre ayarlayabiliyorsunuz.

[spoiler]




#include <WindowsConstants.au3>
#include <Misc.au3>
#include <WinAPI.au3>
#include <ScreenCapture.au3>
#include <ClipBoard.au3>
#include <ColorConstants.au3>
#include <Constants.au3>

; Settings
Global $_fShowMousePos = True, $_fShowRectSize = True, $_fHideDesktop = False, $_fHideTaskBar = False

If HotKeySet("{PRINTSCREEN}", "resimal") = 0 Then
	MsgBox($MB_SYSTEMMODAL, "", "kısayol anahtarı kullanılmadı!")	
Exit 1
EndIf

HotKeySet("^+{3}", "resimal") ;PrintScreen

While 1
    Sleep(10000) ;10 sec
WEnd

Func resimal()
    Local $iX1 = 0, $iY1 = 0, $iX2 = 0, $iY2 = 0
    Local $hGUICapture = 0

    Mark_Rect($hGUICapture, $iX1, $iY1, $iX2, $iY2)

    Local $hBitmap = _ScreenCapture_CaptureWnd(@YEAR&@MIN&@SEC&".jpg", $hGUICapture, $iX1, $iY1, $iX2, $iY2, False)
    GUIDelete($hGUICapture)

    Local $fOpenCb = _ClipBoard_Open(0)
	If Not $fOpenCb Then
		MsgBox($MB_SYSTEMMODAL, "", "Kopyalama panosuna eklenmedi !")
		Return False
	EndIf

    _ClipBoard_Empty()

    Local $hBitmap3 = _WinAPI_CopyImage($hBitmap, 0, 0, 0, BitOR($LR_COPYDELETEORG, $LR_COPYRETURNORG))
    _WinAPI_DeleteObject($hBitmap)

    _ClipBoard_SetDataEx($hBitmap3, $CF_BITMAP)
    _ClipBoard_Close()

    _WinAPI_DeleteObject($hBitmap3)
EndFunc   ;==>Example

Func Mark_Rect(ByRef $hGUICapture, ByRef $iX1, ByRef $iY1, ByRef $iX2, ByRef $iY2)
    Local $iX_Pos = 0, $iY_Pos = 0, $iTemp = 0, $iWidth = 0, $iHeight = 0
    Local $hMask_1 = 0

    Local $hWnd = WinGetHandle("[TITLE:Program Manager;CLASS:Progman]")
    Local $aWgp = WinGetPos($hWnd)

	If $_fHideDesktop Then
		ControlHide($hWnd, "", "[CLASS:SysListView32; INSTANCE:1]")
	EndIf

	If $_fHideTaskBar Then
		WinSetState("[CLASS:Shell_TrayWnd]", "", @SW_HIDE)
		WinSetState("[CLASS:Button]", "", @SW_HIDE)
	EndIf

    Local $hBitmap = _ScreenCapture_Capture("", $aWgp[0], $aWgp[1], $aWgp[2], $aWgp[3])

	Local $aSize[2] = [$aWgp[2], $aWgp[3]]
	$aWgp = 0

    $hGUICapture = GUICreate("", $aSize[0], $aSize[1], 0, 0, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_APPWINDOW, $WS_EX_TOPMOST))
    GUISetCursor($IDC_CROSS, 1, $hGUICapture)

    If $__g_iGDIPRef = 0 Then
        _GDIPlus_Startup()
    EndIf

    Local $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUICapture)

    Local $hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
    _WinAPI_DeleteObject($hBitmap)

    WinSetTrans($hGUICapture, "", 0)

    GUISetState(@SW_SHOWNOACTIVATE, $hGUICapture)

    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)

    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)

    If $__g_iGDIPRef > 1 Then
        _GDIPlus_Shutdown()
    EndIf

    WinSetTrans($hGUICapture, "", 255)

	If $_fHideTaskBar Then
		WinSetState("[CLASS:Button]", "", @SW_SHOWNOACTIVATE)
		WinSetState("[CLASS:Shell_TrayWnd]", "", @SW_SHOWNOACTIVATE)
	EndIf

	If $_fHideDesktop Then
		ControlShow($hWnd, "", "[CLASS:SysListView32; INSTANCE:1]")
	EndIf

    Local $hGUIRect = GUICreate("", $aSize[0], $aSize[1], 0, 0, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
    GUISetBkColor($COLOR_BLACK)
    GUISetCursor($IDC_CROSS, 1, $hGUIRect)

    _GUICreateInvRect($hGUIRect, $aSize, $hMask_1, 0, 0, 1, 1)

    WinSetTrans($hGUIRect, "", 75)
    GUISetState(@SW_SHOWNOACTIVATE, $hGUIRect)

    Local $hUserDLL = DllOpen("user32.dll")
    Local $aMgp = 0
    Local $fExitLoop = False

    ; Wait until mouse button pressed
    While Not _IsPressed("01", $hUserDLL) And Not $fExitLoop
        If $_fShowMousePos Then
            $aMgp = MouseGetPos()
            ToolTip("x: " & $aMgp[0] & ", y: " & $aMgp[1], _
                    $aMgp[0] + ($aMgp[0] > 100 ? -95 : 10), _
                    $aMgp[1] + ($aMgp[1] > 50 ? -35 : 10))
        EndIf

        Sleep(10)
        If _IsPressed("1B", $hUserDLL) Then $fExitLoop = True
    WEnd

    If $_fShowMousePos Then
        ToolTip("")
    EndIf

    ; Get first mouse position
    $aMgp = MouseGetPos()
    $iX1 = $aMgp[0]
    $iY1 = $aMgp[1]

    ; Draw rectangle while mouse button pressed
    While _IsPressed("01", $hUserDLL) And Not $fExitLoop
        $aMgp = MouseGetPos()

        ; Set in correct order if required
        If $aMgp[0] < $iX1 Then
            $iX_Pos = $aMgp[0]
            $iWidth = $iX1 - $aMgp[0]
        Else
            $iX_Pos = $iX1
            $iWidth = $aMgp[0] - $iX1
        EndIf
        If $aMgp[1] < $iY1 Then
            $iY_Pos = $aMgp[1]
            $iHeight = $iY1 - $aMgp[1]
        Else
            $iY_Pos = $iY1
            $iHeight = $aMgp[1] - $iY1
        EndIf

        _GUICreateInvRect($hGUIRect, $aSize, $hMask_1, $iX_Pos, $iY_Pos, $iWidth, $iHeight)

        If $_fShowRectSize Then
            ToolTip("w: " & Abs($aMgp[0] - $iX1) & ", h: " & Abs($aMgp[1] - $iY1), _
                    $aMgp[0] + ((($aMgp[0] > $aSize[0] - 100 Or ($aMgp[0] - $iX1 < 0 And $aMgp[1] - $iY1 < 0)) And $aMgp[0] > 100) ? -95 : 10), _
                    $aMgp[1] + ((($aMgp[1] > $aSize[1] - 40 Or ($aMgp[0] - $iX1 < 0 And $aMgp[1] - $iY1 < 0)) And $aMgp[1] > 40) ? -35 : 10))
        EndIf

        Sleep(10)
        If _IsPressed("1B", $hUserDLL) Then $fExitLoop = True
    WEnd

    If $_fShowRectSize Then
        ToolTip("")
    EndIf

    _WinAPI_DeleteObject($hMask_1)

    ; Get second mouse position
    $iX2 = $aMgp[0]
    $iY2 = $aMgp[1]

    ; Set in correct order if required
    If $iX2 < $iX1 Then
        $iTemp = $iX1
        $iX1 = $iX2
        $iX2 = $iTemp
    EndIf
    If $iY2 < $iY1 Then
        $iTemp = $iY1
        $iY1 = $iY2
        $iY2 = $iTemp
    EndIf

    GUIDelete($hGUIRect)
    DllClose($hUserDLL)
EndFunc   ;==>Mark_Rect

Func _GUICreateInvRect($hWnd, $aSize, ByRef $hMask_1, $iX, $iY, $iW, $iH)
    Local $hMask_2 = 0, $hMask_3 = 0, $hMask_4 = 0

    $hMask_1 = _WinAPI_CreateRectRgn(0, 0, $aSize[0], $iY)
    $hMask_2 = _WinAPI_CreateRectRgn(0, 0, $iX, $aSize[1])
    $hMask_3 = _WinAPI_CreateRectRgn($iX + $iW, 0, $aSize[0], $aSize[1])
    $hMask_4 = _WinAPI_CreateRectRgn(0, $iY + $iH, $aSize[0], $aSize[1])

    _WinAPI_CombineRgn($hMask_1, $hMask_1, $hMask_2, 2)
    _WinAPI_CombineRgn($hMask_1, $hMask_1, $hMask_3, 2)
    _WinAPI_CombineRgn($hMask_1, $hMask_1, $hMask_4, 2)

    _WinAPI_DeleteObject($hMask_2)
    _WinAPI_DeleteObject($hMask_3)
    _WinAPI_DeleteObject($hMask_4)

    _WinAPI_SetWindowRgn($hWnd, $hMask_1, 1)
EndFunc   ;==>_GUICreateInvRect

 
[/spoiler]

Edited by mesale0077
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...