Update:
Mit Freunden wird es jetzt auch richtig angezeigt.
Zitataußerdem Bug: das "TopMost"-Häkchen ist zu Beginn aktiviert, aber das fenster ist noch nicht TopMost.
Hm, ich grig den Bug irgendwie nicht.
Update:
Mit Freunden wird es jetzt auch richtig angezeigt.
Zitataußerdem Bug: das "TopMost"-Häkchen ist zu Beginn aktiviert, aber das fenster ist noch nicht TopMost.
Hm, ich grig den Bug irgendwie nicht.
Moin.
Für eine Bildschirmlupe ist AutoIt zu langsam, schätze ich ...
Gruß
Greenhorn
?
Die wo ich gepostet hab, funktioniert bei mir super^^
Einfach Lupe in die Suche eingeben:
#include<WindowsConstants.au3>
#include<GUIConstantsEx.au3>
Opt("WinTitleMatchMode", 4)
Opt('GUICloseOnESC', 1)
Opt('GUIOnEventMode', 1)
HotKeySet("{F1}", "Zoom")
$MagWidth = 150
$MagHeight = 150
$MagZoom = 2;1.00000000000000001
Global $dll[3], $DeskHDC, $GUIHDC
Global $scoop = 0x00CC0020
$dll[1] = DllOpen("user32.dll")
$dll[2] = DllOpen("gdi32.dll")
Global $shell = WinGetPos("classname=Shell_TrayWnd")
Global $GUI = GUICreate("Gui", 160, 160, @DesktopWidth - 160, @DesktopHeight - 160 - $shell[3], $WS_POPUP, $WS_EX_TOPMOST)
GUISetOnEvent($GUI_EVENT_CLOSE, "OnAutoItExit")
GUISetState(@SW_SHOW)
$DeskHDC = DllCall("user32.dll", "int", "GetDC", "hwnd", 0)
$GUIHDC = DllCall("user32.dll", "int", "GetDC", "hwnd", $GUI)
While 1
MAG()
Sleep(5)
WEnd
Func Zoom()
$MagZoom = $MagZoom + 1
EndFunc ;==>Zoom
Func MAG()
Local $magZoomedWidth = $MagWidth / $MagZoom, $magZoomedHeight = $MagHeight / $MagZoom
DllCall("gdi32.dll", "int", "StretchBlt", "int", $GUIHDC[0], "int", _
0, "int", 0, "int", $MagWidth, "int", $MagHeight, "int", $DeskHDC[0], "int", _
MouseGetPos(0) - ($magZoomedWidth / 2), "int", MouseGetPos(1) - ($magZoomedHeight / 2), "int", $magZoomedWidth, "int", $magZoomedHeight, _
"long", $scoop)
EndFunc ;==>MAG
Func OnAutoItExit()
DllCall("user32.dll", "int", "ReleaseDC", "int", $DeskHDC[0], "hwnd", 0)
DllCall("user32.dll", "int", "ReleaseDC", "int", $GUIHDC[0], "hwnd", $GUI)
DllClose($dll[1])
DllClose($dll[2])
Exit (0)
EndFunc ;==>OnAutoItExit
Mit FileMove kannst du es machen,
Wenn 1 zurück gegeben wird ist sie gerade nicht in benutzung, wenn 0 zurück gegeben wird, wird sie gerade abgespielt.
Aber musst eben die Datei dann ständig hinundher schieben.
( Die Windows Sounds sind übrigens in C:\WINDOWS\Media )
Hi Funkey,
Tolle Funktion hat bei mir auf anhieb überall Funktioniert wo ich getest hab ![]()
Der Fehler war woanders, du hast den Alpha Kanal vergessen.
Und du musst zuerst das Gui holen und dann zeichnen.
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
; Erstellt eine GUI
$Form1_1 = GUICreate("gdi fun",297, 121, 464, 451,$WS_POPUPWINDOW)
;GUISetBkColor($form1_1,0x000000);schwarz
$hwnd=wingethandle($form1_1)
GUISetState(@SW_DISABLE)
GUISetState(@SW_SHOW,$form1_1)
for $i = 1 to 255 Step +2
winsettrans($form1_1,"",$i)
sleep(10) ; Sleep minmal auf 10 stellen, weniger geht eh nicht
next
; Zeichnet einen String
_GDIPlus_Startup ()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hWnd)
$hBrush = _GDIPlus_BrushCreateSolid (0xFF800000);rot ; Hier war der Fehler
$hFormat = _GDIPlus_StringFormatCreate ()
$hFamily = _GDIPlus_FontFamilyCreate ("Arial")
$hFont = _GDIPlus_FontCreate ($hFamily, 12, 2)
$tLayout = _GDIPlus_RectFCreate (0,0,20,80);<--- hier raten das der text angezeigt wird
_GDIPlus_GraphicsDrawStringEx ($hGraphic, "TEST", $hFont,$tLayout , $hFormat, $hBrush)
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Ressourcen freigeben
_GDIPlus_FontDispose ($hFont)
_GDIPlus_FontFamilyDispose ($hFamily)
_GDIPlus_StringFormatDispose ($hFormat)
_GDIPlus_BrushDispose ($hBrush)
_GDIPlus_GraphicsDispose ($hGraphic)
_GDIPlus_ShutDown ()
Bei _FFStart() ist doch ein hide Parameter?
ääähm, ich kann mit dem chat flüstern.
kann es sein, dass ihr die falsche version reingestellt habt?
Oh, stimmt, ich hab die Version mit wispern gepostet, muss mal gucken ob ich die ohne Wispern noch hab :wacko:
Vieleicht darf ich ja jetzt endlich mit wispern posten, pee? ![]()
edit: außerdem Bug: das "TopMost"-Häkchen ist zu Beginn aktiviert, aber das fenster ist noch nicht TopMost.
ok, ich schau mal.
Hab die Buddy Funktion noch nie ausprobiert
, gleich mal jemand hinzufügen und ausprobieren.
Danke das für die Bugs ![]()
Morgen dann neue Version denk ich.
Update:
Wegen den farbigen Namen war ein Bug in der Online Liste. Ist nun behoben ( Thx Prog@ndy
)
Versuch das hier.
Fremddateien "includen" (ohne FileInstall)
Naja ist eigentlich wie FileInstall nur mit einer Datei ( Wenn ichs richtig verstanden hab ), für Bilder kenn ich ne Methode von Funkey, die bleiben dann auch wirklich in der Exe:
https://autoit.de/index.php?page…2910#post102910
Gibt auch diese UDFs aus dem Englischem Forum, hab die aber noch nicht ausprobiert:
Da steht noch HTTP 1.1 drin.
#include <WinHTTP.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$HttpOpen = _WinHttpOpen("Desktop Radio Updater")
$HttpConnect = _WinHttpConnect($HttpOpen, "bksoft.kilu.de")
$HttpOpenRequest = _WinHttpOpenRequest($HttpConnect, "GET", "//Products/Desktop%20Radio/Update/Archives/Update.txt", "HTTP/1.1", "http://bksoft.kilu.de/")
_WinHttpSendRequest($HttpOpenRequest)
_WinHttpReceiveResponse($HttpOpenRequest)
If _WinHttpQueryDataAvailable($HttpOpenRequest) Then
$header = _WinHttpQueryHeaders($HttpOpenRequest)
MsgBox(0, "Header", $header)
EndIf
Local $data = ""
Do
$data &= _WinHttpReadData($HttpOpenRequest,1)
Until @error
MsgBox(0,"",$data)
[/autoit]Und statt % hast du ein leerzeichen
Desktop 20Radio
Muss da aber rein, ggf. UDF von Progandy verwenden oder selber reinschreiben.
Edit: Achja und du hättest mal sagen können das da nur ne 1 drinsteht, sonst hätte ich schon 30 Min früher gepostet, dachte schon ich hätte was falsch gemacht ![]()
So bin fertig, probiers mal aus Funktioniert bei mir:
#include <WinHTTP.au3>
[/autoit] [autoit][/autoit] [autoit]$username="geheim@web.de" ; ausfüllen
$pw=FileRead( "hide.txt" ) ; ausfüllen
Global $hw_open = _WinHttpOpen("Einloggen")
Global $hw_connect = _WinHttpConnect($hw_open, "www.schuelervz.net")
Global Const $Token = _GetToken()
[/autoit] [autoit][/autoit] [autoit]; Einloggen
$post="email="&$username&"&password="&$pw&"&login=Einloggen&jsEnabled=true&formkey="&$Token[0]&"&iv="&$Token[1]
MsgBox(0,"",$post)
$h_openRequest = _WinHttpOpenRequest($hw_connect, "POST", "/Login", "HTTP/1.1", "http://www.schuelervz.net/" )
_WinHttpSendRequest($h_openRequest, "Content-Type: application/x-www-form-urlencoded" & @CRLF, $post)
_WinHttpReceiveResponse($h_openRequest)
If _WinHttpQueryDataAvailable($h_openRequest) Then
$header = _WinHttpQueryHeaders($h_openRequest)
MsgBox(0, "Header", $header)
EndIf
Local $data=""
Do
$data&=_WinHttpReadData($h_openRequest)
Until @error
FileWrite ("body.html", $data)
_WinHttpCloseHandle($h_openRequest)
_WinHttpCloseHandle($hw_connect)
_WinHttpCloseHandle($hw_open)
Func _GetToken()
;Greek
Local $h_openRequest = _WinHttpOpenRequest($hw_connect, "GET", "/Login", "HTTP/1.1", "http://www.schuelervz.net/")
_WinHttpSendRequest($h_openRequest)
_WinHttpReceiveResponse($h_openRequest)
Local $data = ""
Do
$data &= _WinHttpReadData($h_openRequest)
Until @error
$formkey = StringRegExp($data, '<input type="hidden" name="formkey" value="(.*?)" />', 1)
$ivkey = StringRegExp($data, '<input type="hidden" name="iv" value="(.*?)" />', 1)
Dim $result[2]
$result[0] = $formkey[0]
$result[1] = $ivkey[0]
_WinHttpCloseHandle($h_openRequest)
[/autoit] [autoit][/autoit] [autoit]Return $result
EndFunc ;==>_GetToken
Da stimmt irgendwas mit dem Token nicht, bei meinem Twitter Chat hat einer gepostet das man damit bei Schülervz den Buschfunk benutzen kann.
Ich komm noch nicht mal mit meinem orginal Token mit deinem Script rein, habs mir schnell selbst gemacht:
#include <WinHTTP.au3>
[/autoit] [autoit][/autoit] [autoit]$username="sagichnicht@web.de"
$pw=FileRead( "hide.txt" )
; Einloggen
$post="email="&_URIEncode($username)&"&password="&_URIEncode($pw)&"&login=Einloggen&jsEnabled=true&formkey=a5418f438de118815150960de43568945fc4756baf8bfa621faa506823a6da4e13032e5374765951630bb5b2309d2126b2d5fd0c7dc3f3f20e893f90d74d80ab3d1e9b216d7499c081dd53682569fe170c5a0ad5d82d95abd102401ec826b64d&iv=4690dfc615be3811e637a8f5f46528f0"
$hw_open = _WinHttpOpen("Einloggen")
$hw_connect = _WinHttpConnect($hw_open,"www.schuelervz.net" )
$h_openRequest = _WinHttpOpenRequest($hw_connect, "POST", "/Login", "HTTP/1.1", "http://www.schuelervz.net/" )
_WinHttpSendRequest($h_openRequest, "Content-Type: application/x-www-form-urlencoded" & @CRLF, $post)
_WinHttpReceiveResponse($h_openRequest)
If _WinHttpQueryDataAvailable($h_openRequest) Then
$header = _WinHttpQueryHeaders($h_openRequest)
MsgBox(0, "Header", $header)
EndIf
Local $data=""
Do
$data&=_WinHttpReadData($h_openRequest)
Until @error
FileWrite ("body.html", $data)
_WinHttpCloseHandle($h_openRequest)
_WinHttpCloseHandle($hw_connect)
_WinHttpCloseHandle($hw_open)
Func _URIEncode($sData)
; Author: Prog@ndy
Local $aData = StringSplit(BinaryToString(StringToBinary($sData, 4), 1), "")
Local $nChar
$sData = ""
For $i = 1 To $aData[0]
;~ ConsoleWrite($aData[$i] & @CRLF)
$nChar = Asc($aData[$i])
Switch $nChar
Case 45, 46, 48 - 57, 65 To 90, 95, 97 To 122, 126
$sData &= $aData[$i]
Case 32
$sData &= "+"
Case Else
$sData &= "%" & Hex($nChar, 2)
EndSwitch
Next
Return $sData
EndFunc ;==>_URIEncode
Func _GetFormKey()
Global $h_openRequest = _WinHttpOpenRequest($hw_connect, "GET", "/", "HTTP/1.1", "http://twitter.com/")
Local $j_array[2]
_WinHttpSendRequest($h_openRequest)
_WinHttpReceiveResponse($h_openRequest)
Local $data = ""
Do
$data &= _WinHttpReadData($h_openRequest)
Until @error
_WinHttpCloseHandle($h_openRequest)
$result1 = StringRegExp($data, '<[^>]*?name="formkey"[^>]*?value="(.*?)"', 1)
$result2 = StringRegExp($data, '<[^>]*?name="iv"[^>]*?value="(.*?)"', 1)
$j_array[0] = $result1[0]
$j_array[1] = $result2[0]
Return $j_array
EndFunc ;==>_GetFormKey
Damit bin ich angemeldet, muss man halt noch den Token holen, hab deine Funktion dafür mal ausprobiert, hat aber nicht geklappt, ich schau morgen mal nach dem Token, ist jetzt schon zu spät.
Msgbox darf nicht nach dem Return stehen, mit dem Return hat er ja die Funktion schon beendet.
[autoit]$ip=_QueryDNS('www.autoit.de')
MsgBox(0,"",$ip)
Func _QueryDNS($URL)
TCPStartup()
Local $IP = TCPNameToIP($URL)
Local $error = @error
TCPShutdown()
Return Seterror($error,0,$IP)
Endfunc
Brauch man doch garnet den Befehl?
#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGui = GUICreate("Test Rotate", 800, 600)
GUISetState()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
$hImage = _GDIPlus_ImageLoadFromFile(@WindowsDir & "\Angler.bmp")
$iWidth = _GDIPlus_ImageGetWidth($hImage) * 96 / _GDIPlus_ImageGetVerticalResolution($hImage)
$iHeight = _GDIPlus_ImageGetHeight($hImage) * 96 / _GDIPlus_ImageGetHorizontalResolution($hImage)
$hMatrix = _GDIPlus_MatrixCreate()
_GDIPlus_MatrixTranslate($hMatrix, 400, 300)
_GDIPlus_MatrixRotate($hMatrix, 90, "False")
_GDIPlus_GraphicsSetTransform($hGraphic, $hMatrix)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, -$iWidth / 2, -$iHeight / 2)
While GUIGetMsg() <> -3
GUIRegisterMsg ( 0x000F, "my_wm_paint" )
Sleep(10)
WEnd
;~ _GDIPlus_MatrixDispose($hMatrix)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Func my_wm_paint()
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, -$iWidth / 2, -$iHeight / 2)
EndFunc
Super Script ! ![]()
musste aber noch 4 Includes einfügen damit es ging:
[autoit]#include <ButtonConstants.au3>
#include <ListviewConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
Danke für die Hilfe
SciTE, AutoiT-Quelltext öffnen "setupudf" eingeben (wird rot), Leertaste drücken. Ist in der abrrev-Datei für SciTE hinterlegt.
peethebee
Ich hab setupgui in der Datei au3abbrev.properties verändert, weil mir die andere nicht so gefallen hat ( ich benutzt auch immer switch statt select ) :
#; -- GUI setup --
setupgui=#include <GUIConstantsEx.au3>\n#include <WindowsConstants.au3>\n\n$MainGUI=GUICreate("",400,300,-1,-1)\nGUISetState()\n\nWhile 1\n$msg=GUIGetMsg()\nSwitch $msg\nCase $GUI_EVENT_CLOSE\nExit\nEndSwitch\nWEnd
So sieht das jetzt aus, aber wenn ich setupgui eingeben kommt immer noch das alte, obwohl das jetzt garnicht mehr drinsteht.
Warum geht das nicht?
Alles Gute zum 18 ! ![]()