Es kommt wie gesagt bald eine neue Version
Abwarten und Tee trinken. Im Zweifelsfall: Die auf der Homepage veröffentlichen exes sind natürlich immer lauffähig. (allerdings hat die aktuelle version noch einen Bug: die Zeitfunktion geht nicht...)
Beiträge von L3viathan
-
-
Ich weiß, war auch total überrascht. (com! 10/09, Kategorie "Opensource", Artikel "Top10")
Bald kommt auch eine neue Version, die wir auf http://glilabors.de veröffentlichen werden

-
@leviathan, bei dem Bug mit der "Theoretisch könnte das Fenster größer als der Bildschirm werden", würde ich mit einem UpDown und @DesktopHeight limitieren
Richtig, dazu brauche ich aber das echte @DesktopHeight. Manche Leute haben mehrere Monitore, es wird jeweils nur der Wert des ersten Monitors ausgegeben.
Deshalb: Ich suche diese UDF, um die "echte" Desktophöhe und -breite zu ermitteln...

-
Ich entwickle momentan noch nicht für Win7. Aber vielleicht findest du ja den Fehler. Hilft #RequireAdmin am Anfang?
-
[autoit]
Opt("TrayMenuMode", 1)
[/autoit][autoit][/autoit][autoit]
Opt("TrayAutoPause", 0)
$iconmenu0001 = TrayCreateItem ("Fenster schließen")
$iconmenu0002 = TrayCreateItem ("Fenster öffnen")
TrayCreateItem ("")
$iconmenu0003 = TrayCreateItem ("Programminformationen")
$iconmenu0004 = TrayCreateItem ("Tasteninformationen")
$iconmenu0005 = TrayCreateItem ("Aktioneninformationen")
TrayCreateItem ("")
$iconmenu0006 = TrayCreateItem ("Pause")
$iconmenu0007 = TrayCreateItem ("Exit")while 1
[/autoit]
$tmsg = TrayGetMsg()
Switch $tmsg
Case $iconmenu0007
Exit
Case $iconmenu0006
Msgbox(0, "Info", "Pause gedrückt")
Case $iconmenu0005
Msgbox(0, "Info", "Aktioneninformationen")
Case $iconmenu0004
Msgbox(0, "Info", "Tasteninformationen")
Case $iconmenu0003
Msgbox(0, "Info", "Programminformationen")
Case $iconmenu0002
Msgbox(0, "Info", "Fenster öffnen")
Case $iconmenu0001
Msgbox(0, "Info", "Fenster schließen")
EndSwitch
WEnd -
Hat der mir eiskalt geklaut
inspiriert ja, geklaut nein.
habe mir deinen Code nichtmal angesehn, mir ist bei deinem Thread nur aufgefallen, dass ich sowas auch brauche...
Sithlord95: kann es nicht nachvollziehen, Screenshot bitte..
-
Mein nächstes Programm:
Clippy, ein von einem anderen Thread angeregter Clipboardmanager.BETA!!
Momentan nur unter XP getestet!Funktionsweise:
- Kopiert den aktuellen Zwischenablageninhalt in ein Array
- Per Klick aufs Trayicon kann man zwischen den verschiedenen Inhalten schalten
- Drückt man Win+V, öffnet sich das selbe Fenster bei der Maus, nach Klick wird das ausgewählte direkt eingefügt
- Phrasenunterstützung: Es können Inhalte, die öfters benötigt werden als Phrasen gespeichert werden
- Clear-button: löscht das Array, sodass nur noch der aktuelle Inhalt der Zwischenablage (+Phrasen) verbleibt
- Audivisuelles Feedback bei neuem Inhalt (Sound von freesounds.org, Bilder von mir
code
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit]
#AutoIt3Wrapper_icon=1.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <Array.au3>
Opt("TrayAutoPause",0)
Opt("TrayMenuMode",1)
Opt("TrayOnEventMode",1)
Global $clipboard[1]=[0],$x=500,$y=500
TraySetIcon(@ScriptDir & "\1.ico")
TraySetToolTip("Clippy")
TraySetOnEvent($TRAY_EVENT_PRIMARYUP,"_selectGUI")
If not FileExists(@AppDataDir & "\GLi\Clippy\phrases.ini") Then
$hfile=FileOpen(@AppDataDir & "\GLi\Clippy\phrases.ini",10)
FileWrite($hfile,"[options]" & @CRLF & "num=0" & @CRLF & "[phrases]")
FileClose($hfile)
EndIf
For $i=0 To Number(IniRead(@AppDataDir & "\GLi\Clippy\phrases.ini","options","num",0))-1
_ArrayAdd($clipboard,IniRead(@AppDataDir & "\GLi\Clippy\phrases.ini","phrases",String($i),""))
$clipboard[0]+=1
Next
_createGUI()
AdlibEnable("_getClipBoard",1000)
HotKeySet("#v","_insert")
;#main loop:
While True
Sleep(300)
WEnd
;#funcs:
Func _getClipBoard()
$clip=ClipGet()
_ArraySearch($clipboard,$clip,0,0,1)
If not @error Or $clip="" Then Return
_ArrayAdd($clipboard,$clip)
$clipboard[0]+=1
_notifyNewClipboardEntry()
EndFunc
Func _setClipBoard($data,$flag=0)
;flag: 0=$data means index of $clipboard, 1=$data means String
Switch $flag
Case 1
ClipPut($data)
case 0
ClipPut($clipboard[$data])
EndSwitch
EndFunc
Func _notifyNewClipboardEntry()
Soundplay("ping.wav")
TraySetIcon(@ScriptDir & "\2.ico")
Sleep(200)
TraySetIcon(@ScriptDir & "\3.ico")
Sleep(200)
TraySetIcon(@ScriptDir & "\1.ico")
EndFunc
Func _shorten($what)
If Stringlen($what) > 50 then $what = Stringleft($what,47) & "..."
Return $what
EndFunc
Func quit()
Exit
EndFunc
Func _about()
MsgBox(64,"Info","Developed by GLi Labors, L3viathan2142")
EndFunc
Func _createGUI()
Global $gui=GUICreate("ClippyControl",250,13,-1,-1,$WS_POPUP,$WS_EX_TOOLWINDOW)
Global $list=GUICtrlCreateList("",0,0,250,0)
Global $quitbutton=GUICtrlCreateButton("Quit",0,13,13,20)
Global $clrbutton=GUICtrlCreateButton("Clear",0,13,13,20)
Global $aboutbutton=GUICtrlCreateButton("About",0,13,13,20)
Global $addbutton=GUICtrlCreateButton("+",0,13,13,20)
EndFunc
Func _limit($what,$dimension)
;~ 0:x, 1:y,2:w,3:h
Switch $dimension
Case 1
If $what > @DesktopHeight-400 Then $what=@DesktopWidth-400
case 0
if $what > 2*@DesktopWidth-250 Then $what=2*@DesktopWidth-250
EndSwitch
return $what
EndFunc
Func _insert()
GUISetState(@SW_SHOW)
WinMove("ClippyControl","",_limit(MouseGetPos(0),0) , _limit(MouseGetPos(1),1),250, 13*$clipboard[0]+13)
GUICtrlSetPos($list,0,0,250,13*$clipboard[0]+13)
GUICtrlSetPos($quitbutton,0,13*$clipboard[0]+13,70,20)
GUICtrlSetPos($clrbutton,70,13*$clipboard[0]+13,70,20)
GUICtrlSetPos($aboutbutton,70,13*$clipboard[0]+13,70,20)
GUICtrlSetPos($addbutton,70,13*$clipboard[0]+13,20,20)
For $i=1 To $clipboard[0]
GUICtrlSetData($list,$clipboard[$i])
Next
While True
If not WinActive("ClippyControl") Then Return GUISetState(@SW_HIDE)
Switch GUIGetMsg()
Case $list
GUISetState(@SW_HIDE)
ClipPut(GUICtrlRead($list))
sleep(100)
Send("^v")
ExitLoop
EndSwitch
WEnd
EndFunc
Func _selectGUI()
GUISetState(@SW_SHOW)
WinMove("ClippyControl","",@DesktopWidth-250 , @DesktopWidth-(30+13*$clipboard[0]+13+300),250, 13*$clipboard[0]+13+20)
GUICtrlSetPos($list,0,0,250,13*$clipboard[0]+13)
GUICtrlSetPos($quitbutton,0,13*$clipboard[0]+13,70,20)
GUICtrlSetPos($clrbutton,70,13*$clipboard[0]+13,70,20)
GUICtrlSetPos($aboutbutton,140,13*$clipboard[0]+13,70,20)
GUICtrlSetPos($addbutton,210,13*$clipboard[0]+13,20,20)
For $i=1 To $clipboard[0]
GUICtrlSetData($list,$clipboard[$i])
Next
While True
If not WinActive("ClippyControl") Then Return GUISetState(@SW_HIDE)
Switch GUIGetMsg()
Case $list
ClipPut(GUICtrlRead($list))
ExitLoop
case $quitbutton
Exit
case $addbutton
_addphrase()
case $aboutbutton
GUISetState(@SW_HIDE)
_about()
ExitLoop
case $clrbutton
For $i=1 To $clipboard[0]
_ArrayDelete($clipboard,$i)
Next
$clipboard[0]=0
GUICtrlSetData($list,"")
For $i=0 To Number(IniRead(@AppDataDir & "\GLi\Clippy\phrases.ini","options","num",0))-1
_ArrayAdd($clipboard,IniRead(@AppDataDir & "\GLi\Clippy\phrases.ini","phrases",String($i),""))
$clipboard[0]+=1
Next
ExitLoop
EndSwitch
WEnd
GUISetState(@SW_HIDE)
EndFunc
Func _addphrase()
$input=InputBox("Neue Phrase eingeben"," ")
If @error Then Return
IniWrite(@AppDataDir & "\GLi\Clippy\phrases.ini","phrases",IniRead(@AppDataDir & "\GLi\Clippy\phrases.ini","options","num",0),$input)
IniWrite(@AppDataDir & "\GLi\Clippy\phrases.ini","options","num",IniRead(@AppDataDir & "\GLi\Clippy\phrases.ini","options","num",0)+1)
_ArrayAdd($clipboard,$input)
EndFunc
bekannte Bugs:- Fehlerhafte Limitierung des Fensters bei Win+V, wenn zu nah am unteren Rand
- fenster könnte theoretisch größer als der Bildschirm werden...
Todo:- Optik
- korrekte Limitierung von Position und Größe
- ???
-
Frage 1: ich möchte ne Do Until Schleife haben die beendet wenn ich eine bestimmte Taste drücke, geht das?
Frage 2: Kann Autoit in Mozilla Browsern "runterscrollen"? Wie?
Frage 3: Gibts irgend eine Möglichkeit Autoit überprüfen zu lassen ob der klick den es ausgeführt hat ne "Wirkung" hatte. Also ob der Klick auf nen Button geklcikt hat oder ins leere?
zu 1.):
Spoiler anzeigen
[autoit]HotKeySet("ü","_exit")
[/autoit]
While True
Sleep(100)
WEnd
Func _exit()
Exit
EndFunc
zu 2.) such mal im Forum nach der FF.au3
zu 3.) du kannst per ControlClick auf einen Button klicken, oder auf die Ergebnisse des Klicks kontrollieren -
Rechtsklick, Häkchen "Taskleiste fixieren" wegmachen, Taskleiste "greifen" und an eine andere Seite verschieben.
-
Meine Master-Lösung (hab ich von Chuck Norris) :
[autoit]
[/autoit]
;Replace notepad with PSPad:
_replaceProgramWithAnother("notepad.exe","C:\Programme\PSPad\PSPad.exe")
;schon fertig
Func _replaceProgramWithAnother($nameOfProgramToReplace,$PathAndNameOfProgramToBeTheReplacement)
;by L3viathan2142
If $nameOfProgramToReplace="" Or $PathAndNameOfProgramToBeTheReplacement="" Or StringInStr($nameOfProgramToReplace,"\") Then Return False
RegWrite("HKLM\SOFTWARE\Microsoft\Windows NT\Current Version\Image File Execution Options\" & $nameOfProgramToReplace,"Debugger","REG_SZ",$PathAndNameOfProgramToBeTheReplacement)
If @error Then Return False
Return True
EndFunc
Func _unreplaceProgram($programToUnreplace)
RegDelete("HKLM\SOFTWARE\Microsoft\Windows NT\Current Version\Image File Execution Options\" & $programToUnreplace)
EndFunc
sorry für möglicherweise unpassende Variablen- und Funktionsnamen
edit: Erklärung: Dabei wird kein Programm umbenannt oder verschoben, es wird nur in der Registry eingetragen: Wenn notepad.exe gestartet wird, starte stattdessen PSPad.
-
Mach ich, aber noch nicht jetzt, vielleicht, wenn ich sterbe...
Ich wünsche mir, dass MatthiasG. seinen Forumsaccount innerhalb von einer Woche löscht
-
Ich habe zwar keine Alternative zu bieten, aber ich finde die Dummy-Beschreibung nicht so gut.
-
Meinst du:
[autoit]$pid=Run("Bla.exe")
[/autoit]
MsgBox(64,"Prozess-ID:",$pid) -
Hier auch mit Enter
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#include <Process.au3>
#include <GUIConstants.au3>
#include <GuiEdit.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <File.au3>
#include<ButtonConstants.au3>
#include<Guilistview.au3>
#include <Misc.au3>Opt("TrayMenuMode", 1)
[/autoit] [autoit][/autoit] [autoit]
_Main()
Func _Main()
Local $hGUI
Local $b1, $b2, $b3, $b4, $msg, $About, $Exit, $in, $bo, $al, $bb, $bw, $bs, $bd, $ba
$hGUI = GUICreate(" >> © 2009 by Simon <<",401, 71, 0, 0, $WS_CAPTION)
GUISetBkColor (0xbbfb15)
$b1 = GUICtrlCreateButton("C:\Programme", 81, 2, 79, 19)
$b2 = GUICtrlCreateButton("C:\", 1, 2, 79, 19)
$b3 = GUICtrlCreateButton("User-Ordner",161, 2, 79, 19)
$b4 = GUICtrlCreateButton("Anwen-Ordner",241, 2, 79, 19)
$b5 = GUICtrlCreateButton("Tmp", 321, 2, 79, 19)
$bw = GUICtrlCreateButton("Windows", 81, 25, 79, 19)
$bs = GUICtrlCreateButton("System32", 161, 25, 79, 19)
$bd = GUICtrlCreateButton("Desktop", 241, 25, 79, 19)
$ba = GUICtrlCreateButton("Autostart", 321, 25, 79, 19)
$bb = GUICtrlCreateButton("Beenden", 321, 48, 79, 19)
$in = GUICtrlCreateInput("", 2, 48, 250, 19)
$bo = GUICtrlCreateButton("OK", 260, 48, 50, 19)
$widthCell = 70
GUICtrlCreateLabel("Befehlszeile", 10, 27, $widthCell)
TraySetClick("9")
$About = TrayCreateItem("About")
$Exit = TrayCreateItem("Exit")
TrayTip("» Schnell-Starter « © by Siomon ", ">>>>>>>>>>> Zum Beenden <<<<<<<<<<<<" , 5, 1)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Select
Case $msg = $b1
ShellExecute(@ProgramFilesDir)
Case $msg = $b2
ShellExecute(@HomeDrive)
Case $msg = $b3
ShellExecute(@UserProfileDir)
case $msg = $b4
ShellExecute(@AppDataDir)
Case $msg = $b5
ShellExecute(@TempDir)
Case $msg = $bw
ShellExecute(@WindowsDir)
Case $msg = $bs
ShellExecute(@SystemDir)
Case $msg = $bd
ShellExecute(@DesktopDir)
Case $msg = $ba
ShellExecute(@StartupDir)
Case $msg = $bb
ExitLoop
ExitCase $msg = $bo Or (_isPressed("0D") And WinActive(" >> © 2009 by Simon <<"))
[/autoit] [autoit][/autoit] [autoit]
$al = GUICtrlRead($in, 1)
RunWait(@ComSpec & " /c " & $al)
EndSelect
$msg = TrayGetMsg()
Select
Case $msg = $Exit
ExitLoop
Exit
Case $msg = $About
MsgBox(64,"About","» Schnell-Starter «" & @CRLF & @CRLF &"© 2009 by Simon")
EndSelect
WEndEndFunc
[/autoit] -
-
besser:
[autoit]
[/autoit]
;Systemzeit ändern
ShellExecute ("C:\Program Files\Microsoft Games\Gears of War\Binaries\WarGame-G4WLive")
ProcessWaitClose("WarGame-G4WLive.exe")
;Systemzeit wieder ändern -
Eine Empfehlung noch:
[autoit]
Statt
[/autoit]
_RunDOS("start c:\Programme")
[autoit]
mach besser
[/autoit]
Run('explorer "C:\Programme"')
;oder noch einfacher:
ShellExecute("C:\Programme") -
Willkommen!
Such mal in der Hilfe nach GuiCtrlRead
LG, L3viathan2142
-
Die Zeit wird enorm verringert, wenn du die Strings alle erstmal sortierst, und dann nur jeweils mit dem vorderen und dem hinteren String vergleichst.
Bei deinem Beispiel dürfte das funktionieren...
Bei diesem jedoch nicht...:
"[01] Test for a better world.mp3"
"Test for a better world.mp3" -
Schnitzel:
[autoit]
Dein Code wäre sinnfrei, da bei fehlendem Parameter der Code trotzdem ausgeführt wird. Besser:if not $CMDLINE[0] Or $CMDLINE[1] <> "geheimerparameter" then Exit
[/autoit]