Siehe Edit im letzten Post...
Beiträge von SEuBo
-
-
Probier das ganze mal wenn nur ein internet explorer Fenster gestartet ist.
[autoit]
ich denke mal da liegt dein Fehler grade. Ansonsten musst du den Handle des zu verknüpfenden Fensters selber bestimmen und zwar mit:WinGetHandle("")
[/autoit]
(und zwar genauso), wenn das gewünschte Fenster aktiv ist. Dafür kannst du zb ne eigene Funktion machen. Das ganze könnte dann so aussehen:Spoiler anzeigen
[autoit]#include <IE.au3>
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{ESC}","_stirb")
HotKeySet("{F5}","_Attach")
HotKeySet("{F9}","_Run")Global $oIE
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Attach()
[/autoit] [autoit][/autoit] [autoit]
If StringInStr(WinGetTitle(""),"Internet Explorer") > 0 Then
$hWnd = WinGetHandle("")
$oIE = _IEAttach($hWnd,"HWND")
TrayTip("Erfolg","Erfolgreich verknüpft.",3)
Else
TrayTip("Fehler","Aktives Fenster ist kein Internet Explorer.",3)
EndIf
EndFuncFunc _Run()
[/autoit] [autoit][/autoit] [autoit]
While 1
sleep(2000)
$oURL = _IEPropertyGet($oIE,"locationurl")
TrayTip("",$oURL,1)
WEnd
EndFuncFunc _Stirb()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncWhile 1
[/autoit]
Sleep(200)
WEndDas MUSS jetzt aber funktionieren.
-
Spoiler anzeigen
[autoit]#include <IE.au3>
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{ESC}","_stirb")
Opt("WinTitleMatchMode",2)
If ProcessExists("iexplore.exe") AND WinExists("Internet Explorer") Then
$hWnd = WinGetHandle("Internet Explorer")
$oIE = _IEAttach($hWnd,"HWND")
Else
MsgBox(0,"Fehler","kein IE gestartet. Skript beendet sich")
_Stirb()
EndIfWhile 1
[/autoit] [autoit][/autoit] [autoit]
sleep(2000)
$oURL = _IEPropertyGet($oIE,"locationurl")
TrayTip("",$oURL,1)
WEndFunc _Stirb()
[/autoit]
Exit
EndFuncUnd beim FF kann ich dir auch nich weiterhelfen.. Aber hast du denn auch das benötigte FF plugin installiert?
https://autoit.de/index.php?page=Thread&threadID=3629 -
Dann solltest du versuchen vorher das Browserfenster mit
_IEAttach() mit deinem Skript "zu verknüpfen" -
Hier wäre eine FF.au3 lösung die ich grad durch zufall im Netz gefunden hab
[autoit]
(ungetestet, da ich FF.au3 nichtmal habe *schäm*)$text = _FFSetGet($Socket,"window.content.status")
[/autoit]eine ebenfalls schlanke version für die IE.au3, wäre dann das hier:
[autoit]_IEPropertyGet($oIE,"statustext")
[/autoit]Gruß
-
Einfach bei GUICtrlCreatePic den EX-Style "$GUI_WS_EX_PARENTDRAG" einfügen (hinter das BitOr() )
Also so
Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form2 = GUICreate("Form2", 316, 283, 303, 185, BitOR($WS_MINIMIZEBOX,$WS_SYSMENU,$WS_POPUP,$WS_GROUP,$WS_CLIPSIBLINGS))
$Pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\\Desktop\Projekt Neu\Main\spawns\12.jpg", 0, 0, 334, 300, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS),$GUI_WS_EX_PARENTDRAG)
$Button1 = GUICtrlCreateButton("zurück", 0, 0, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]$nMsg = GUIGetMsg()
[/autoit]
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd -
Spoiler anzeigen
[autoit]#include <IE.au3>
[/autoit] [autoit][/autoit] [autoit]$oIE = _IECreate("www.google.de",1,1)
[/autoit] [autoit][/autoit] [autoit]
_IELoadWait($oIE)MsgBox(0,"",ControlGetText("Google","","Edit1"))
[/autoit] [autoit][/autoit] [autoit][/autoit]Das fällt mir grad auf die schnelle ein, und ist mit sicherheit eine recht "unsaubere" lösung.. aber es klappt..
-
Edit: Neues "problem", dafür bitte in den 2ten Post schauen.
Hallo alle miteinander,
Also irgendwie komm ich nicht weiter - ich habe mir gestern abend überlegt einen eigenen Musikexplorer zu erstellen - Mich hat es total genervt dass ich die Schriftgröße meiner Musikordner (da windows explorer) nicht mit STRG+Mausrad vergrößern kann, so wie ich es zb. vom Firefox gewohnt bin. Also hab ich mich da mal rangesetzt und wollte natürlich das "zoomen", bzw das ändern der schriftgröße hinbekommen. Soweit auch kein Problem - das ganze schaut dann so aus:
(benötigt wird die MouseSetOnEvent_UDF.au3)Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <MouseSetOnEvent_UDF.au3>
#include <Misc.au3>
HotKeySet("{ESC}", "_stirb")$Font = 12
[/autoit] [autoit][/autoit] [autoit]
$mGUI = GUICreate("Teste",800,600)
$mxPlore = GUICtrlCreateLabel("Hier kommt der Explorer", 50, 200, 600, 50)GUICtrlSetFont(-1,$Font)
[/autoit] [autoit][/autoit] [autoit]
GUISetState()_MouseSetOnEvent($MOUSE_WHEELSCROLLUP_EVENT, "_zoom", 1,"",$mGUI)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_MouseSetOnEvent($MOUSE_WHEELSCROLLDOWN_EVENT, "_zoom", 2,"",$mGUI)Func _stirb()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc ;==>_stirbFunc _zoom($iDir)
[/autoit] [autoit][/autoit] [autoit]
If _IsPressed(11) AND WinActive($mGUI) Then
Switch $iDir
Case 1
$Font += 1
GUICtrlSetFont($mxPlore,$Font)
Case 2
$Font -= 1
GUICtrlSetFont($mxPlore,$Font)
EndSwitch
EndIf
EndFunc ;==>_zoomWhile 1
[/autoit]
Sleep(20)
WEndJetzt habe ich mir allerdings gedacht, dass ich mit sicherheit später nicht nur eine Control in meinem GUI haben werde, die ich vergrößern möchte, sonder mehrere _einzeln_
Also habe ich das ganze ein bisschen erweitert.
Das Ziel des ganzen ist es, die Schriftgröße des aktuell unter der Maus befindlichen Controls zu ändern - Da ich aber nicht wusste wie ich den Handle eine Controls unter der Maus herausbekomme, habe ich übergangsweise mit ControlGetFocus gearbeitet - also das zuletzt angeklickte Control soll vergrößert / verkleinert werden.Die Handles sowie die aktuelle schriftgröße werden in einem Array gespeichert, eigentlich sollte innerhalb der Funktion im Array nach dem Handle gesucht werden, und die dazugehörige Schriftgröße bei einem WheelUp um 0.5 vergrößert und bei einem WheelDown um 0.5 verkleinert werden. Klappt auch bei den Werten im Array - nur leider übernimmt er diese nicht ins GUI...
Zum anschauen:
(Hier wird zusätzlich zur MouseSetOnEvent_UDF.au3 auch die ArrayMore.au3 benötigt.)Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <MouseSetOnEvent_UDF.au3>
#include <Misc.au3>
#include <GUIListBox.au3>
#include <GUIListView.au3>
#include <Array.au3>
#include <ArrayMore.au3>
HotKeySet("{ESC}", "_stirb")
HotKeySet("{-}","_ZeigFont")
Dim $Font[1][2]
$mGUI = GUICreate("Teste",1000,600)
$mLabel = GUICtrlCreateLabel("Das ist nur eine Test-GUI",20,20,800,100)
$mListBox = GUICtrlCreateList("Test",20,250,460,300)
$mListView = GUICtrlCreateListView("Test",500,250,480,300)
$mEdit = GUICtrlCreateEdit("Blabalabalbalba",20,150,300,100)_Array2DAdd($Font,ControlGetHandle($mGUI,"",$mLabel)&'|'&8.5)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_Array2DAdd($Font,ControlGetHandle($mGUI,"",$mListBox)&'|'&8.5)
_Array2DAdd($Font,ControlGetHandle($mGUI,"",$mListView)&'|'&8.5)
_Array2DAdd($Font,ControlGetHandle($mGUI,"",$mEdit)&'|'&8.5)
_Array2DEmptyDel($Font)_MouseSetOnEvent($MOUSE_WHEELSCROLLUP_EVENT, "_zoom", 1,"",$mGUI)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_MouseSetOnEvent($MOUSE_WHEELSCROLLDOWN_EVENT, "_zoom", 2,"",$mGUI)GUISetState()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
While 1
$mhWnd = ControlGetHandle($mGUI,"",ControlGetFocus($mGUI))
$n = _ArraySearch($Font,$mhWnd)
ToolTip($mhWnd,MouseGetPos(0),MouseGetPos(1),"")
;~ TrayTip("Handle",$mhWnd&@CRLF&@CRLF&$n&@CRLF&@CRLF&$Font[$n][1],3)
Sleep(20)
WEndFunc _zeigfont()
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($Font)
EndFuncFunc _stirb()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc ;==>_stirbFunc _zoom($iDir)
[/autoit]
$mhWnd = ControlGetHandle($mGUI,"",ControlGetFocus($mGUI))
$n = _ArraySearch($Font,$mhWnd,0,0,1)
TrayTip("Handle",$mhWnd&@CRLF&@CRLF&$n&@CRLF&@CRLF&$Font[$n][1],3)
If _IsPressed(11) Then
Switch $iDir
Case 1
$Font[$n][1] = $Font[$n][1] + 0.5
GUICtrlSetFont($mhWnd,$Font[$n][1])
Case 2
$Font[$n][1] = $Font[$n][1] - 0.5
GUICtrlSetFont($mhWnd,$Font[$n][1])
EndSwitch
EndIf
;
EndFunc ;==>_zoomWenn ihr mir helfen könnt den Fehler zu finden / mir eine alternative zu meiner vorgehensweise sagen könntet, wär ich schonmal ein gutes stück weiter
Danke & Gruß
SEuBo
EDIT: Habe grad nochmal einen genauen blick in die Hilfe geworfen und auch dort steht ja, dass man dafür die ControlID braucht. Nicht den ControlHandle. jetzt brauch ich entweder eine lösung die schriftgröße über den handle zu verändern, ODER die ControlID des zuletzt aktiven Controls auszulesen.. sowas wie
[autoit]ControlGetID(ControlGetFocus(""))
[/autoit];/
EDIT: Titel nochmal angepasst - vielleciht schauen dann mehr hier in den thread
-
Naja dann versteckst du die vom 3ten halt auch.
Das ganze wird aber ab nem gewissen punkt sehr aufwendig und unübersichtlich. Eine sicherlich "sauberere" methode wäre es für die einzelnen Groups die du haben willst Child GUIs zu erstellen und die ein / auszublenden ... also so:Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 472, 162, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 16, 16, 75, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Button2", 16, 56, 75, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Button3", 16, 88, 75, 25, $WS_GROUP)
$Button4 = GUICtrlCreateButton("Button4", 16, 128, 75, 25, $WS_GROUP)
$Group1 = GUICtrlCreateGroup("", 104, 8, 9, 153)
GUICtrlCreateGroup("", -99, -99, 1, 1);ChildGUI 1 Start
[/autoit] [autoit][/autoit] [autoit]
$ChildGUI1 = GUICreate("",472,160,0,0,$WS_CHILD,$WS_EX_TOOLWINDOW,$Form1)
$Group2 = GUICtrlCreateGroup("Group2", 128, 8, 233, 153)
$Edit1 = GUICtrlCreateEdit("", 152, 32, 185, 89)
GUICtrlSetData(-1, "Edit1")
GUICtrlCreateGroup("", -99, -99, 1, 1)
;ChildGUI 1 Ende;ChildGUI 2 Start
[/autoit] [autoit][/autoit] [autoit]
$ChildGUI2 = GUICreate("",472,160,0,0,$WS_CHILD,$WS_EX_TOOLWINDOW,$Form1)
$Group3 = GUICtrlCreateGroup("Group3", 128, 8, 233, 153)
$Button5 = GUICtrlCreateButton("Button5", 144, 40, 75, 25, $WS_GROUP)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 272, 56, 97, 17)
$Combo1 = GUICtrlCreateCombo("Combo1", 176, 96, 145, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
;ChildGUI 2 Start;ChildGUI 3 Start
[/autoit] [autoit][/autoit] [autoit]
$ChildGUI3 = GUICreate("",472,160,0,0,$WS_CHILD,$WS_EX_TOOLWINDOW,$Form1)
$Group4 = GUICtrlCreateGroup("Group4", 128, 8, 233, 153)
$Button6 = GUICtrlCreateButton("Button6", 144, 40, 75, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Label1",144, 80, 70, 30)
GUICtrlCreateGroup("", -99, -99, 1, 1)
;ChildGUI 3 Start#EndRegion ### END Koda GUI section ###
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUISwitch($Form1)
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUISetState(@SW_SHOW,$ChildGUI1)
GUISetState(@SW_HIDE,$ChildGUI2)
GUISetState(@SW_HIDE,$ChildGUI3)Case $Button2
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW,$ChildGUI2)GUISetState(@SW_HIDE,$ChildGUI1)
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE,$ChildGUI3)Case $Button3
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW,$ChildGUI3)GUISetState(@SW_HIDE,$ChildGUI1)
[/autoit]
GUISetState(@SW_HIDE,$ChildGUI2)
EndSwitch
WEnd -
Ich würde die alle beim GUI aufbau definieren und dann mit GUICtrlSetstate(..,$GUI_HIDE) und GUICtrlSetState(....,$GUI_SHOW) arbeiten... ungefähr so:
Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 472, 162, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 16, 16, 75, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Button2", 16, 56, 75, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Button3", 16, 88, 75, 25, $WS_GROUP)
$Button4 = GUICtrlCreateButton("Button4", 16, 128, 75, 25, $WS_GROUP)
$Group1 = GUICtrlCreateGroup("", 104, 8, 9, 153)
GUICtrlCreateGroup("", -99, -99, 1, 1);Group2 Start
[/autoit] [autoit][/autoit] [autoit]
$Group2 = GUICtrlCreateGroup("Group2", 128, 8, 233, 153)
$Edit1 = GUICtrlCreateEdit("", 152, 32, 185, 89)
GUICtrlSetData(-1, "Edit1")
GUICtrlCreateGroup("", -99, -99, 1, 1)
;Group 2 Ende;Group 3 Start
[/autoit] [autoit][/autoit] [autoit]
$Group3 = GUICtrlCreateGroup("Group3", 128, 8, 233, 153)
$Button5 = GUICtrlCreateButton("Button5", 144, 40, 75, 25, $WS_GROUP)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 272, 56, 97, 17)
$Combo1 = GUICtrlCreateCombo("Combo1", 176, 96, 145, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
;Group 3 Ende#EndRegion ### END Koda GUI section ###
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetState($Group2,$GUI_HIDE)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Group3,$GUI_HIDE)
GUICtrlSetState($Edit1,$GUI_HIDE)
GUICtrlSetState($Button5,$GUI_HIDE)
GUICtrlSetState($Checkbox1,$GUI_HIDE)
GUICtrlSetState($Combo1,$GUI_HIDE)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUICtrlSetState($Button5,$GUI_HIDE)
GUICtrlSetState($Checkbox1,$GUI_HIDE)
GUICtrlSetState($Combo1,$GUI_HIDE)
GUICtrlSetState($Group3,$GUI_HIDE)
;versteckt alles andereGUICtrlSetState($Group2,$GUI_SHOW)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Edit1,$GUI_SHOW)
;Zeigt die Controls an
Case $Button2
GUICtrlSetState($Group2,$GUI_HIDE)
GUICtrlSetState($Edit1,$GUI_HIDE)
;versteckt alles andereGUICtrlSetState($Button5,$GUI_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Checkbox1,$GUI_SHOW)
GUICtrlSetState($Combo1,$GUI_SHOW)
GUICtrlSetState($Group3,$GUI_SHOW)EndSwitch
[/autoit]
WEnd -
Schau mal hier rein
https://autoit.de/index.php?page…80&pageNo=4
Die jungs scheinen damit auch ein problem zu haben - vielleicht gibts ja mittlerweile schon ne lösung - dann kannst du dich ja mal mit denen kurzschließen. Mir fällt allerdings auch grad nix gescheites zu deinem Problem ein...EDIT: funkey da sieht man mal wieder wie Ahnungslos ich doch bin...
-
Bei mir tut das Ding gar nicht!
Da muss ich mich anschließen. was aber mit sicherheit an den Fehlenden Images liegt, die du uns sicherlich auch zur verfügung hättest stellen können.
Ich versuch durch das ganze skript mal durchzublicken - aber ich frage mich, warum du das ganze für die Child GUI mit GDI-Plus machst? Ist es nich einfacher das Pic für die Child GUI auch mit GUICtrlCreatePic zu setzen? Denn soweit ich das bisher immer gesehen habe ( hab selbst noch nicht mit GDIPlus gearbeitet ) ist GDIPlus sehr aufdringlich und schlängelt sich irgendwie immer in den absoluten vordergrund.
Wie immer: korrigiert mich wenn ich falsch liege :wacko:
-
Ja die Ordner existieren...War eigentlich an subzero007 gerichtet
Naja egal,
Hier - ich hab übrigens langeweile gehabt - jetzt hast du auch die abfrage eingabeut ob das Verzeichniss zum kopieren vorhanden ist.Wenns beim löschen probleme gibts kannste dich ja melden
Spoiler anzeigen
[autoit]#include<String.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include<WindowsConstants.au3>
#include<Misc.au3>
#include <Process.au3>
#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>
#include<string.au3>
#include<Constants.au3>
#include <GuiButton.au3>
#include<String.au3>
#Include <File.au3>
#include<Process.au3>
Opt('MustDeclareVars', 1)
Opt("GUIOnEventMode", 1)
Global $ExitID, $Folder1, $Folder2_Main()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Main()
[/autoit] [autoit][/autoit] [autoit]
;Initialize variables
Local $GUIWidth = 300, $GUIHeight = 140
Local $Button_1GUICreate("Update", $GUIWidth, $GUIHeight)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel ("Es wird nun ein Update auf Ihrem Computer installiert. Eine eventuell vorhandene Installation wird überschrieben",20, 20, 260, 60)
$Button_1 = GUICtrlCreateButton ("Update starten" , 20, 90, 125, 20, 0)
GUICtrlSetOnEvent($Button_1, "_CallCF")
$ExitID = GUICtrlCreateButton("cancel", 180, 90, 70, 20)
GUICtrlSetOnEvent($ExitID, "onexit")GUISetOnEvent($GUI_EVENT_CLOSE, "onexit")
[/autoit] [autoit][/autoit] [autoit]GUISetState() ; display the GUI
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Sleep(1000)
WEnd
EndFunc ;==>_MainFunc _CallCF()
[/autoit] [autoit][/autoit] [autoit]
$Folder1 = "C:\Temp\gis-test"
$Folder2 = "C:\test"
CopyFolder()
EndFunc
Func CopyFolder()
Local $err, $ProcID, $origfilesize, $copyfilesize, $MBcopy, $percent, $decimalplace, $decimalplaceMBcopy, $MBorig, $decimalplaceMBorig
$err = _RunDOS("dir " & $Folder1);schau ob das verzeichnis existiert
If $err = 0 then ; wenn ja, fahre fort.$ProcID = Run(@ComSpec & ' /c xcopy /e /h /y "' & $Folder1 & '" "' & $Folder2 & '"', "", @SW_HIDE)
[/autoit] [autoit][/autoit] [autoit]
ProgressOn("Progress Meter", "")
$origfilesize = DirGetSize($Folder1)
Do
$copyfilesize = DirGetSize($Folder2)
$MBcopy = dirGetSize($Folder2) / 1024 / 1024
$percent = $copyfilesize / $origfilesize * 100$decimalplace = Round ($percent)
[/autoit]
$decimalplaceMBcopy = Round ($MBcopy)
ProgressSet ($percent, $decimalplace & "% " & "(" & _
$decimalplaceMBcopy & ") Mb has been copied.")
Sleep(500)
Until NOT ProcessExists($ProcID)
ProgressOff ()
$copyfilesize = DirGetSize($Folder2)
$MBorig = dirGetSize($Folder1) / 1024 / 1024
$decimalplaceMBorig = Round ($MBorig)
If $origfilesize = $copyfilesize then
Msgbox(0,"Backup Complete", "All " & $decimalplaceMBcopy & " Mb of files and folders were copied successfully.")
Else
Msgbox(0,"Error", "The backup did not complete successfully. Only " & $decimalplaceMBcopy & " Mb of " & $decimalplaceMBorig & " Mb copied successfully.")
EndIf
Else ;Wenn nicht..
MsgBox(48,"Error","Updater could not find the folder to copy."&@CRLF&"Please make sure you did succesfully"&@CRLF&"download the update and try again.")
EndIf
EndFunc -
Ich befürchte fast, ein gesperrter Desktop IST gesperrt - das heißt ein "normales" programm kommt an dem punkt nicht weiter (korrigiert mich wenn ich falsch liege)... Mein nächster gedanke wäre also dass du dein Script irgendwie zum Windows Dienst machen musst - nur hab ich keine Ahnung ob und wie das möglich ist.
Da solltest du warten bis sich die Profis zu wort melden -
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
GUICreate("Beispiel",800,600)
GUISetState()
GUICtrlCreatePic(@ScriptDir&"\filmstreifen.jpg",0,0,800,600)
GUICtrlSetState(-1,$GUI_DISABLE) ; wichtig, damit man den button klicken kann
GUICtrlCreateButton("Hallo",200,200,200,25)While 1
[/autoit]
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
sleep(10)
WEndfilmstreifen.jpg einfach durch eine jpg ersetzen die du grade da hast
-
Hmm ich glaube nicht - aber ich habe adlibenable noch nie benutzt - mir fehlte bisher einfach die Situation in der ich es als nützlich empfunden hätte. Du kannst aber wenn ich mich nicht irre einfach deine GUI in den OnEventModus setzen - und dann in der While Schleife mit hilfe von TimerInit() und TimerDiff() jede Sekunde den Pixel scannen. So kannst du auch noch weitere "zeitgesteuerte" Funktionen einbauen . Ich hoffe ich drücke mich nicht zu kompliziert aus. Ich versuche dir mal ein beispiel zu basteln aber so wie ich mich kenne wird das 10-20 min dauern
EDIT:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <SliderConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode",1)
$Fenster = GUICreate("Fenster", 152, 46, 456, 225)
$Slider = GUICtrlCreateSlider(0, 0, 150, 45)
GUICtrlSetOnEvent($Slider, "_SliderMoved")GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE,"_Stirb")#Region Funktionen
[/autoit] [autoit][/autoit] [autoit]
Func _Stirb()
Exit
EndFunc
Func _SliderMoved()
MsgBox(0,"Pass auf!","Irgend so ein Typ fuchtelt mit dem Slider rum !")
EndFunc
#EndRegion
;-->
$tColor = TimerInit();Startet den Timer für die Farbüberprüfung
$tTrayTip = TimerInit();Startet den Timer für den traytip (alle 10 sekunden kommt eine)
$TrayTip_sekunden = 0
$Farbe = Hex(PixelGetColor(MouseGetPos(0),MouseGetPos(1)))
While 1
ToolTip($Farbe,MouseGetPos(0),MouseGetPos(1))If TimerDiff($tColor) > 1000 Then
[/autoit]
$Farbe = Hex(PixelGetColor(MouseGetPos(0),MouseGetPos(1)))
$tColor = TimerInit() ; Startet den Timer neu
EndIf
If TimerDiff($tTrayTip) > 10000 Then
$TrayTip_sekunden += 10
TrayTip("",$TrayTip_sekunden&" sekunden sind vergangen.",1)
$tTrayTip = TimerInit() ; Startet den Timer neu
EndIf
Sleep(1)
WEndAlle 10 sekunden kommt jetzt der TrayTip
Und jede Sekunde fragt er die Farbe unter dem mauscursor ab
(die wird in dem ToolTip neben der Maus gezeigt)
Und das mit dem Slider funktioniert im OnEvent mode natürlich die ganze ZeitEDIT2: Alternativ zu "GUICtrlSetOnEvent($Slider, "_SliderMoved")" in Zeile 7 kannst du auch
GUICtrlSetOnEvent(-1, "_SliderMoved") benutzen. -1 steht dann immer für das zuletzt erschaffene Objekt
EDIT3: Codekorrektur - Zeile 34 und 35 getauscht. jetzt ists richtig -
[autoit]
$oIE = _IECreate("www.deineseite.de/index.html")
[/autoit]
_IENavigate($oIE, 'javascript:openLogoutPopUp()', 0)sowas hier?
-
also was mal definitiv falsch ist:
[autoit]
[/autoit]
$Folder1 = "C:\Temp\gis-test"
$Folder2 = "C:\test"gehört viel weiter oben hin, weil du sonst '' nach '' kopiert und das dauert immer^^
Jo is mir dann auch ein paar minütchen nach dem posten aufgefallen. Also entweder packt man die deklaration noch in die Funktion, oder man macht es direkt beim globalen deklarieren in zeile 15.
Existieren bei dir auch Folder1 und Folder2 auf der festplatte? weil wenn nicht, bleibt der balken bei mir auch stehen. Hat aber nachdem ich die Ordner erstellt habe dann auch funktioniert...@Munsi1: Gerne doch Dafür ist das Forum ja da.
Gruß -
Versuchs mal so:
Spoiler anzeigen
[autoit]#include<String.au3>
[/autoit] [autoit][/autoit] [autoit]
#include<WindowsConstants.au3>
#include<Misc.au3>#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>
#include<string.au3>
#include<Constants.au3>
#include <GuiButton.au3>
#include<String.au3>
#Include <File.au3>
#include<Process.au3>
Opt('MustDeclareVars', 1)
Opt("GUIOnEventMode", 1)
Global $ExitID, $Folder1, $Folder2_Main()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Main()
[/autoit] [autoit][/autoit] [autoit]
;Initialize variables
Local $GUIWidth = 300, $GUIHeight = 140
Local $Button_1GUICreate("Update", $GUIWidth, $GUIHeight)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel ("Es wird nun ein Update auf Ihrem Computer installiert. Eine eventuell vorhandene Installation wird überschrieben",20, 20, 260, 60)
$Button_1 = GUICtrlCreateButton ("Update starten" , 20, 90, 125, 20, 0)
GUICtrlSetOnEvent($Button_1, "_CallCF")
$ExitID = GUICtrlCreateButton("cancel", 180, 90, 70, 20)
GUICtrlSetOnEvent($ExitID, "onexit")GUISetOnEvent($GUI_EVENT_CLOSE, "onexit")
[/autoit] [autoit][/autoit] [autoit]GUISetState() ; display the GUI
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Sleep(1000)
WEnd
EndFunc ;==>_MainFunc _CallCF()
[/autoit] [autoit][/autoit] [autoit]
$Folder1 = "C:\Temp\gis-test"
$Folder2 = "C:\test"
CopyFolder($Folder1, $Folder2)
EndFunc
Func CopyFolder($Folder1, $Folder2)
Local $ProcID, $origfilesize, $copyfilesize, $MBcopy, $percent, $decimalplace, $decimalplaceMBcopy, $MBorig, $decimalplaceMBorig
$ProcID = Run(@ComSpec & ' /c xcopy /e /h /y "' & $Folder1 & '" "' & $Folder2 & '"', "", @SW_HIDE)
ProgressOn("Progress Meter", "")
$origfilesize = DirGetSize($Folder1)
Do
$copyfilesize = DirGetSize($Folder2)
$MBcopy = dirGetSize($Folder2) / 1024 / 1024
$percent = $copyfilesize / $origfilesize * 100
$decimalplace = Round ($percent)
$decimalplaceMBcopy = Round ($MBcopy)
ProgressSet ($percent, $decimalplace & "% " & "(" & _
$decimalplaceMBcopy & ") Mb has been copied.")
Sleep(500)
Until NOT ProcessExists($ProcID)
ProgressOff ()
$copyfilesize = DirGetSize($Folder2)
$MBorig = dirGetSize($Folder1) / 1024 / 1024
$decimalplaceMBorig = Round ($MBorig)
If $origfilesize = $copyfilesize then
Msgbox(0,"Backup Complete", "All " & $decimalplaceMBcopy & " Mb of files and folders were copied successfully.")
Else
Msgbox(0,"Error", "The backup did not complete successfully. Only " & $decimalplaceMBcopy & " Mb of " & $decimalplaceMBorig & " Mb copied successfully.")
EndIfEndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func onexit()
[/autoit] [autoit][/autoit] [autoit]Exit
[/autoit]
EndFunc ;==>OnExitIch habe einfach (neben ein paar zusätzlichen variablendeklarationen) einfach eine Funktion erstellt, die CopyFolder mit parametern aufruft. Da du guictrlsetonevent nicht selbst mit parametern benutzen kannst, musst du ein bisschen erfinderisch werden
Edit: musste noch Folder1 und folder2 in die _CallCF schreiben - sonst klappts ja nich
-
Wie wäre das hier als grober Lösungsansatz, geht aber nur wenn der Browser ein IE ist.
Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit]HotKeySet("^{TAB}","_Stirb")
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{-}","_ReadStatBar")
Func _Stirb()
Exit
EndFuncFunc _ReadStatBar()
[/autoit]
$hIE = WinGetHandle("")
$hBar = ControlGetHandle($hIE,"","msctls_statusbar321")
$text = ControlGetText($hIE,"",$hBar)
MsgBox(0,"",$text)
EndFunc
TrayTip("Bereit..","Script ist bereit...",1)
While 1
Sleep(20)
WEndIch hoffe ich hab das problem jetzt nicht falsch verstanden...
Edit: grr.. immer vergess ich das Sleep in der While schleife >.>