1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. wolkenloser

Beiträge von wolkenloser

  • Rechteck mit Mouse erstellen

    • wolkenloser
    • 20. Januar 2006 um 14:50

    Hi Pastl,

    Ich habe mal versucht die Funktion auszuführen,
    bei mir tut sich damit aber nichts hinsichtlich des GUMMIBANDES....

    es kommt das Infofenster und der Kreuzcursor...sofern die Dll im Scriptverzeichnis liegt wird auch ein Screenshot erstellt, aber wie gesagt, keine Gummiband.....

    mach ich was falsch ?

  • Grafik in die Zwischanablage

    • wolkenloser
    • 18. Januar 2006 um 20:05

    @pastl

    Hab gerade gesehen, die Idee mit dem Icon Menue hattest Du auch schon :)

  • Grafik in die Zwischanablage

    • wolkenloser
    • 18. Januar 2006 um 19:54
    Zitat

    Original von pastl
    Hallo wolke,

    nur schade, das das ganze nicht für die normale Zwischenablage ("Einfügen" in ein anderes dir).

    Wenn ich den (verunglückten:-) Satzbau richtig verstanden habe,fehlt Dir die Möglichkeit im Screenshotverzeichnis etwas abzulegen ??

    Die Methode mit der Zwischenablage benötigt doch ein vorher abgelegtes Bild welches dann in die Zwischenablage kopiert wird.
    Du kannst Doch vorher festlegen, das es im Screenshootordner abgelegt wird und dann diese Grafik fürs kopieren in die Zwischenablage vorsehen.

    Ich werde mal sehen ob ich es zeitlich hinbekomme, dann versuche ich mal dein und mein Script zu transformieren.
    Was mir auffiel, das bei mir das Speicher als JPG (mit zb. 80% Qualität) nicht klappt, es wird einfach kein Bild erzeugt wird.

    Ich hatte noch versucht ein Kontextmenue im ICON einzubauen. Bin mir aber noch nicht ganz im Klaren ob ichdie Einstellungen mittels Registry oder INI Datei ablege.

    Ich stell mal meine Rohfassung hier rein:

    Code
    #include <Misc.au3>
    #Include <process.au3>
    #Include <Constants.au3>
    #NoTrayIcon
    
    
    FileInstall("C:\Dokumente und Einstellungen\dmeyer\Desktop\AU3\capture Screen\captdll.dll", @ScriptDir & "",0)
    Opt("TrayMenuMode",1)	; Default tray menu items (Script Paused/Exit) will not be shown.
    AutoItSetOption ( "MouseCoordMode", 1 )
    
    
    ;Variablen
    dim $pos_start
    dim $pos_stop
    
    
    
    
    $capture_dir = @TempDir & ""
    $capture_file_fullscreen = "capture_full_screen.bmp"
    $capture_file_partial = "capture_partial_screen.jpg"
    $capture_path_full = $capture_dir & $capture_file_fullscreen
    $capture_path_partial = $capture_dir & $capture_file_partial
    
    
    ; Traymenue
    $settingsitem	= TrayCreateMenu("Settings")
    $folderitem	= TrayCreateItem("Screenshot Ordner", $settingsitem); Einstellen des Screenshootordners  AN/AUS
    $messungsitem	= TrayCreateItem("X/Y Messung", $settingsitem); YX Anzeige zum Ausmessen von Positionen z.B in Window - nützlich für GUI feintuning
    $qualityitem = TrayCreateItem("Qualitätseinstellung", $settingsitem); Qualitätseinstellung für die Auswahl
    TrayCreateItem("");Trennstrich
    $aboutitem		= TrayCreateItem("About")
    TrayCreateItem("")
    $exititem		= TrayCreateItem("Exit")
    
    
    TraySetState()
    TraySetClick(16)
    TraySetToolTip('Taste "DRUCK" löst einen Screenshot mit Bereichswahl aus')
    
    
    ;RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\EXEL\
    $qualitaet = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\EXEL\Screenshot-Tool", "Qualität")
    $hotkey_partial = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\EXEL\Screenshot-Tool", "hotkey_partial")
    
    
    if $qualitaet = "" Then $qualitaet = 100
    if $hotkey_partial = "" Then $hotkey_partial = "{PRINTSCREEN}"
    
    
    while 1
    
    HotKeySet($hotkey_partial, "Capture_start")
    $msg = TrayGetMsg()
    	Select
    		Case $msg = 0
    			ContinueLoop
    		Case $msg = $qualityitem
    				Qualitaetseinstellung()
    		Case $msg = $aboutitem
    			Msgbox(64,"About:","Screenshot Tool @Detlef Meyer")
    		Case $msg = $exititem
    			ExitLoop
    	EndSelect
    
    
    WEnd
    
    
    
    
    Func Qualitaetseinstellung()
    $qualitaet = InputBox("Qualitätseinstellung","Voreingestellter Wert ist:" & $qualitaet & @LF & "Bitte einen Wert einstellen, 100 ist die maximale Qualität")
    if $qualitaet ="" Then $qualitaet = 100
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\EXEL\Screenshot-Tool", "Qualität","REG_SZ", $qualitaet)
    EndFunc
    
    
    
    
    
    
    
    
    Func Capture_start()
    $qualitaet = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\EXEL\Screenshot-Tool", "Qualität")
    
    
    ;~ if $qualitaet < 100 Then Global $capture_file_partial = "capture_partial_screen.jpg"
    
    
    
    
    $dll = DllOpen("user32.dll")
    
    
    ; Capture full screen
    ; Fist parameter - filename, last - jpeg quality. 
    DllCall("captdll.dll", "int", "CaptureScreen", "str", $capture_path_full, "int", 100); Qualität sollte hier 100 bleiben
    
    
    SplashTextOn('Screenshot Tool', 'Bitte Markieren sie einen Bereich mit  gedrückter "linker" Maustaste ',400,200, 10,10)
    sleep(1000)
    SplashOff()
    
    
    SplashImageOn("",$capture_path_full, @DesktopWidth, @DesktopHeight, 0,0,1)
    
    
    
    
    While 1
        If _IsPressed("01", $dll) Then
    		$pos_start = MouseGetPos()
    ;~ 		MsgBox(0,"Mouse x,y:", $pos_start[0] & "," & $pos_start[1], 1)
    		ExitLoop
    	EndIf
    WEnd
    
    
    While 1
    	If Not _IsPressed("01", $dll) Then
    		$pos_stop = MouseGetPos()
    ;~ 		MsgBox(0,"Mouse x,y:", $pos_stop[0] & "," & $pos_stop[1], 1)
    		ExitLoop
    	EndIf
    
    
    WEnd
    DllClose($dll)
    
    
    ;~ MsgBox(0, "Mouse x,y:", $pos_start[0] & "," & $pos_start[1] & @cr & $pos_stop[0] & "," & $pos_stop[1], 1)
    
    
    $left = $pos_start[0]
    $top = $pos_start[1]
    $with = $pos_stop[0] - $pos_start[0]
    $height = $pos_stop[1] - $pos_start[1]  
    
    
    ;MsgBox(0,"", $left & " " &  $top & " " & $with & " " & $height,1)
    
    
    
    
    
    
    
    
    
    
    ; Capture given region
    ; Fist parameter - filename, next four: left, top, width, height. Last one - jpeg quality.
    ; Set quality to any negative number to capture into BMP
    DllCall("captdll.dll", "int", "CaptureRegion", "str", $capture_path_partial, "int", $left, "int", $top, "int", $with, "int", $height, "int", -1)
    
    
    SplashOff()
    ;Run('mspaint.exe "' & @ScriptDir & '\dump_partial.bmp"')
    ;Run('mspaint.exe "' & $capture_path_partial)
    
    
    Copy2Clipboard()
    
    
    
    
    
    
    EndFunc
    
    
    
    
    Func Copy2Clipboard()
    Const $GWL_HINSTANCE = -6
    Const $IMAGE_BITMAP = 0
    Const $LR_LOADFROMFILE = 0x0010
    Const $CF_BITMAP = 2
    
    
    $bmpfile = $capture_path_partial
    ;~ If @error Then Exit
    
    
    AutoItWinSetTitle("qqqqqq")
    $hwnd = WinGetHandle("qqqqqq")
    
    
    
    
    $hInst = DllCall("user32.dll", "int", "GetWindowLong", "hWnd", $hwnd, "int", $GWL_HINSTANCE)
    $hInst = $hInst[0]
    
    
    $hBmp = DllCall("user32.dll", "hwnd", "LoadImage", "hwnd", $hInst, "str", $bmpfile, "int", $IMAGE_BITMAP, _
          "int", 0, "int", 0, "int", $LR_LOADFROMFILE)
    $hBmp = $hBmp[0]
    
    
    ;open clipboard
    DLLCall("user32.dll","int", "OpenClipboard","hwnd",0)
    
    
    ;clear clipboard
    DLLCall("user32.dll","int", "EmptyClipboard")
    
    
    ;put bmp data on clipboard
    DLLCall("user32.dll","hwnd","SetClipboardData","int",$CF_BITMAP,"hwnd",$hBmp)
    
    
    ;close clipboard
    DLLCall("user32.dll","int","CloseClipboard")
    EndFunc
    Alles anzeigen
  • Autoit = Virus ??!!**

    • wolkenloser
    • 18. Januar 2006 um 15:28

    Leichte Entwarnung,

    Wenn ich meine Scripts mit der Betarelease compiliere kommt keine Fehlermeldung mehr.

    Mit SCITE und ALT+F7 kann die *.EXE aber nicht mehr generiert werden.

    Ich benutze die v3.1.1.84 (beta)

    Die aktuelle beta 101 kann ich nicht verwenden, weil da meine FTP basierenden Scripte mit Fehlern aufschlagen.

  • Autoit = Virus ??!!**

    • wolkenloser
    • 18. Januar 2006 um 15:16

    Hi,
    ich habe seit heute folgendes Problem beim ausführen von Autoit Scripts: (*.EXE Files)


    Symantec Corporate Client 9.0 meldet mit den aktuellen Virusdefinitionen vom 17.01.2006 folgendes:

    Prüfungstyp: Manuelle Prüfung
    Ereignis: Bedrohung erkannt!
    Bedrohung: Backdoor.Trojan
    Datei: O:\*******.EXE
    Ablageort: O:
    Computer: DELL-XP
    Benutzer: Administrator
    Durchgeführte Aktion: Säubern fehlgeschlagen : Isolierung fehlgeschlagen
    Gefundenes Datum: Mittwoch, 18. Januar 2006 15:07:41

    Hat noch jemand das Problem ?

  • Windows Updates mit Autoit

    • wolkenloser
    • 17. Januar 2006 um 22:33

    Hi, hat sich vielleicht schon mal jemand mit dem Thema SUS bzw WSUS für Windows mit Autoit beschäftigt ? (Windows Updatepatches)
    Ich könnte mir vorstellen das man das mit einem Autoitscript zumindest auf ganz simpler Ebene realisieren könnte.
    Mir schwebt folgendes vor:
    - Unterscheidung ob WinXP SP1 und SP2
    - vergleich der der Installierten Patches mit ggf neuen in einem Verzeichnis
    - Differenzen installieren mit einem dynamisch erzeugtem UpdateScript

    Ein Liste der Patches (und aller anderen installierten Programme) habe ich schon mal vor einiger Zeit gebastelt:

    C
    ;Script läuft nur mit der BetaVersion von Autoit
    #include <process.au3>
    $TEMPFILE  = @TempDir & "\tempfile.txt"
    $TEMPFILE1 = @TempDir & "\tempfile1.txt"
    $FILE1 = "c:\tempdatei1.txt"
    
    
    Prog_auslesen2()
    Run("Notepad " & $TEMPFILE1)
    
    
    Func Prog_auslesen2()
    
    
    	FileDelete(@TempDir & "\*.txt")
    	$y = 1; Standartwert für installiertest Programm z.B "winzip"="1"
    
        $reg_uninstall = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
        $fn = (@TempDir & "" & @ComputerName & "-programs.txt")
    	;$fn2 = (@TempDir & "" & @ComputerName & "-programs2.txt")
        If FileExists($tempfile) then
            FileDelete($tempfile)
        EndIf
        $f = FileOpen($tempfile, 1)
    ; Check if file opened for writing OK
        If $f = -1 Then
            Exit
        EndIf
    
        Do
            $prgkey_read = RegEnumKey($reg_uninstall, $y);gets the key
            $prgkey_read2 = Stringleft($prgkey_read, 1)
            $prg_read = RegRead($reg_uninstall & "" & $prgkey_read, "DisplayName")
    				If $prg_read > "" Then
    					FileWrite($f, """" & $prg_read& """" & "=" & "1" & @CRLF)
    				EndIf	
                    $y = $y + 1
        Until $prgkey_read= ""
        FileClose($f)
    
    	_rundos("sort " & $tempfile & " > "  & $TEMPFILE1)
    
    
    EndFunc
    Alles anzeigen
  • FileCopy / Installation

    • wolkenloser
    • 17. Januar 2006 um 21:57

    Hi,

    Das Problem beim kopieren großer Dateien ist, daß direkt am Anfang eine Datei im Ziel erzeugt wird die sowohl den Namen der Quelldatei als auch die Größe hat, D.h. mit FileGetSize kommst Du nicht weiter, das hatte ich auch schon.

    Pastl hatte aber mal eine Variation mit dem bekannten Windows-Fortschrittsbalken in einem Anderen Forum gepostet. Das funktioniert sowohl mit einer Datei, als auch mit einem ganzen Ordner

    Es gibt auch noch diverese andere Funktionen mit Fortschrittsbalken, aber bei so Großen Files hast Du immer das Problem übere einen langen Zeitraum nicht zu sehen ob noch was passiert. Das ist hier nicht so
    Schau Dir das mal an:

    Code
    _FileCopy()
    
    
    ;------------------------------------------------------
    ; Funktion zum Kopieren von Files mit einer ProcessBar:
    ;------------------------------------------------------
    Func _FileCopy()
    
    
    ;*************************
    ;$VBSsrcfile = "Quelldatei"
    ;$VBSdest = "Ziel"
    ;*************************
    
    
    Dim $message, $VBSsrcfile, $VBSdest, $i, $Files
    
    
    $message = 'Wählen Sie den Quellpfad aus.'
    
    
    ;~ $VBSsrcfile = FileSelectFolder('Wählen Sie den Quellpfad aus.', @DesktopDir, 1+2+4);Verzeichnisauswahl
    $VBSsrcfile = FileOpenDialog('Wählen Sie die Queldatei aus.', @DesktopDir, "(*.*)");Dateiauswahl
    
    
    
    
    
    
    $VBSdest = FileSelectFolder("Zielpfad auswählen...", "", 1+2+4)
    
    
    $Files = StringSplit($VBSsrcfile, "|")
    
    
    If $Files[0] == 1 Then
    $VBSscriptfile = @tempdir & "\vbsfilecopy.vbs"
    $VBSfilecopy = 'dim oSh' &@Lf& 'dim oFld' &@Lf& 'set oSh = CreateObject("Shell.Application")' & _
        @LF & 'set oFld = oSh.NameSpace("' & $VBSdest & '")' &@Lf& _
        'if not oFld is nothing then' &@Lf& 'oFld.CopyHere("' & $VBSsrcfile & _
        '")' &@Lf& 'end if' &@Lf& 'set oSh = nothing' &@Lf& 'set oFld = nothing'
    FileDelete($VBSscriptfile)
    FileWrite($VBSscriptfile,$VBSfilecopy)
    RunWait(@systemdir & '\wscript.exe "' & $VBSscriptfile & '"')
    Else
    For $i = 2 To $Files[0] 
     $VBSscriptfile = @tempdir & "\vbsfilecopy.vbs"
     $VBSfilecopy = 'dim oSh' &@Lf& 'dim oFld' &@Lf& 'set oSh = CreateObject("Shell.Application")' & _
         @LF & 'set oFld = oSh.NameSpace("' & $VBSdest & '")' &@Lf& _
         'if not oFld is nothing then' &@Lf& 'oFld.CopyHere("' & $Files[1] & "" & $Files[$i] & _
         '")' &@Lf& 'end if' &@Lf& 'set oSh = nothing' &@Lf& 'set oFld = nothing'
     FileDelete($VBSscriptfile)
     FileWrite($VBSscriptfile,$VBSfilecopy)
     RunWait(@systemdir & '\wscript.exe "' & $VBSscriptfile & '"')
    Next
    EndIf
    
    
    EndFunc
    Alles anzeigen
  • Neue Autoit Release - Wann ?

    • wolkenloser
    • 17. Januar 2006 um 16:56

    Hi
    hat jeamd Kentniss, ob es bald eine neue Offfizielle Release von Autoit geben wird ?

    Ich Frage deshalb weil in der (sehr guten) Deutschen Hilfe natürlich nur die Keyworte der offiziele Release drin sind, oder ?

    Dann wird es sich auch bald eine neue Hilfedatei geben...

  • Eintrag ins Kontextmenü unter Windows

    • wolkenloser
    • 17. Januar 2006 um 16:52

    Hi Peethebee

    Bei mir ist es : (XP)
    C:\Dokumente und Einstellungen\Default User\Vorlagen\Template.au3

  • Screenshots

    • wolkenloser
    • 17. Januar 2006 um 16:43

    Hi
    Problem wurde in einem Extra threat gelößt!

  • Grafik in die Zwischanablage

    • wolkenloser
    • 17. Januar 2006 um 09:24

    Ich habe selber nochmal in Englischen Forum geguckt.

    es fehlt noch eine Zeile um das Clipboard zu "leeren"
    Jetzt klappt es :)

    Code
    Const $GWL_HINSTANCE = -6
    Const $IMAGE_BITMAP = 0
    Const $LR_LOADFROMFILE = 0x0010
    Const $CF_BITMAP = 2
    
    
    $bmpfile = FileOpenDialog("Open","","Bitmap(*.bmp)")
    If @error Then Exit
    
    
    AutoItWinSetTitle("qqqqqq")
    $hwnd = WinGetHandle("qqqqqq")
    
    
    
    
    $hInst = DllCall("user32.dll", "int", "GetWindowLong", "hWnd", $hwnd, "int", $GWL_HINSTANCE)
    $hInst = $hInst[0]
    
    
    $hBmp = DllCall("user32.dll", "hwnd", "LoadImage", "hwnd", $hInst, "str", $bmpfile, "int", $IMAGE_BITMAP, _
          "int", 0, "int", 0, "int", $LR_LOADFROMFILE)
    $hBmp = $hBmp[0]
    
    
    ;open clipboard
    DLLCall("user32.dll","int", "OpenClipboard","hwnd",0)
    
    
    ;##### Thats New ####
    ;clear clipboard
    DLLCall("user32.dll","int", "EmptyClipboard")
    ;##### Thats New ####
    
    
    
    
    ;put bmp data on clipboard
    DLLCall("user32.dll","hwnd","SetClipboardData","int",$CF_BITMAP,"hwnd",$hBmp)
    
    
    ;close clipboard
    DLLCall("user32.dll","int","CloseClipboard")
    Alles anzeigen
  • Grafik in die Zwischanablage

    • wolkenloser
    • 17. Januar 2006 um 09:16

    Hi Pastl,
    ich wußte, auf Dich kann ich zählen :)

    Das habe ich natürlich sofort ausprobiert.
    Leider klappt es bei mir nicht :(
    z.B Bild einfügen in z.B Wordpad.

    Stattdessen gibt er der letzte Text der in der Zwischenablage war aus.

    Vermutlich ist am Synty noch etwas falsch

  • Grafik in die Zwischanablage

    • wolkenloser
    • 16. Januar 2006 um 20:34

    Ich habe noch was gefunden, kann ich allerdings auch nicht verwerten:

    sieh hier


    Oder auch das hier, aber ich finde nirgens eine CALLDLL

    'put bmp data on clipboard:
    calldll #user32, "SetClipboardData",_CF_BITMAP as long,_
    hBitmap as long, rethandle as long

  • Grafik in die Zwischanablage

    • wolkenloser
    • 16. Januar 2006 um 20:10

    Hi
    Ich suche nach einer Möglichkeit eine gerafik in die Zwischenablage zu kopieren.
    Nach langer Suche bin ich hierauf gestoßen:

    Das ist wohl C#
    Clipboard.SetDataObject(picBox.Image,true);

    Kann mir einer von euch hieraus ein kleines Programm bauen was ich mit einem Pfad zu einer Graik füttere und es dann in die Zwischanablage kopiert ????
    Am besten per Comandozeile oder Parameteraufruf:

    pic2clip.exe c:\testbild.jpg

    Mit C# und VB kann ich nicht umgehen.

  • Eintrag ins Kontextmenü unter Windows

    • wolkenloser
    • 16. Januar 2006 um 20:05

    Hi

    Guck mal hier

  • Screenshots

    • wolkenloser
    • 16. Januar 2006 um 19:03

    Hi Leute,

    Weiß keiner wie ich eien Grafik in dei Zwischenablage bekomme ?

  • Screenshots

    • wolkenloser
    • 15. Januar 2006 um 22:18

    Hi Pastl,

    Ich glaube das wird richtig gut :)
    Du hast ein paar nette Ideen eingebracht.

    Das mit dem Einfrieren hab ich überigens gelößt:

    War ganz einfach und klappt prima ( peethebee Guter Tip)

    Code
    $capture_dir = @TempDir & ""
    $capture_file_fullscreen = "capture_full_screen.bmp"
    $capture_path_full = $capture_dir & $capture_file_fullscreen
    ...
    ...
    Func Capture_start()
    $dll = DllOpen("user32.dll")
    DllCall("captdll.dll", "int", "CaptureScreen", "str", $capture_path_full, "int", 85)
    
    
    SplashImageOn("",$capture_path_full, @DesktopWidth, @DesktopHeight, 0,0,1)
    ...
    Alles anzeigen


    Der Rest ist gleich geblieben.

    Leider ist bei eingeblendetem Splashscreen dei Gummiband Funktion "unsichtbar"
    Wenn man da wenigstens den CURSOR in eine Kreuz ändern könnte ....

    Und was mir sehr fehlt wäre die Geschichte mit dem kopieren des Capturefiles ins Clipboard.

  • Screenshots

    • wolkenloser
    • 15. Januar 2006 um 14:45

    Hi Leute,

    Gibtes ne möglichkeit den aktuellen Screen "einzufrieren" und gleichzeit so lange auf dem Monitor auszugeben bis eine bestimmte Aktion beendet ist ?

    Es geht um das Screenshot-Tool da ja schon soweit funktioniert.
    Es treten nur ein paar Probleme auf wenn ich den Bereich mit gedrücker Maustaste ziehe.
    Z.B werden dumerweise Icons markiert, der Cursor verändert sich, so das man nicht mehr Pixelgenau markieren kann :(

    Meine Idee ist nur folgende:
    Wenn ich meine Funktion starte soll der ganze Bildschirm abfotografiert werden (das geschied normalerweise mit der Drucktaste) und dann wieder als Vollbild über das Desktopbild gelegt werden (wie bei einem Bildschirmschonerbild).

    Dann will ich den entsprechennde Bildschirmbereich Markieren um diesen dann zu Capturen.
    Das hätte den enormen Vorteil, das das Desktopbild sich beim ziehen nicht verändert, bzw wenn mann aufgeklappte Menues capturen möchte, gehen diese nicht mehr zu (zumindest sieht es so aus)

  • Screenshots

    • wolkenloser
    • 15. Januar 2006 um 09:38

    So, die erste hürde ist geschafft.
    Hier mal eine vorläufige Version!

    Was mir fehlt ist:
    - das Kopieren des Screenshots in die Zwischnablage
    - die erstellte BMP Datei soll nur nach @tempdir abgelegt werden
    - ändern des Cursors in ein Fadenkreuz (so groß wie möglich, aber möglichst dünn)

    Anregungen ?


    Code
    #include <Misc.au3>
    AutoItSetOption ( "MouseCoordMode", 1 )
    
    
    dim $pos_start
    dim $pos_stop
    
    
    
    
    while 1
    
    HotKeySet("{PRINTSCREEN}", "Capture_start")
    
    
    WEnd
    
    
    Func Capture_start()
    SplashTextOn('Screenshottool', 'Bitte Markieren sie einen Bereich mit  gedrückter "linker" Maustaste ',400,200, 10,10)
    sleep(4000)
    SplashOff()
    
    
    $dll = DllOpen("user32.dll")
    
    
    While 1
        If _IsPressed("01", $dll) Then
    		$pos_start = MouseGetPos()
    ;~ 		MsgBox(0,"Mouse x,y:", $pos_start[0] & "," & $pos_start[1], 1)
    		ExitLoop
    	EndIf
    WEnd
    
    
    While 1
    	If Not _IsPressed("01", $dll) Then
    		$pos_stop = MouseGetPos()
    ;~ 		MsgBox(0,"Mouse x,y:", $pos_stop[0] & "," & $pos_stop[1], 1)
    		ExitLoop
    	EndIf
    
    
    WEnd
    DllClose($dll)
    
    
    ;~ MsgBox(0, "Mouse x,y:", $pos_start[0] & "," & $pos_start[1] & @cr & $pos_stop[0] & "," & $pos_stop[1], 1)
    
    
    $left = $pos_start[0]
    $top = $pos_start[1]
    $with = $pos_stop[0] - $pos_start[0]
    $height = $pos_stop[1] - $pos_start[1]  
    
    
    ;MsgBox(0,"", $left & " " &  $top & " " & $with & " " & $height,1)
    
    
    
    
    
    
    ; Capture full screen
    ; Fist parameter - filename, last - jpeg quality. 
    DllCall("captdll.dll", "int", "CaptureScreen", "str", "dump_full.jpg", "int", 85)
    ; Capture given region
    ; Fist parameter - filename, next four: left, top, width, height. Last one - jpeg quality.
    ; Set quality to any negative number to capture into BMP
    DllCall("captdll.dll", "int", "CaptureRegion", "str", "dump_partial.bmp", "int", $left, "int", $top, "int", $with, "int", $height, "int", -1)
    
    
    Run('mspaint.exe "' & @ScriptDir & '\dump_partial.bmp"')
    
    
    EndFunc
    Alles anzeigen
  • Screenshots

    • wolkenloser
    • 15. Januar 2006 um 08:24

    Hi

    Sorry Pheethebee, ich war gestern nicht mehr am Rechner (Familienprogramm).

    Meine Idee nimmt langsam Formen an:
    Wenn meine Programm gestartet wirdmöchte ich einen Hotkey setzen für "linke Maustaste_gedrückt".

    Geht das ? (case $msg = ?????)

    Es muß auch keine Hotkey sein, aber ich möchte die X/Y Kooridinaten abfragen beim nächsten linksclick.
    Die Kooridinatenabfrage kann man ja mit MOUSEGETCURSOR machen, aber ich weiß nicht wie ich den linkslick abfragen kann.

    HILFE!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™