Alles Gute zum 18., feier schön und ausgiebig, denn 18 wirst du kein zweites Mal! ![]()
Gruß,
UEZ
Alles Gute zum 18., feier schön und ausgiebig, denn 18 wirst du kein zweites Mal! ![]()
Gruß,
UEZ
Probiere es mal damit:
;Coded by UEZ 2009
#AutoIt3Wrapper_Change2CUI=y
#AutoIt3Wrapper_UseUpx=n
$oMyError = ObjEvent("AutoIt.Error", "oMyError") ; Install a custom error handler
[/autoit] [autoit][/autoit] [autoit]Global $ip = "localhost"
If $CmdLine[0] > 0 Then $ip = $CmdLine[1]
$stop_srv = "RemoteRegistry"
[/autoit] [autoit][/autoit] [autoit]If Stop_Service($ip, $stop_srv) Then
MsgBox(0, "Stop Service", "Service " & $stop_srv & " stopped properly on " & $ip)
Else
MsgBox(16, "Error", "Error")
EndIf
Func Stop_Service($srv, $service, $sUsr = "", $sPass = "")
Local $colItems, $colItem, $ping, $objWMILocator, $objWMIService
$ping = Ping($srv)
If $ping Then
$objWMILocator = ObjCreate("WbemScripting.SWbemLocator")
If @error Then Return SetError(3, 0, 0)
$objWMIService = $objWMILocator.ConnectServer($srv, "\root\cimv2", $sUsr, $sPass, "", "", 128)
If @error Then Return SetError(4, 0, 0)
$colItems = $objWMIService.ExecQuery("Select * From Win32_Service Where Name='" & $service & "'")
If IsObj($colItems) Then
For $objItem In $colItems
$objItem.StopService()
Next
Return 1
Else
Return SetError(1, 0, 0)
EndIf
EndIf
Return SetError(2, 0, 0)
EndFunc
Func oMyError()
Msgbox(0,"AutoItCOM Test","We intercepted a COM Error !" & @CRLF & @CRLF & _
"err.description is: " & @TAB & $oMyError.Description & @CRLF & _
"err.windescription:" & @TAB & $oMyError.WinDescription & @CRLF & _
"err.number is: " & @TAB & Hex($oMyError.Number,
& @CRLF & _
"err.lastdllerror is: " & @TAB & $oMyError.LastDllError & @CRLF & _
"err.scriptline is: " & @TAB & $oMyError.Scriptline & @CRLF & _
"err.source is: " & @TAB & $oMyError.Source & @CRLF & _
"err.helpfile is: " & @TAB & $oMyError.Helpfile & @CRLF & _
"err.helpcontext is: " & @TAB & $oMyError.HelpContext _
)
EndFunc
Gruß,
UEZ
Bis auf die Cloth Simulation flackern bei mir die Beispiele. Ferner gibt es keine Kantenglättungsmöglichkeit.
Kannst du nicht die Beispiele als Download anbieten?
Gruß,
UEZ
Guckst du hier: _WMI_GetATAPISmartData
Gruß,
UEZ
Was meinst du mit transformiert?
Wenn du das Bild in die GUI bekommen willst, dann versuche es mal damit:
[autoit]
_GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, 0, 0, 800, 800)
Ansonsten, wie gesagt, besser beschreiben.
Gruß,
UEZ
Die GUI immer im Hintergrund:
;code by eukalyptus
#include <WindowsConstants.au3>
Opt("GuiOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $hGui = GUICreate("Test", 640, 480)
GUISetOnEvent(-3, "_Exit")
GUIRegisterMsg($WM_WINDOWPOSCHANGING, "_WM_WINDOWPOSCHANGING")
GUISetState()
While 1
Sleep(100)
WEnd
Func _WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)
Local $tPos = DllStructCreate("hwnd hwnd;hwnd InsertAfter;int x;int y;int cx;int cy;uint flags", $lParam)
DllStructSetData($tPos, "InsertAfter", 1)
EndFunc ;==>_WM_WINDOWPOSCHANGING
Func _Exit()
Exit
EndFunc ;==>_Exit
Und Font Smoothing:
[autoit]
$graphic = _GDIPlus_GraphicsCreateFromHWND($hwnd)
_GDIPlus_GraphicsSetSmoothingMode($graphic, 2)
DllCall($ghGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $graphic, "int", 4)
Gruß,
UEZ
Ich verstehe dein Problem nicht. Du hast doch eine GDI+ Bitmap erstellt, mit der du doch arbeiten kannst.
Vielleicht kannst du nochmals beschrieben, wo der Schuh klemmt.
Gruß,
UEZ
Also, wenn die Höhe für 1080 96 ist -> d.h. 11.25'tel, dann muss für 900 es 80 sein.
Gruß,
UEZ
Happy Birthday und alles Gute!
Gruß,
UEZ
Ich muss i.d.R. immer in 3 Sprachen umschalten und manchmal ist es nicht leicht, in Deutsch "sauber" zu schreiben, zu Mal ich auch in der Schule immer 2 Punkte Abzug wegen der Rechtschreibung hatte, aber ich gebe mir Mühe. ![]()
Heute wird doch selten ein Buch in die Hand genommen, da die meiste Zeit mit dem Internet verbracht wird und der "Internet Slang" trägt dazu bei, dass die Deutsche Sprache vermischt wird und dadurch in Mitleidenschaft gezogen wird. Dann kommt noch die "Hey Alder" Sprache hinzu und perfekt ist das Glück.
Gruß,
UEZ
Keine Ahnung, warum das Löschen bei Tabs nicht funzt, aber als Alternative kannst du noch eine Hintergrund Bitmap zum Löschen erstellen.
#include <GuiTab.au3>
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
;~ #include <WindowsConstants.au3>;~~~
;~ #include <WinAPI.au3>;~~~
Global $hImage, $hBitmap, $hBmpOn, $hBmpOff
Global $acPic[10]
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\on.png")
$hBitmap = _GDIPlus_BitmapCloneArea($hImage, 0, 0, 16, 16, $GDIP_PXF32ARGB)
$hBmpOn = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_ImageDispose($hImage)
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\off.png")
$hBitmap = _GDIPlus_BitmapCloneArea($hImage, 0, 0, 16, 16, $GDIP_PXF32ARGB)
$hBmpOff = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
_GDIPlus_BitmapDispose($hBitmap)
$hBitmap = _GDIPlus_BitmapCloneArea($hImage, 0, 0, 16, 16, $GDIP_PXF32ARGB)
$hCtx = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsClear($hCtx, 0xFFFFFFFF)
_GDIPlus_GraphicsDispose($hCtx)
$hBmpClear = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_Shutdown()
Global $hGUI = GUICreate("Test")
Global $cTab = GUICtrlCreateTab(5, 5, 380, 200)
Global $hTab = GUICtrlGetHandle($cTab)
GUICtrlCreateTabItem("Test1")
GUICtrlCreateButton("Test", 80, 80, 80, 25)
GUICtrlCreateTabItem("Test2")
For $i = 0 To 9
$acPic[$i] = GUICtrlCreatePic("", 50 + (30 * $i), 50, 16, 16)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSendMsg($acPic[$i], 0x0172, 0, $hBmpOff)
Next
GUICtrlCreateTabItem("")
GUISetState()
While 1
For $i = 0 To 9
_WinAPI_DeleteObject(GUICtrlSendMsg($acPic[$i], 0x0172, 0, $hBmpClear))
If Random(0, 1, 1) = 1 Then
_WinAPI_DeleteObject(GUICtrlSendMsg($acPic[$i], 0x0172, 0, $hBmpOn))
Else
_WinAPI_DeleteObject(GUICtrlSendMsg($acPic[$i], 0x0172, 0, $hBmpOff))
EndIf
Next
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
_WinAPI_DeleteObject($hBmpClear)
_WinAPI_DeleteObject($hBmpOn)
_WinAPI_DeleteObject($hBmpOff)
Exit
EndSwitch
WEnd
Gruß,
UEZ
Probiere es mal so:
[autoit]
For $i = 0 To 9
_WinAPI_DeleteObject(GUICtrlSendMsg($acPic[$i], 0x0172, 0, 0)) ; löschen des Controls. _WinAPI_DeleteObject(), damit kein Memory Leak entsteht
If Random(0, 1, 1) = 1 Then
_WinAPI_DeleteObject(GUICtrlSendMsg($acPic[$i], 0x0172, 0, $hBmpOn))
Else
_WinAPI_DeleteObject(GUICtrlSendMsg($acPic[$i], 0x0172, 0, $hBmpOff))
EndIf
Next
Nach deiner Methode produzierst du auch ein Memory Leak!
Gruß,
UEZ
Diese Frage wurde 1000 mal gefragt und 100000 mal beantwortet!
Gruß,
UEZ
Probiere es mal mit dieser modifizierten Funktion:
[autoit]
func _erstellen()
Local $aPos = ControlGetPos($Form1, "", $btnerstellen)
If Not @error Then
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", $aPos[0], $aPos[1] + 40, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", $aPos[0], $aPos[1] + 72, 97, 17)
$Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", $aPos[0] + 96, $aPos[1] + 40, 97, 17)
EndIf
endfunc
Gruß,
UEZ
So was?
#include <FontConstants.au3>
#include <WinAPI.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
$h_ListView_Font = _WinAPI_CreateFont(14, 0, 0, 0, 500, False, False, False, $DEFAULT_CHARSET, $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $PROOF_QUALITY, 0, "Wingdings")
$h_ListView_Font1 = _WinAPI_CreateFont(14, 0, 0, 0, 500, False, False, False, $DEFAULT_CHARSET, $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $PROOF_QUALITY, 0, "Arial")
$Form1 = GUICreate("Form1", 459, 215, 192, 124)
$ListView1 = GUICtrlCreateListView("Ordner|Monat", 24, 24, 250, 150)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
$ListView1_0 = GUICtrlCreateListViewItem("1|Januar", $ListView1)
$Button1 = GUICtrlCreateButton("Start", 280, 24, 75, 25, $WS_GROUP)
$hListView = GUICtrlGetHandle($ListView1)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
_WinAPI_RedrawWindow($Form1)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
GUIRegisterMsg($WM_NOTIFY, "")
_WinAPI_DeleteObject($h_ListView_Font)
_WinAPI_DeleteObject($h_ListView_Font1)
Exit
Case $Button1
[/autoit] [autoit][/autoit] [autoit]EndSwitch
WEnd
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam
Local $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
Local $hWndFrom = DllStructGetData($tNMHDR, "hWndFrom")
Local $nNotifyCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hListView
Switch $nNotifyCode
Case $NM_CUSTOMDRAW
Local $tCustDraw = DllStructCreate($tagNMLVCUSTOMDRAW, $ilParam)
Local $iDrawStage = DllStructGetData($tCustDraw, "dwDrawStage")
If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW
If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW
Local $iItem = DllStructGetData($tCustDraw, "dwItemSpec")
Local $hDC = DllStructGetData($tCustDraw, 'hdc')
Local $iSubItem = DllStructGetData($tCustDraw, 'iSubItem')
Switch Mod($iSubItem, 2)
Case 0
_WinAPI_SelectObject($hDC, $h_ListView_Font)
Return $CDRF_NEWFONT
Case 1
_WinAPI_SelectObject($hDC, $h_ListView_Font1)
Return $CDRF_NEWFONT
EndSwitch
Return $GUI_RUNDEFMSG
EndSwitch
EndSwitch
EndFunc ;==>WM_NOTIFY
Gruß,
UEZ
Klasse Implementierung Mars! ![]()
Jetzt könnte man die DLL noch einbetten und direkt vom Speicher aufrufen, so dass das Mitgeben der DLL unnötig wird.
Gruß,
UEZ
Du kannst folgendes tun, damit du die Zeile im Source Code findest:
1)
Kompiliere den Code mit folgendem Schalter:
#AutoIt3Wrapper_Run_Obfuscator=y
#Obfuscator_Parameters=/so
Es wird eine Datei DeinSkript_Obfuscated.au3 angelegt.
2) entferne aus dieser Datei alle Zeilenumbrüche mit _
3) Starte das neu kompilierte Skript auf dem Server.
Wenn nun die Fehlermeldung mit der Zeilennummer erscheint, schaue in der DeinSkript_Obfuscated.au3 nach. Wenn die Zeile keinen Sinn macht, müsste sie "in der Nähe" sein.
Gruß,
UEZ
Habe einen kritischen Bug gefunden!
Bei Multi Select Files wurde der Binär String ohne Komprimierung übergeben, wenn die Komprimierung Sinn macht. Somit ist der Base64 String korrupt! ![]()
Gruß,
UEZ
Da der String mit like ausgeführt wird, was passiert, wenn du nur "ServiceName." eingibst?
Gruß,UAZ UEZ