das PASTL vielleicht etwas beisteuern kann.
Der Mann hat ja auch auf fast alles eine Antwort
das PASTL vielleicht etwas beisteuern kann.
Der Mann hat ja auch auf fast alles eine Antwort
Das gäre genial,
Eine Hoffnung habe ich ja noch
Hi,
Danke erstmal,
kannst Du mir den in sofern Helfen eine Funktion zu machen die beim aufruf es ermöglicht mit zwei klicks
die X/Y Koridinaten des ersten und dann des zweiten in Variablen abzulegen, schön wäre wenn bei ersten klicken ein Rechteck aufgespannt wird,damit man sehen kann welchen Bereich mann auswählt ???
Bitte Bitte
Das kannst Du bestimmt :-))
Hallo,
so ich habe jetzt den ersten Teil gefunden.
Es gibt eine capture.dll die man sich zu Nutze machen kann.
Was jetzt fehlt ist eine Bereichsauswahl mit der Maus, am besten noch mit einer Bildschirm Lupe die immer an der entgegengesetzten Position wie die Maus springt und die Stelle um den Mauscursor vergrößert (zur genauerer Positionierung)
@Pheethebee
Du hast doch mal so eine Mausspielerei gebastelt wo der OK Button immer weg gesprungen ist.
Vermutlich wäre es für Dich ein Leichtes meine Wünsche in diesem Screencopy Script zu integrieren ?!
Führt man das unten stehende Script aus, werden zwei BMP Datein im Scriptverzeichnis abgelegt
Hier der DL link
Hier der Dll aufruf:
; Capture full screen
; Fist parameter - filename, last - jpeg quality.
DllCall("captdll.dll", "int", "CaptureScreen", "str", "dump_full.jpg", "int", 85)
; Capture given region
; Fist parameter - filename, next four: left, top, width, height. Last one - jpeg quality.
; Set quality to any negative number to capture into BMP
DllCall("captdll.dll", "int", "CaptureRegion", "str", "dump_partial.bmp", "int", 100, "int", 100, "int", 300, "int", 200, "int", -1)
Hallo,
es gibt viele Programme die Screenshots machen Können wie z.B "Hardcopy".
ich habe mal irgendwo ein Script gesehen was das mit Autoit macht.
Bzw, hat vielleicht jemand ein eigenes Script ?
Funktionsweise.
durch betätigen eines Hotkeys soll mann die möglichkeit haben einen Bildschirmbereich zu markieren.
Dieser soll dann als JPG in der Zwischenablage "geparkt" werden um diesen dann in anderen Anwendungen zur verfügung zu haben.
Ich glaube Ihr könnt das Bild nicht sehen weil es auf meinem Rechner liegt.
Wie lade ich ein Bild hoch ?
Habi ich das wichtigste Vergessen ?
Also das ist ein Programmstarter für derzeit 11 beliebige Programme die durch klick oder Hotkey aufgerufen werden können. Dann wird für jeden Button eine Eigene Funktion aufgerufen, die ja jeder beliebig für sich ändern kann....
Angefangen hat das ganze im Kontext als MCE wozu Du ja dann etwas mit Highlighting und Grafik gemacht hattest.
Ich habe das dann als Grundlage für einenen Anderen Anwendungszweck verarbeitet, allerdings ohne deine Idee einzubauen
Hier werden Dos Programme mit unterschiedlichen Startparametern gestartet, außerdem wird für das DOS Fensterein eigener "Titel" eingestelltsowie das Arbeitsverzeichnis festgelegt.
Da die Oberfläche der Unterschiedlichen Fenster auf den ersten Blick gleich ist, kann man aber trotzdem sofort sehen in welchem DOS Fenster man sich befindet.
Ich denke auf Anhieb wird es wohl keiner so recht gebrauchen können, da Programmaufrufe idR. nicht so kompliziert aufgebaut sind.
Aber wer weiß.....
Die Welt ist groß
So sieht das bei mir aus:
Hier das Script
#include <GUIConstants.au3>
#include <process.au3>
Opt("TrayIconDebug", 1) ; zeigt am trayicon welchen Befehl das Script gerade Ausführt
Opt("OnExitFunc","exit1")
$versionsinfo = "13.01.06 16:37"
Updatecheck()
;~ If @OSTYPE = "WIN32_NT" Then
;~ FileCopy("\fileserver\login\hosts", @WindowsDir & "\system32\drivers\etc\hosts",1)
;~ FileCopy("\fileserver\usr\login\hosts.TEST", @WindowsDir & "\system32\drivers\etc\hosts.TEST",1)
;~ EndIf
;~
;~ If @OSTYPE = "WIN32_WINDOWS" Then
;~ FileCopy("\fileserver\login\login\hosts", @WindowsDir & "\hosts",1)
;~ FileCopy("\fileserver\login\login\hosts.TEST", @WindowsDir & "\hosts.TEST",1)
;~
;~ EndIf
dim $ans
dim $befehl
dim $titel
$font="Courier New Bold"
$Form1 = GUICreate("TESTSION Startcenter", 185, 440, 10 , 10)
$Button0 = GUICtrlCreateButton("Icon aufs Desktop kopieren", 15, 0, 156, 26)
GUISetFont (14, 400, "", $font)
$Button1 = GUICtrlCreateButton("(1) TEST1", 15, 35, 156, 26)
$Button2 = GUICtrlCreateButton("(2) TEST2", 15, 70, 156, 26)
$Button3 = GUICtrlCreateButton("(3) TEST3", 15, 105, 156, 26)
$Button4 = GUICtrlCreateButton("(4) TEST4", 15, 140, 156, 26)
$Button5 = GUICtrlCreateButton("(5) TEST5", 15, 175, 156, 26)
$Button6 = GUICtrlCreateButton("(6) TEST6", 15, 210, 156, 26)
$Button7 = GUICtrlCreateButton("(7) TEST7", 15, 245, 156, 26)
$Button8 = GUICtrlCreateButton("(8) TEST8", 15, 280, 156, 26)
$Button9 = GUICtrlCreateButton("(9) TEST9", 15, 315, 156, 26)
$Button10 = GUICtrlCreateButton("(v) TESTv", 15, 350, 156, 26)
$Button11 = GUICtrlCreateButton("(a) TESTa", 15, 385, 156, 26)
GUISetState(@SW_SHOW)
While 1
; HotKeys
If WinActive("TESTSION") Then
HotKeySet("1" ,"TEST1")
HotKeySet("2", "TEST2")
HotKeySet("3", "TEST3")
HotKeySet("4", "TEST4")
HotKeySet("5", "TEST5")
HotKeySet("6", "TEST6")
HotKeySet("7", "TEST7")
HotKeySet("8", "TEST8")
HotKeySet("9", "TEST9")
HotKeySet("v", "TEST_vu")
HotkeySet("a", "TEST_ARCHIV2")
HotkeySet("?", "Versionsinfo")
HotKeySet("{NUMPAD1}" ,"TEST1")
HotKeySet("{NUMPAD2}", "TEST2")
HotKeySet("{NUMPAD3}", "TEST3")
HotKeySet("{NUMPAD4}", "TEST4")
HotKeySet("{NUMPAD5}", "TEST5")
HotKeySet("{NUMPAD6}", "TEST6")
HotKeySet("{NUMPAD7}", "TEST7")
HotKeySet("{NUMPAD8}", "TEST8")
HotKeySet("{NUMPAD9}", "TEST9")
Else; bewirkt, das die Hotkeys wirklich nur dann aktiv sind wenn das Programmfenster aktiv ist
HotKeySet("1")
HotKeySet("2")
HotKeySet("3")
HotKeySet("4")
HotKeySet("5")
HotKeySet("6")
HotKeySet("7")
HotKeySet("8")
HotKeySet("9")
HotKeySet("v")
HotkeySet("a")
HotkeySet("?")
HotKeySet("{NUMPAD1}")
HotKeySet("{NUMPAD2}")
HotKeySet("{NUMPAD3}")
HotKeySet("{NUMPAD4}")
HotKeySet("{NUMPAD5}")
HotKeySet("{NUMPAD6}")
HotKeySet("{NUMPAD7}")
HotKeySet("{NUMPAD8}")
HotKeySet("{NUMPAD9}")
EndIf
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Button0
DESKTOP_ICON()
Case $msg = $Button1
TEST1()
Case $msg = $Button2
TEST2()
Case $msg = $Button3
TEST3()
Case $msg = $Button4
TEST4()
Case $msg = $Button5
TEST5()
Case $msg = $Button6
TEST6()
Case $msg = $Button7
TEST7()
Case $msg = $Button8
TEST8()
Case $msg = $Button9
TEST9()
Case $msg = $Button10
TEST_VU()
Case $msg = $Button11
TEST_ARCHIV2()
Case Else
;;;;;;;
EndSelect
WEnd
Exit
func TEST1()
$ANS = 1
$titel = "TESTgo"
TEST_X()
EndFunc
func TEST2()
$ANS = 2
$titel = "DankaTest"
TEST_X()
EndFunc
func TEST3()
$ANS = 3
$titel = "FiBu-Alt"
TEST_X()
EndFunc
func TEST4()
$ANS = 4
$titel = "Mitsumi"
TEST_X()
EndFunc
func TEST5()
$ANS = 5
$titel = "Danka-neu"
TEST_X()
EndFunc
func TEST6()
$ANS = 6
$titel = "Danka-Archiv"
TEST_X()
EndFunc
func TEST7()
$ANS = 7
$titel = "Werkstatt"
TEST_X()
EndFunc
func TEST8()
$ANS = 8
$titel = "Eurofibu"
TEST_X()
EndFunc
func TEST9()
$ANS = 9
$titel = "Infotec"
TEST_X()
EndFunc
Func TEST_ARCHIV2()
If @OSTYPE = "WIN32_NT" Then
FileCopy(@WindowsDir & "\system32\drivers\etc\hosts", @WindowsDir & "\system32\drivers\etc\hosts_hue",1)
FileCopy(@WindowsDir & "\system32\drivers\etc\hosts.TEST", @WindowsDir & "\system32\drivers\etc\hosts",1)
;_RunDOS('start "DANKA-ARCHIV2" c:\TEST\TESTn serverno=9 , nettype=tcp')
$befehl = 'start "TEST2" c:\TEST\TESTn serverno=9 , nettype=tcp'
Run(@ComSpec & " /c " & $befehl, "c:\TEST")
if WinWaitActive("DANKA-ARCHIV2","") = 1 Then
FileCopy(@WindowsDir & "\system32\drivers\etc\hosts_hue", @WindowsDir & "\system32\drivers\etc\hosts",1)
sleep(2000)
EndIf
EndIf
If @OSTYPE = "WIN32_WINDOWS" Then
FileCopy(@WindowsDir & "\hosts", @WindowsDir & "\hosts_hue",1)
FileCopy(@WindowsDir & "\hosts.TEST", @WindowsDir & "\hosts",1)
;_RunDOS('start c:\TEST\TESTn serverno=9 , nettype=tcp')
$befehl = 'start c:\TEST\TESTn serverno=9 , nettype=tcp'
Run(@ComSpec & " /c " & $befehl, "c:\TEST")
if WinWaitActive("TESTn","") = 1 Then
FileCopy(@WindowsDir & "\hosts_hue", @WindowsDir & "\hosts",1)
Sleep(5000)
EndIf
EndIf
exit
EndFunc
func TEST_X()
If @OSTYPE = "WIN32_NT" Then
;~ MsgBox(0,"","Antwort war " & $ans)
;~ $befehl = 'start "' & $titel & " - " & $ans & '" c:\TEST\TESTn serverno=' & $ANS & ' , nettype=tcp'
;~ _RunDOS($befehl)
$befehl = 'start "' & $titel & '" ' & 'c:\TEST\TESTn serverno='& $ans & ' , nettype=tcp'
Run(@ComSpec & " /c " & $befehl, "c:\TEST")
EndIf
If @OSTYPE = "WIN32_WINDOWS" Then
;~ MsgBox(0,"","Antwort war " & $ans)
;~ $befehl = 'start c:\TEST\TESTn serverno=' & $ANS & ' , nettype=tcp'
;~ _RunDOS($befehl)
$befehl = 'start c:\TEST\TESTn serverno='& $ans & ' , nettype=tcp'
Run(@ComSpec & " /c " & $befehl, "c:\TEST")
EndIf
Exit
EndFunc
Func TEST_VU()
If @OSTYPE = "WIN32_NT" Then
FileCopy(@WindowsDir & "\system32\drivers\etc\hosts", @WindowsDir & "\system32\drivers\etc\hosts_hue",1)
FileCopy(@WindowsDir & "\system32\drivers\etc\hosts.TEST", @WindowsDir & "\system32\drivers\etc\hosts",1)
;_RunDOS('start "Verlagsunion" c:\TEST\TESTn serverno=6 , nettype=tcp, ID=vu')
$befehl = 'start "Verlagsunion" c:\TEST\TESTn serverno=6 , nettype=tcp, ID=vu'
Run(@ComSpec & " /c " & $befehl, "c:\TEST")
if WinWaitActive("Verlagsunion","") = 1 Then
sleep(1000)
FileCopy(@WindowsDir & "\system32\drivers\etc\hosts_hue", @WindowsDir & "\system32\drivers\etc\hosts",1)
EndIf
EndIf
If @OSTYPE = "WIN32_WINDOWS" Then
FileCopy(@WindowsDir & "\hosts", @WindowsDir & "\hosts_hue",1)
FileCopy(@WindowsDir & "\hosts.TEST", @WindowsDir & "\hosts",1)
;_RunDOS('start c:\TEST\TESTn serverno=6 , nettype=tcp, ID=vu')
$befehl = 'start c:\TEST\TESTn serverno=6 , nettype=tcp, ID=vu'
Run(@ComSpec & " /c " & $befehl, "c:\TEST")
if WinWaitActive("TESTn","") = 1 Then
FileCopy(@WindowsDir & "\hosts_hue", @WindowsDir & "\hosts",1)
sleep(5000)
EndIf
EndIf
exit
EndFunc
Func DESKTOP_ICON()
FileCopy(@ScriptFullPath, @DesktopDir, 1)
EndFunc
func Versionsinfo()
MsgBox(0,"Versionsinfo", $versionsinfo)
EndFunc
func updatecheck()
;~ Idee: aus dem laufendem Script wird eine Commandozeile aufgerufen die das Script austauscht
;~ möglicherweise kann man das laufende Script abschießen und trotzdem den Befehl ausführen
EnvSet("scriptpath", @ScriptFullPath); damit das DOS Commando weiß von wo das Script aufgerufen wird
$UPDATETIME = FileGetTime("\Fileserver\sys\PUBLIC\TESTRUN.EXE",0 ,1)
$THISFILE_TIME = FileGetTime(@ScriptFullPath, 0 ,1)
;MsgBox(0,"","File auf dem Server="&$UPDATETIME &@CR& "gestartetes File="&$THISFILE_TIME&@cr & "DIF=" & $THISFILE_TIME - $UPDATETIME)
if $UPDATETIME > $THISFILE_TIME then ;ist das File auf dem Server neuer wird der Update Prozess gestartet
FileCopy("\Fileserver\sys\PUBLIC\TESTRUN.EXE", @TempDir & "\TESTRUN.EXE",1);das laufende Script kann nicht ersetzt werden, deswegen der Umweg über TEMP
$file = FileOpen(@TempDir & "\TESTrun_updater.bat",2)
;~ FileWriteLine($file, "ping TESTserv1 -n 3")
;~ FileWriteLine($file, "pause")
;~ hier wird die Batchdatei die das Update steuert erzeugt
FileWriteLine($file, "@echo off")
FileWriteLine($file, "taskkill /im TESTRUN.EXE /F"); aktuelles Programm "abschießen"
FileWriteLine($file, 'copy "%temp%\TESTRUN.EXE" "%scriptpath%"'); Programmdatei ersetzen
;~ jetzt wird noch ein Aufruf des Programms selber erstellt
FileWriteLine($file, 'echo "%scriptpath%" >%temp%\TESTrun.bat'); Befehlszeile um das Programm wieder aufzurufen
FileWriteLine($file, 'echo exit >>%temp%\TESTrun.bat'); Batchdatei verlassen
;~ FileWriteLine($file, 'call "%scriptpath%"'); der eigendliche Programm wiederaufruf
FileWriteLine($file, 'start /MIN %temp%\TESTrun.bat'); der eigendliche Programm wiederaufruf
FileWriteLine($file, "exit"); leider bekomme ich das DOS Fenster nicht zu, erst wen das Aufgerufenen Programm beendet wird
FileClose($file)
Run(@TempDir & "\TESTrun_updater.bat")
EndIf
EndFunc
Func exit1(); bewirkt, das die Hotkeys nach beenden des Programms wieder freigegeben werden (wegen Problemen mit win 9x)
HotKeySet("1")
HotKeySet("2")
HotKeySet("3")
HotKeySet("4")
HotKeySet("5")
HotKeySet("6")
HotKeySet("7")
HotKeySet("8")
HotKeySet("9")
HotKeySet("v")
HotkeySet("a")
HotkeySet("?")
HotKeySet("{NUMPAD1}")
HotKeySet("{NUMPAD2}")
HotKeySet("{NUMPAD3}")
HotKeySet("{NUMPAD4}")
HotKeySet("{NUMPAD5}")
HotKeySet("{NUMPAD6}")
HotKeySet("{NUMPAD7}")
HotKeySet("{NUMPAD8}")
HotKeySet("{NUMPAD9}")
EndFunc
Alles anzeigen
Hi,
das ist jetzt das Ergebnis aus einiger meiner Anfragen zu Thema STARTCENTER, HOTKEYS, AUSFÜHREN IN
Ich hätte nie gedacht, das so eine kleine Anforderung so umpfangreich werden kann.
Aber ich wollte es Euch nicht vorenthalten.
Bitte scheinkt der Funktion Updatecheck() besondere Beachtung. Hier brauche ich noch Anregungen....
Zuletzt habe ich noch an dem Problem gearbeitet, das ich beim Aufruf des Programms, gleich eine Updateverwaltung eingebaut habe, es wird also geprüft ob ein Programm auf dem Server neuer ist, als das was lokal aufgerufen wird.
FRAGEN hierzu.
Hat jemand einen eleganteren Workaround um ein laufendes AutoitProgramm "upzudaten" ?
Kann man in der Exe eine Versionsnummer generieren die man ohne das Programm zu starten abfragen kann anstelle des Erstellungsdatum?
Hier mein Script (BETA von Autoit nötig)
Ich habe am Anfang ein paar Zeilen deaktiviert, die bei mir noch die Hostdateien austauschen, sollte wohl für keinen interessant sein, außerdem wollte ich euere Hostdateien nicht zerschießen.
.....
das Script ist wohl zu lang (max 10000 Zeichen)
stelln ich einen Beitrag später rein
Na klar,
Da hätte ich auch selber drauf kommen können.
Steht ja so in der Hilfe drin.
1000 mal sorry
Hi,
ich habe mir einen Programmstarter gemacht der ein (DOS) Programm mit verschiedenen Parametern Aufruft.
Jetzt Ich habe ein Problem, denn das Programm benötigt die Angabe "AUSFÜHREN in" weil hier Tempdateien abgelegt werden wenn zb. Gedruckt wird.
Mein Programm liegt als EXE auf dem Desktop. Das hat zur Folge das der Desktop als Ausführendes Verzeichnis aktiviert wird und die tempfiles dann auf dem Desktop liegen (bleiben). und der Druck nicht ausgeführt wird.
Ich will jetzt nicht unbedingt eine Passende Verknüpfung dazu basteln, hier könnte ich das Verzeichnis ja angeben.
Mein Autoit Programm liegt auf dem Desktop:
Starter.exe
Der Programmaufruf in Autoitz sieht so aus:
Das "Ausführen in" muß aber auf "c:\test" zeigen
Hat jemand eine Idee wie ich das angeben kann
Hat wirklich noch keiner Exel mit Autoit bearbeitet ?
Ich meine so etwas ähnliches wie INIREAD nur eben mit EXEL Tabellen
BSP
Suche in Spalte A nach "suchbegriff" und gebe in der gleichen Zeile Spalte B, E und H aus
oder Gehe zur letzen gefüllten Zeile in Spalte C und schreibe da "WERT" rein.
Hi Pastl,
geht das auch im laufenden Betrieb (z.B. zu einer bestimmten Uhrzeit)
oder muß ich mich dann neu anmelden ?
Hi
Gibts ne möglichkeit das Hintergrundbild von XP mit autoit zu ändern.
Nach möglichkeit nicht über "send" befehle die einfach nur das nachmachen was ich auch von Hand mache.
Ich will automatisch ab einer bestimmten Uhrzeit das Bild ändern, bzw wenn ein bestimmtes Programm aufgerufen wird soll der Desktop "ohne Hintergrundbild - einfach blau" umgeswitcht werden.
Hi,
Hat jemand ein Beispiel für die Verwendung von EXCEL UDFs ?
Hi,
danke, auch sehr hilfreich
Hi,
Danke für den TIP
Jetzt klappt es auch mit WIN98
Gruß
Wolke
Hi Leute,
ich habe ein komisches Problem:
Ich habe eine Buttonleiste die auch auf Hotkeys reagiert und dann einen Dosbefehl startet.
Unter WINXP klappt das super, unter WIN98 habe ich das Problem, das die Hotkeys auch noch nach Beendigung meines Scripts bis zum Rechner Neustart die Hotkeys einen unerwünschten Nebeneffekt verursachen. In der Dosbox sind die Hotkeys nicht mehr als Eingaben möglich:
BSP:
Hotkeys sind die Ziffern 1-9
Immer wenn ich in der DOSBOX eine dieser Ziffern Eingebe passiert nichts :-(((
Worann kann das liegen?
erst wenn ich den Rechner neu gestartet habe ist der Effekt wieder weg.
Script wird gleich nachgeliefert....
Hi
Du hast es richtig verstanden.
Ich benutze den XP Stil von Windows,
da sehe ich das Highligting nur als ganz schmalen Rahmen angedeutet.
Wenn es machbar wäre das zu verändern das wäre klasse. - So richtig schön leuchtend.
Das Aussehen der Autoit Buttons wäre völlig in Ordnung.
Was Pheetebee "gezaubert hat kommt dem Effekt schon recht nahe. Wenn mann allerdings einfach die Buttons nehmen könnte wäre es schon einfacher
Gruß
Detlef