Warum so kompliziert? Es gibt doch DirGetSize:
[autoit]
#include <Array.au3>
$aSize = DirGetSize(@ScriptDir, 1)
_ArrayDisplay($aSize)
Warum so kompliziert? Es gibt doch DirGetSize:
[autoit]
#include <Array.au3>
$aSize = DirGetSize(@ScriptDir, 1)
_ArrayDisplay($aSize)
[verschoben nach H&U]
Das kann ich nicht bestätigen. Bei mir funktioniert das sogar mit noch längeren Pfaden.
Welche Fehlermeldung gibt es? Und bist Du sicher, dass nicht evtl. die WAV-Datei kaputt ist?
Zu POP3 gibt es eine passende UDF. Mit der kann man direkt auf den eMail-Account zugreifen. Ich hatte mal ein Programm damit geschrieben: Oscars POP-Show
Allerdings gibt es ein Problem: Die UDF beherrscht keine SSL-Verschlüsselung. GMX fällt damit mittlerweile aus, weil das dort mittlerweile Standard ist. Gmail weiss ich nicht (benutze ich nicht).
Mir ist dafür leider auch kein "Workaround" bekannt.
Ilse: Den Unmut einiger User hier kann ich gut nachvollziehen. Du stellst "1000" Fragen, aber es kommt von Dir immer nur "Ok, Thema gelöst!", nachdem Du den Scriptteil (meistens schon ein komplettes Script) bekommen hast. Nie gab es bisher ein veröffentlichtes Script von Dir, indem man sehen kann, wozu die Hilfe gut war. Solch ein Verhalten wird in einem Forum nicht gern gesehen. Du "saugst" Dir die Informationen/Lösungen und gibst dem Forum nichts zurück. Wie wäre es, wenn Du Dein Quiz (oder was immer das werden soll), hier unter "Scripte" oder "Projekte" mal veröffentlichst? Denk mal darüber nach...
wäre aber Perfekt für decompiling schutz XD darum hab ich das rausgesucht ... für C etc hab ich Visual Studio 2013
(mit der ich aber keine Geld verdienen darf egal in was für einer art ... also nur Freeware ... naja ... aber besser das als garkein Relase
), aber eigentlich wollt ich mir über spenden und Werbung, die den User natürlich nicht stört
also nicht irgend ne internet seite die alle Fünf minuten aufgeht oder so was ... er nen kleinen banner oder so was ^^, (von dennen ich nicht viele erwarte obwohl ich extrem viel zeit investiert hab und ihm so viel Sicherheit gegeben hab das Profie programme grade mithalten können ... es hat kein hübsches desing aber jeder Client Modifieziert sich selbst und ist somit nach kurtzer zeit mehr oder weniger uneinnembar ... durch den Generalschlüssel der sich zwa berechnen lässt aber trozdem für jeden Client individuell ist kann ich vergessene Userdaten herausfinden ... da es einen Login system gibt damit nicht jeder der zu dem Rechner zugrif hat auch direkt auf die Pws zugriff hat es ist zwa nur Client weit aber ich sag mal ... alles in allem .... is das ding ein Tressor ... nur das decompiling ist nervig ...) eine kleinigkeit Finanzieren naja das muss ich dann doch anders machen XD
fals jemand noch nen tip hat wie ich das ding sicherer machen kann pls melden
Wenn Du Dein Programm im gleichen Stil geschrieben hast, wie diesen Post, dann brauchst Du das nicht mehr sicherer zu machen. Das kann sowieso niemand lesen! SCNR. :pinch:
Wenn Du unbedingt das Dialogfenster fernsteuern willst:
[autoit]
Run(@ComSpec & ' /c ' & 'desk.cpl')
WinWait('[CLASS:CabinetWClass]')
ControlClick('[CLASS:CabinetWClass]', '', '[CLASS:Button; INSTANCE:1]')
Funktioniert zumindest bei mir (Windows 7, 64Bit).
Oder die zweite Gui als Child der Ersten eintragen:
#include <GUIConstantsEx.au3>
$hGui1 = GUICreate('Gui1', 400, 400)
$idButton = GUICtrlCreateButton('Show Gui2', 10, 10, 120, 25)
$hGui2 = GUICreate('Gui2', 200, 200, -1, -1, Default, Default, $hGui1)
GUISetState(@SW_SHOW, $hGui1)
While True
$aMsg = GUIGetMsg(1)
Switch $aMsg[0]
Case $GUI_EVENT_CLOSE
Switch $aMsg[1]
Case $hGui1
Exit
Case $hGui2
GUISetState(@SW_HIDE, $hGui2)
EndSwitch
Case $idButton
GUISetState(@SW_SHOW, $hGui2)
EndSwitch
WEnd
Bitte unterlasse diese Mehrfachposts so kurz hintereinander. Wenn Du noch etwas hinzufügen/ändern willst, benutze den "Bearbeiten"-Button.
Außerdem würdest Du viel mehr Hilfe erhalten, wenn Du Dein Script posten würdest.
Happy Birthday, eukalyptus!
Hier die Antwort vom Microsoft Support (einfach bei Google "displayswitch" eintragen):
Zitat
Displayswitch.exe also has command line parameters that allow you to create a shortcut that will set a specific display mode./internal
/clone
/extend
/external
Bei zwei Summanden brauchst Du doch nicht viel probieren:
#include <Array.au3>
$iSumme = 234
$aSummand = _GetSumArray($iSumme)
_ArrayDisplay($aSummand)
Func _GetSumArray($iSumme)
Local $aOut[$iSumme - 1][2], $iIndex = 0
Do
$aOut[$iIndex][0] = $iIndex + 1
$aOut[$iIndex][1] = $iSumme - $iIndex - 1
$iIndex += 1
Until $iIndex >= $iSumme - 1
Return $aOut
EndFunc ;==>_GetSumArray
Wenn Du längere Berechnungen/Scriptteile oder Messageboxen verwenden willst, dann solltest Du das vielleicht so lösen:
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
$List1 = GUICtrlCreateList("", 376, 32, 201, 348)
GUICtrlSetData(-1, "Start|Ende|")
GUICtrlSetFont(-1, 12, 400, 0, "Verdana")
Global $Dummy = GUICtrlCreateDummy()
Global $AccelKeys[1][2] = [["{Enter}", $Dummy]]
GUISetAccelerators($AccelKeys)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
Global $fDblClk = False
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
;~ Case $List1
;~ _Menu1()
;~ Case $Dummy
;~ _Menu1()
EndSwitch
If $fDblClk Then
$fDblClk = False
MsgBox(0, 'Test', 'Doppelklick')
EndIf
WEnd
Func _Menu1()
Switch GUICtrlRead($List1)
Case "Start"
MsgBox(0, "", "Start")
Case "Ende"
MsgBox(0, "", "Ende")
EndSwitch
EndFunc ;==>_Menu1
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg
Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
If Not IsHWnd($List1) Then $hWndListBox = GUICtrlGetHandle($List1)
$hWndFrom = $ilParam
$iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
$iCode = BitShift($iwParam, 16) ; Hi Word
Switch $hWndFrom
Case $List1, $hWndListBox
Switch $iCode
Case $LBN_DBLCLK ; Sent when the user double-clicks a string in a list box
$fDblClk = True
EndSwitch
EndSwitch
; Proceed the default AutoIt3 internal message commands.
; You also can complete let the line out.
; !!! But only 'Return' (without any value) will not proceed
; the default AutoIt3-message in the future !!!
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
Hast Du es mal damit versucht:
[autoit]Run(@ComSpec & ' /c ' & 'displayswitch.exe /clone')
[/autoit]Hier mal als Beispiel:
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
$List1 = GUICtrlCreateList("", 376, 32, 201, 348)
GUICtrlSetData(-1, "Start|Ende|")
GUICtrlSetFont(-1, 12, 400, 0, "Verdana")
Global $Dummy = GUICtrlCreateDummy()
Global $AccelKeys[1][2] = [["{Enter}", $Dummy]]
GUISetAccelerators($AccelKeys)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
;~ Case $List1
;~ _Menu1()
;~ Case $Dummy
;~ _Menu1()
EndSwitch
WEnd
Func _Menu1()
Switch GUICtrlRead($List1)
Case "Start"
MsgBox(0, "", "Start")
Case "Ende"
MsgBox(0, "", "Ende")
EndSwitch
EndFunc ;==>_Menu1
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg
Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
If Not IsHWnd($List1) Then $hWndListBox = GUICtrlGetHandle($List1)
$hWndFrom = $ilParam
$iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
$iCode = BitShift($iwParam, 16) ; Hi Word
Switch $hWndFrom
Case $List1, $hWndListBox
Switch $iCode
Case $LBN_DBLCLK ; Sent when the user double-clicks a string in a list box
ToolTip('Doppelklick' & @CRLF & GUICtrlRead($List1))
AdlibRegister('_CloseDblClk', 1000)
EndSwitch
EndSwitch
; Proceed the default AutoIt3 internal message commands.
; You also can complete let the line out.
; !!! But only 'Return' (without any value) will not proceed
; the default AutoIt3-message in the future !!!
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
Func _CloseDblClk()
AdlibUnRegister('_CloseDblClk')
ToolTip('')
EndFunc
Wozu gibt's AutoIt?
Du kannst doch die MouseClick-Befehle per String(RegExp)Replace anpassen.
Ich hätte noch diesen hier rumliegen:
Bei dem sind beide "Nasen" innen. Ich weiß nicht, inwieweit das entscheidend ist. Kann man auf dem Bild ganz gut sehen.
[verschoben nach "Hilfe & Unterstützung"]
Zum sortieren mittels Drag & Drop habe ich mal das hier geschrieben:
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
Opt('GUIOnEventMode', 1)
[/autoit] [autoit][/autoit] [autoit]$hGui = GUICreate('ListView Drag&Drop', 240, 280)
GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseGui')
$hListView = GUICtrlCreateListView('AAA|BBB|CCC', 10, 10, 220, 260)
$hWndListView = GUICtrlGetHandle($hListView)
For $i = 0 To 19
GUICtrlCreateListViewItem(StringFormat('%s|%s|%s', Chr(Random(65, 90, 1)) & Chr(Random(97, 122, 1)), Chr(Random(65, 90, 1)), Random(0, 9, 1)), $hListView)
Next
GUISetState()
GUIRegisterMsg($WM_NOTIFY, '_DragListView')
WinWaitClose($hGui)
[/autoit] [autoit][/autoit] [autoit]Func _CloseGui()
GUIDelete($hGui)
EndFunc ;==>_End
Func _DragListView($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iwParam
Local Static $iStartIndex = -1, $iEndIndex = -1, $sItemText = "", $fLVDrag = False
Switch $iMsg
Case $WM_MOUSEMOVE
Local $aHit = _GUICtrlListView_HitTest($hWndListView)
If IsArray($aHit) Then _GUICtrlListView_SetItemFocused($hWndListView, $aHit[0])
Case $WM_NOTIFY
Local $tNMHDR, $hWndFrom, $iCode, $iNewItem, $tNMLISTVIEW
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, 'hWndFrom'))
$iCode = DllStructGetData($tNMHDR, 'Code')
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_BEGINDRAG
If Not $fLVDrag Then
$tNMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $ilParam)
$iStartIndex = DllStructGetData($tNMLISTVIEW, 'Item')
$sItemText = _GUICtrlListView_GetItemTextString($hWndListView, $iStartIndex)
$fLVDrag = True
GUIRegisterMsg($WM_MOUSEMOVE, '_DragListView')
EndIf
Case $LVN_HOTTRACK
If $fLVDrag Then
$tNMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $ilParam)
$iEndIndex = DllStructGetData($tNMLISTVIEW, 'Item')
$fLVDrag = False
GUIRegisterMsg($WM_MOUSEMOVE, '')
Select
Case $iStartIndex < $iEndIndex
$iNewItem = _GUICtrlListView_InsertItem($hWndListView, "", $iEndIndex + 1)
_GUICtrlListView_SetItemText($hWndListView, $iNewItem, $sItemText, -1)
_GUICtrlListView_SetItemSelected($hWndListView, $iNewItem, True, True)
_GUICtrlListView_DeleteItem($hWndListView, $iStartIndex)
Case $iStartIndex > $iEndIndex
_GUICtrlListView_DeleteItem($hWndListView, $iStartIndex)
$iNewItem = _GUICtrlListView_InsertItem($hWndListView, "", $iEndIndex)
_GUICtrlListView_SetItemText($hWndListView, $iNewItem, $sItemText, -1)
_GUICtrlListView_SetItemSelected($hWndListView, $iNewItem, True, True)
EndSelect
EndIf
EndSwitch
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>_DragListView