Sieht gut aus, auch wenn es sich bei mir ein- und gleich wieder ausblendet. War aber überrascht, dass es alles mit grundlegenden Funktionen von AutoIt erledigt wurde. Ich hatte irgendwie erwartet, dass man mit DLLCalls bombardiert wird.
Sehr hübsch.
Sieht gut aus, auch wenn es sich bei mir ein- und gleich wieder ausblendet. War aber überrascht, dass es alles mit grundlegenden Funktionen von AutoIt erledigt wurde. Ich hatte irgendwie erwartet, dass man mit DLLCalls bombardiert wird.
Sehr hübsch.
ZitatOriginal von Fast2
Wenn hinter ner Variable [$AndereVariable] steht ist die doch ein Array, oder? Aber es ist doch noch kein Array kreiert? Und wo ist $i definiert? ich blick da nicht durch. Kannst du mir das bitte noch mal erklären? Biiitttteeeeeeeeeee.
Doch, da wird ein Array erstellt. Schau Dir mal die Beschreibung von StringSplit an. Das gibt die Daten in einem Array aus. Genau nach diesen Daten hat GTA Spider unterschieden. $ar[0] enthält in diesem Fall die Anzahl der Strings, $ar[...] die entsprechenden Strings.
$ar steht bei ihm für Array, denke ich.
Hi Huggy!
Nützlich ist es allemal, aber eines verstehe ich dabei nicht. Warum erstellst Du eine temporäre Batch-Datei? Ich konnte das jetzt nicht testen, aber könntest Du die Kommandozeilenparameter von 7zip nicht einfach über _RunDos laufen lassen? Das sollte doch auch funktionieren und ein paar Zeilen sparen.
Grüße
Hi! Ich kann mich ganz doof anstellen, aber sollte das hier nicht für die Kombination "ALT + 1" gehen?
[autoit]If _IsPressed("12") And _IsPressed("31") Then
[/autoit]Das kann man ja noch um ein WinActive ergänzen.
Grüße
Oh, stimmt. Habe in meinen Test mit Run einen Parameter falsch gestetzt, der bei RunAsSet korrekt war. Dieser kleine Fehler hat mich ganz schön schwitzen lassen. Vielen Dank noch einmal.
bernd670 :
Wow, Frühaufsteher. Danke, das hatte ich schon häufiger probiert, ging nie! Dann habe ich es eben mit RunAsSet gemacht, weil ich so schön verzweifelt war. Und siehe da - es ging.
Ich habe nirgendwo gelesen, dass ich Adminrechte für ZIP.exe brauche. Lässt sich das umgehen?
edit: oder muss ich, wenn ich will, dass die zip kein Admin-Attribut hat, dieses vom skript entfernen lassen?
also, ich bin echt zu doof dafür oder die zip.exe kann das nicht, was ich vorhabe.
ich hatte mir gedacht ich nehme die zip.exe und habe die in einem unterordner des skriptordners. ich greife darauf zu und versuche damit eine datei, sagen wir, auf dem desktop in ein anderes verzeichnis zu komprimieren.
also zum mitschreiben:
1. Pfad der zip.exe: zip.exe liegt in D:\Skript\ZIPEXE
2. Quelle: die zu komprimierende datei oder ordner auf dem desktop
3. Ziel: das verzeichnis in das die ZIP-datei soll ist zum beispiel D:\Test
ich habe etliche versuche gestartet. das beste ergebnis war mal, dass die zip im ordner D:\Skript\ZIPEXE lag. das war aber unpraktisch, da bei dem, was ich damit vorhabe, die ZIP-Datei nicht noch einmal verschoben werden sollte.
liegt es an mir oder geht das mit der zip.exe einfach nicht. ich habe die anleitung der zip.exe rauf und runter gelesen, schaffe es aber nicht. kann mir jemand aus der patsche helfen?
grüße
chris
Danke BugFix, ich glaube, ich habe einfach noch nicht so viel mit Arrays am Hut gehabt, um die Vor- und Nachteile in der Praxis nachvollziehen zu können. Da werden die Alternativen deutlich interessanter.
AspirinJunkie
Jetzt krieg ich Kopfschmerzen. Welche Vorteile bringen mir Deine Anregungen? Spare ich Arbeitsspeicher? Ist AutoIt schneller? In welchen Situationen sind diese Beispiele Arrays vorzuziehen?
Bin nichts so sehr damit vertraut, wie effizient AutoIt oder Arrays sind. Hast Du noch einige weitere Details dazu?
Guck Dir in der Hilfe mal Switch...Case...EndSwitch oder Select...Case...EndSelect an. Dann noch While...WEnd. Vor allem die Beispiele werden Dir helfen, Dein Problem zu lösen. Es ist wirklich nicht so schwer.
Mein Tipp: Schieb alle If-Abfragen in eine(!) While-Schleife und frag die mit Select ab. Die If-Abfragen außerhalb einer Schleife helfen Dir nicht, da das Script die für den Bruchteil einer Sekunde abfragt und dann weiter macht.
Hi!
Sehr schön. Einfacher geht es, glaube ich, auch nicht. Ich könnte mir einige Situationen vorstellen, in denen das hier sehr hilfreich werden könnte. Wobei ich dabei daran denke, die Abweichung so einzustellen, dass man in einer GUI den Tooltip auflöst, wenn man nicht mehr über der GUI ist.
Obwohl in einer GUI der Sleep, auch wenn´s nur 50 Millisekunden sind, stören könnte. Oder? Auf jeden Fall sehr praktisch.
Gruß Chris
ZitatOriginal von hxhjx
das programm gefällt mir und ist recht praktisch. weiter so
Danke schön, freut mich. Hast Du Dir eventuell mal den Code angesehen, ob ich da irgendwas verbessern kann.
Ich stehe mit AutoIt und dem Scripten noch am Anfang und freue mich über jede Anregung, wo ich effizienter arbeiten könnte. Gerade bei Schleifen kommt es mir so vor, als ob ich sehr viel um mindestens drei Ecken mache.
Allgemein: Hab mal diesen blöden Copyright-Vermerk und meinen Klarnamen aus dem About-Dialog getilgt. Hab die Dialog-GUI bei mir selbst aus einem umfangreicheren Skript geklaut und nicht umgedichtet. Künstlerpech!
Moin!
In Deinem Skript ist die Syntax sehr schief. Und bei IniRead hast Du den Default-Return auf "C:\Lotus\Domino6" gesetzt. Ich weiß nicht, ob ich´s richtig verstanden hab, worauf Du hinaus willst, aber das hier sollte schon ein Schritt in die richtige Richtung sein.
[autoit]#NoTrayIcon
Global $iniPath = 'd:\test\notes.ini'
If IniRead ($iniPath, "Notes", "NotesProgram", "Fehler") <> "Fehler" Then
IniWrite ($iniPath, "Notes", "NotesProgram", "C:\Lotus\Domino7")
Else
MsgBox(16, 'Fehler', 'Fehler beim Schreiben von NotesProgram!', 10)
EndIf
Jetzt wird geprüft, ob der Key "NotesProgram" in der Section "Notes" besteht. Fehlt der Key, weil nicht eingetragen oder ini nicht vorhanden, dann kommt die MsgBox. Ansonsten wird der neue Key-Wert geschrieben.
Bei den Fehlermeldungen, zumindest in SciTe, kannst Du relativ gut erkennen, warum er das Programm nicht laufen lässt. Mit ein wenig Übung und der Hilfe kriegt man dann schon schnell was hin.
Hoffe, das hilft.
Hi!
Ich habe hier eines meiner ersten Skripte, nachdem ich vor einigen Monaten mit AutoIt angefangen habe. Das Problem, das es angeht, war letztlich einer der Gründe, warum ich etwas wie AutoIt gesucht habe.
Das Skript ist für Leute, die ein Benutzerkonto mit eingeschränkten Rechten haben, jedoch einige Programm mit Adminrechten starten wollen. In Windows ist das zwar schon möglich, aber nicht so pralle.
Anleitung:
-Ihr müsst alle 3 Dateien (Skript und 2 ini) auf dem Rechner haben
Update:
Hab´s mal ein wenig bearbeitet. Mit der DropBox kann man Dateien per Drag&Drop in der Box mit Adminrechten ausführen. Damit ist man nicht zwingend auf das Traymenü angewiesen. Zum Beispiel bei Installationsdateien, die nicht zwingend ins Traymenüp müssen, ganz nützlich. Hotkey ist STRG+ALT+d.
Version 0.4:
[+] DropBox hinzugefügt
[+] Administrator kann nun auch in der Passwortabfrage direkt eingegeben werden
[*] Kleinere Änderungen der GUI
[*] Passwortabfrage wiederholt sich ein Mal, wenn es zuvor falsch eingegeben wurde
ACHTUNG! Script wegen Zeichenbeschränkung nicht mehr hier gepostet.
Ich hoffe, das ihr mir ein wenig Feedback geben könntet, woran ich noch basteln könnte. Es ist ja eine Fingeerübung für mich :D.
Probleme:
-Das Passwort speichern erscheint extrem unsicher. Da, wenn es gespeichert ist, es als Variable gespeichert wird. Hat jemand eine bessere Idee?
-Option: "Menüeinträge bearbeiten" ist nicht sehr intuitiv gehalten, aber ich schaffe es nicht anders
-Ziemlich unübersichtlich geworden. Ein Alptraum für Zeilencoder
Zitat€€: arghs, ne sekunde!
dann hat mich mein gefühl nicht getrogen, dass mir jemand im nacken sitzt.
@computerfritze: überleg dir trotzdem mal, ob du das immer nicht doch alles in einer datei haben willst, spätestens wenn du mehr willst, als die daten abzulegen, wird´s wohl lästig werden. ist aber deine sache.
das hier
[autoit]FileWriteLine($wertvorname & "_" & $wertnachname & ".cabf", $wertvorname)
...
sollte funktionieren, wenn du die änderungen überall vornimmst.
du kannst aber auch so für jeden eintrag eine datei erstellen, ohne über notepad++ gehen zu müssen. sonst ist das wie mega schon schrieb eigentlich wahnsinn.
das scheint ja für dein adressbuch-skript zu sein. da wäre eine ini für den anfang wohl besser. und sqlite wohl wiederum deutlich besser als eine ini.
ergänzend zu huggy: _FileCreate, IniWrite/IniWriteToLine oder die SQLite-UDFs anschauen
teh_hahn:
wenn ich dich richtig verstanden habe, dann habe ein ähnliches problem mal mit folgendem trick gelöst:
setz in zeile 28 in deinem code doch mal das hier ein:
[autoit]GUISetState(@SW_RESTORE, $h_maingui)
[/autoit]
sollte das klappen, wir deine maingui wieder in den vordergrund gezogen. unschön ist nur, dass sie kurz aufblitzt.
Edit: sehe grad, es macht keinen großen unterschied zu deiner WinActivate-Lösung. sollte aber eigentlich immer funktionieren. ist halt nur nicht formvollendet schön.
Vielen Dank, Mega! Der Link könnte sehr nützlich werden und schaue mal, ob das so auch geht. Könnte noch vorteilhafter sein.
Aber in der Zwischenzeit war ich nicht faul und bin für mein Problem auf eine weitere Lösung gekommen: Ich habe das Problem aus der falschen Richtung betrachtet. Statt vom Hauptprogramm auszugehen, das dem Trayprogramm sagt, es habe sich zu aktualisieren, musste ich nur eine If-Funktion in der Schleife des Traymenüs einbauen. Dort frage ich ab, ob der Prozess des Hauptprogramms besteht und wenn ja, setzt das Trayprogramm aus, wartet bis das Hauptprogramm fertig ist und aktualisiert sich auf Verdacht einfach mal.
Es mag seltsam klingen, aber daran habe ich jetzt seit ca. 1 Monat immer wieder mal gebastelt und kaum stelle ich die Frage ins Forum, fällt mir eine Lösung ein. :hammer:
Deine Hilfe ist aber auf jeden Fall nicht umsonst gewesen. Danke.