Hey Leute.
Vielen Dank für Eure Hilfe und Tipps!
Ich bin wirklich mit der Lösung von alpines ein ganzes Stück weiter gekommen, und das Funktioniert für mich jetzt auch so.
Viele Grüße!
Hey Leute.
Vielen Dank für Eure Hilfe und Tipps!
Ich bin wirklich mit der Lösung von alpines ein ganzes Stück weiter gekommen, und das Funktioniert für mich jetzt auch so.
Viele Grüße!
Hi.
Ich suche nach einer Möglickeit eine Funktion exact so lange ausgeführt wird, wie auf einem GUI Button in dem Scropt gedrückt wird. Ähnlich wie eine TX FunkTaste...
Hintergrund: Ich scripte gerade ein Tool mit dem Kameraden der Freiwilligen Feuerwehr in Corona Zeiten über Internet Funken üben sollen.
Ich habe dazu in Autoit eine GUI mit einem Button erstellt (GUICtrlCreateButton) als Sende Taste.
Hier kann ich ja aber immer nur die GUIGetMsg() auslesen wenn einmal geklickt wurde, oder?
Wie kriege ich das hin, das eine Funktion so lange ausgeführt wird wie der Button mittels Linker Maustaste festgehalten wird?
Die Funkton sendet dabei einfach einen Hotkey mittesl Send in ein anderes Fenster und soll halt wieder aufhören wenn der Button los gelassen wird...
Jemand eine Idee? Kann mir eigentlich nicht vorstellen das es schwierig ist, bin aber in dern Foren und Anleitungen irgendwie nicht fündig geworden, oder ich suche falsch...
Viele Grüße
Stefan
Hallo Lottich!
Danke für die wirklich sehr gute Idee. Auch wirklich eine schlanke Lösung, wenn auch mit einer weiteren Datei / Programm.
Ich bin mittlerweile auch in einem anderen Forum auf ein Lösung gestoßen, die genau das macht was ich will, ohne das man #RequireAdmin einsetzen muss:
https://www.autoitscript.com/forum/topic/19…tor-privileges/
Danke zusammen!
Ich glaube dann kann ich dieses Thema schließen...
Viele Grüße
Hi.
Ein "Problem" habe ich jetzt doch noch...
Durch das #RequireAdmin werden wirklich alle Prozesse unter dem Admin User ausgeführt. Das brauche ich eigentlich nur um die Maria DB zu beenden.
Ein Programm was ich via dem Script ausführen will, soll aber weiter mit User Berechtigungen laufen...
Könnte es mit RunAs ausführen, müsste aber irgendwie auslesen, welcher User vor dem #RequireAdmin überhaupt das script gestartet hat...
Oder gibt es sonst eine Möglichkeit verschiedene Funktionen mit verschieden Usern / Berechtigungen aufzurufen?
Hallo Musashi,
das ist eine sehr gute Idee, und funktioniert für meine Zwecke...
Danke sehr!
Hi Alina.
Ich weiß gerade nicht was Du genau meinst?
Ich verwende doch schon "RunWait"...
Aber Du liegst richtig, es kommt gar kein Fehler oder @error...
Es wird mir nur "2" als ExitCode des Ausführenden Programm zurück gegeben...
ConsoleWrite (@CRLF & "error: " & @error)
$status = RunWait(@COMSPEC & " /c net stop mariadb")
ConsoleWrite (@CRLF & "error: " & @error)
ConsoleWrite (@CRLF & "Status: " & $status)
Wenn ich das z.B. über die Standard CMD Console von Windows ausführe sehe ich folgenden Fehler:
C:\Users\Stefan>net stop mariadb
Systemfehler 5 aufgetreten.
Zugriff verweigert
C:\Users\Stefan>
Viele Grüße
Stefan
Hallo.
Ich versuche mich seit langem mal wieder etwas mit Autoit zu beschäftigen, da ich mir bei uns in der Freiwilligen Feuerwehr mal eine kleine Aufgabe gesteckt habe.
Dabei will ich über ein Script die lokale "MariaDB" einer Dokumentation Software stoppen, damit der TCPPort 3306 Lokal frei wird, um via SSH Umleitung einen neuen Port setzen zu können.
Das ganze ist für Remote Schulung von Kameraden für die Dokumentation gedacht, und da ist es einfacher wenn wir alle auf die gleiche Datenbank im Feuerwehrhaus zugreifen.
Mein Script ist soweit auch schon fertig, aber ich bleibe hängen, da einige "wie ich" nur mit User Rechten auf dem Rechner arbeiten, und nur bei Bedarf auf einen Admin Account wechseln.
Wenn ich jetzt via Script den Service MariaDB beenden möchte, braucht man aber halt Admin Rechte...
Wie kann ich den Dienst beenden, bzw. dem User nach Admin Berechtigung fragen damit der Dienst dann beendet wird?
Aktuell versuche ich es so:
Func _CloseService ($Service)
$status = RunWait(@ComSpec & " /c " & 'net stop ' & $Service, "", @SW_MAXIMIZE)
ConsoleWrite (@CRLF & "NetStop: " & " /c " & 'net stop ' & $Service)
ConsoleWrite (@CRLF & "NetStop: " & $status)
If @error Then
return 0
Else
return 1
EndIf
EndFunc
Alles anzeigen
Ich hab auch schon durch div. Foren geguckt, wo oft von der "ServiceControl.au3" gesprochen wird. Hab mal die Version von hier geladen und mit "_StopService("MariaDB")" getestet, aber da hab ich gleiche Problem, sprich es wird einfach mit einem Fehler abgebrochen...
Da hat doch bestimmt einer von Euch eine smarte Idee wie ist das bewerkstelligen kann, oder?
Viele Grüße
Stefan
Hallo,
ich beschäftige mich seit langem mal wieder mit AutoIt, und bleibe prompt an einer vermeindlich einfachen Stelle hängen.
Ich will die Ergebnisse von Ping Tests Zeilenweise in unterschiedlichen Farben in einer Liste aufführen...
Derzeit ändert sich immer die Farbe aller Zeilen...
Was sagen die Profis? Wie kann ich Einzelne Werte in verschiedenen Farben darstellen?
Viele Grüße!
#include <GUIConstants.au3>
#include <GuiStatusBar.au3>
#include <EditConstants.au3>
HotKeySet("^!a", "MeinExit")
#Region Style
$uGUI = GUICreate("PingTest", 350, 600, @DesktopWidth / 2 - 160, @DesktopHeight / 2 - 300, -1, 0x00000018)
GUISetBkColor(0x00E0FFFF)
GUISetFont(9, 300)
GuiCtrlCreateTab(0, 0, 350, 580)
$info = GUICtrlCreateButton ("?",330,4,18,18)
$StatusBar = _GUICtrlStatusBar_Create($uGUI)
_GUICtrlStatusBar_SetText($StatusBar, "Bereit")
#EndRegion
#Region Menü
$1 = GuiCtrlCreateTabItem("PingTest")
$10 = GUICtrlCreateButton("Test :", 20, 70, 90, 20)
$10_input = GUICtrlCreateInput("www.google.de", 120, 70, 200, 20)
$clear = GUICtrlCreateButton ("leeren", 50,520,60,20)
GuiCtrlSetState(1, $GUI_CHECKED)
$InfoFeld = GUICtrlCreateEdit("", 20, 150, 300, 350, $ES_READONLY)
#EndRegion
#Region Betriebsschleife
GUISetState ()
While 1
$msg = GUIGetMsg()
HotKeySet("^!a", "MeinExit")
If $msg = $GUI_EVENT_CLOSE Then MeinExit()
If $msg = $10 Then M10();Test
If $msg = $clear Then M50();clear
Wend
#EndRegion
Func M10();Test
$10_Wert = GUICtrlRead($10_input)
If $10_Wert = "" Then
_GUICtrlStatusBar_SetText($StatusBar, "Fehler: Kein Wert angegeben!")
return false
EndIf
Global $ping = Ping($10_Wert, 250)
If $ping Then
GUICtrlSetData($InfoFeld, GUICtrlSetColor(-1, 0x02BD0C) & "Verbindung OK" & @CRLF, 1)
_GUICtrlStatusBar_SetText($StatusBar, "OK")
Else
GUICtrlSetData($InfoFeld,GUICtrlSetColor(-1, 0xff0000) & "Verbindungs Fehler" & @CRLF, 1)
_GUICtrlStatusBar_SetText($StatusBar, "Fehler")
EndIf
return 1
EndFunc
Func M50();Clear
GUICtrlSetData($InfoFeld, "")
_GUICtrlStatusBar_SetText($StatusBar, "Bereit")
EndFunc
Func MeinExit()
Exit
EndFunc
Alles anzeigen
Hallo.
Die Ideen von Kaioshin finde ich gut und funktionieren wunderbar! Danke dafür!
Ich habe mir jetzt auch einfach eine Batchdatei geschrieben, in der meine DokuDateien Schreibgeschützt geöffnet werden...
Leider geht dabei meine Formatierung flöten, welche ich per "Eigene Sprachen" definiert habe...
die Kommandoerweiterung "-l" geht wohl nur für vordefinierte Sprachen...
Oder hat jemand dazu auch noch eine Idee?
Gruss rollod
Hallo Zusammen,
hier mal eine nicht AutoIt Frage, welche aber sicher auch einige von Euch interessieren und vielleicht ja auch beantworten können.
Ich nutze Notepad++ auch sehr viel zu Dokuzwecken und ist quasi immer mit auf dem Rechner zum lesen geöffnet. Wenn ich wichtige Datei öffne setze ich meist unter dem Menüpunkt "Bearbeiten" den Schreibschutz.
Wenn ich jetzt aber Notepad++ schließe und wieder öffne, ist der Schreibschutz für die Datei aber wieder raus... Kann man das irgendwie ändern?
Gut wäre auch, wenn alle Dateien generell "Schreibgeschützt" in Notepad++ geöffnet werden, und man manuell den Harken unter "Bearbeiten" "Schreibschutz" raus nehmen kann, wenn man mal was ändern will...
Kennt Ihr das Problem oder hat jemand eine Lösung?
Viele Grüße
Alles klar. Danke! Dann werde ich mich mal versuchen um etwas stabiles zu schaffen...
OK, dann muss ich wohl den weg gehen.
Was sagen den die Experten, auf welche Weise man den Inhalt der Zwischenablage am sichersten zwischen Speichert... Es sollte auf jeden Fall auch ScreenShots oder andere Daten wieder zur Zwischenablage zurück gespielt werden...
Hallo.
Darf ich das Thema hier nochmal thematesieren?
Ich suche nach einer schlanken Lösung eine Rufnummer z.B. im Internet oder Word zu Markieren und an ein anderes Programm per Hotkey zu übergeben.
Muss ich hier wirklich immer noch über die Zwischenablage gehen, oder gibt es einen direkten Weg, damit ich die Zwischenablage möglichst unberührt lassen kann?
Viele Grüße...
Oder dieses Skript einfach an den Interpreter übergeben. (Zum Beispiel so.)
Die Idee ist nicht schlecht... Werde es so mal ausprobieren, wobei ich sicher keine Rückmeldungen wie die der Funktionen aus den #Incude bekommen werde, oder ?
Naja, habe jetzt schon mal einen "Restart"-Button im Hauptskript eingefügt, dann ist es ja auch schnell neu gestartet...
Ich bin aber auf jeden Fall wieder ein wenig schlauer geworden!! Danke zusammen...
Gruß Rollod
Hallo zusammen,
gibt es eine Möglichkeit in einem Laufenden Skript die #Include Skripts Neu zu laden?
Hintergrund: Ich habe ein Hauptskript mit Gui ect. in dem ich mit einem Button auf Funktion verweise, welche ich in einem Editor bei Bedarf schnell mal anpassen möchte...
Zur Zeit muss ich das Hauptskript nach jeder Änderung neustarten…
Viele Grüße
Rollod
Hallo,
ich nutze Notepad++ nicht nur zum skripten mit AutoIt, sondern auch in ganz vielen anderen Situationen...
Bin immer wieder begeistert.
Oft benutze ich das Plugin "Compare" um z.B. zwei TXT oder CSV Datei abzugleichen.
Funktioniert super und man kann genau sehen welche Zeilen unterschiedlich sind...
Jetzt habe ich aber mal zwei CSVs wo die einzelnen Zeilen unheimlich lang sind und es ist nicht ersichtlich an welcher Stelle der Zeile nun genau der Unterschied ist.
Kennt jemand eine Möglichkeit oder ein anderen Plugin um diese Unterschiede innerhalb der Zeile zu markieren?
Viele Grüße.
Hallo Zusammen,
sorry das ich mich erst jetzt wieder zu Wort melden kann...
Vielen vielen Dank für den Hirnschmalz den Ihr aufgebracht habt!!!
BugFix Ich bekomme die Daten von anderer leider echt sehr Unflexiblen Stelle und versuche erstmal einfach damit zu leben... Bemängelt hatte ich das natürlich auch schon...
Da ich die Daten immer nur Stückweise in kleineren Einheiten zum weiterverarbeiten erhalte, sind die Lösungen von autoBert und Oscar völlig ausreichend und die Geschwindigkeit nicht so sehr Ausschlag gebend!
Für mich ist die Sache damit gelöst!!! Vielen Dank Euch allen.
Hi,
danke für die Antworten!
@m-obi,
autoBert hat leider recht. Wenn ich einwach nen StringSplit auf "," mache, werden in den Zeilen mit dem "Vorname,Dr" auch gesplittert...
Dein Vorschlag sieht zwar irgendwie gut aus, aber ich bekomme in der For Schleife noch einen "dimension range exceeded", welches glaub ich auf mein dilemmer mit den ",Dr" hinweist... bin aber nicht ganz sicher... Habe Deine Vorgehensweise leider noch nicht ganz verstanden...:-(
Viele Grüße
Hallo,
ich habe ein Problem beim Übertragen einer CSV in einem Array.
CSV Datei:
"Nachname","Vorname","Straße","Hausnummer","PLZ","Ort","Anzahl","Verbrauch","Musterartikel","Musterart"
"Musterman","Fritz","Feierstr.",5,23333,"Hamelhausen",5,3050,"1","3"
"Musterfrau","Victoria,Dr.","Abendrotstr.",7,23455,"Aschendorf",3,,"1","3"
"Müller","Heinz,Dr.","Feldstr.",1,23455,"Aschendorf",,7700,"1","3"
In Excel kann man die Daten importieren und wählt Trennzeichen >> , << und Texterkennungszeichen >> " << und alles ist gut...
Wenn ich die Daten in Autoit in ein Array übertragen möchte, stolpere ich ein wenig.
Bei:
$Array = _StringBetween($CSVline,'"','"')
bekomme ich falsche Spalten, da nur Spalten mit Textfeldern mit >> " << eingefaßt sind.
Bei:
$Array = StringSplit($SCVline,'"')
bekomme werden teilweise mehr Spalten erzeugt, da ein Komma auch im Vornamen Feld vorhanden sein kann.
Gibt es hier Eurer Meinung nach eine Lösung?
Viele Grüße.
Hallo Zusammen,
wollte mal kurz Eure Meinung hören.
Habe mich in letzter Zeit immer mal wieder mit Autoit beschäftigt... Erleichtert mir mittlerweile an vielen Stellen in Windows Umgebungen die Arbeit...(kann sonst keine Programmiersprache...)
Jetzt überlege ich, ob ich mit Hilfe unseres ALL4000 (Sensormeter welcher Relais, Sensoren, usw. verarbeitet und XML Daten zur Verfügung stellt) und Autoit eine eigene Meldeanlage zustande bekomme, welche bestimmte Vorgänge zu bestimmten Tageszeiten auslöst...
Die XML Daten auswerten ist ja per StringSplit usw. kein Problem.
Meine Frage ist, ob ich mit AutoIt vielleicht auf irgend einer WebSeite oder ähnliches den Aktuellen Status veröffentlichen kann um z.B. mit meinem iPad darauf zuzugreifen...
Perfekt wäre es, wenn diese entsprechende Seite auch Buttons hätte um Schaltvorgänge auszulösen. Diese müssten dann per Autoit und XML zurück zum All4000.
Was meint Ihr, ist das machbar oder hat jemand eine bessere Alternative als AutoIt für den Anwendungszweck?
Viele Grüße!
Rollod.