Ups natürlich muss da And stehen ![]()
Sry kleiner Syntaxfehler...
Ich würde auch noch ne sleep einbauen. Durchgehend die Tasten abfragen muss egtl nicht sein.
Ich denk aber das Prinzip is klar ![]()
Ups natürlich muss da And stehen ![]()
Sry kleiner Syntaxfehler...
Ich würde auch noch ne sleep einbauen. Durchgehend die Tasten abfragen muss egtl nicht sein.
Ich denk aber das Prinzip is klar ![]()
So müsste es gehn (Ungetestet, weil ich nur mim handy on bin
)
#include <Misc.au3>
$dll = DllOpen("user32.dll")
While 1
if _IsPressed ("48", $dll) & _IsPressed ("49", $dll) Then
run ("notepad.exe")
WinWaitActive ("Unbenannt - Edi")
send ("Hallo")
Sleep (1500)
[/autoit] [autoit][/autoit] [autoit]WinClose ("Unbenannt", "")
[/autoit] [autoit][/autoit] [autoit]send ("{right}{ENTER}")
EndIf
WEnd
DllClose ($dll)
Edit1: Spoiler vergessen
Was soll hier noch die Diskussion ob du was abheften solltest oder nicht?
Du hast nen guten Tipp bekommen der wahrscheinlich noch funktioniert.
Also probier das aus und ruf bei MS an.
Wie gesagt das hat schon vor 5 Jahren funktioniert...
Mit XP lizenzen gehen die schon seit längerem recht locker um.
Allerdings brauchst du was damit du beweisen kannst dass du es original hattest.
Hast du evtl noch die original CD?
Ich hab mal vor ein paar Jahren (2005) oder so im Support angerufen.
Dann musste ich dem Mitarbeiter erklären wie die CD aussieht die ich für das XP bekommen hab.
Und nachdem ich dann noch vorgelesen hatte was drauf stand haben die mir einen Key zugesandt.
Ich denke mal, dass das jetzt auch noch geht...
Na dann bastel dir doch ne überprüfung. Wie wärs mit auslesen des ersten Zeichens in der Datei.
Wenn es geht ist es eine Datei wenn nicht ist es ein Ordner (vorrausgesetzt der Pfad passt, aber das kannst du mit FileExists() prüfen)
(Vielleicht gibts auch ne fertige lösung, mir fällt aber gerade keine ein und ich bin mim handy unterwegs^^ )
Das ersetzen läuft natürlich erst wenn du weißt ob es eine Datei ist.
Wenn es mehrere Dinge zum ersetzen sind dann kannst du entweder viele Stringreplace hernehmen oder du probierst es mit StringRegExpReplace
Das mit dem letzten Punkten ist nich so das Problem.
Hier mal ne Beispielfunktion:
$dateiname = "Das.ist.ein.Test.mit.Punkten.txt"
[/autoit] [autoit][/autoit] [autoit]MsgBox(0,"", $dateiname)
[/autoit] [autoit][/autoit] [autoit]$ohnepunkte = _Punkteentfernen($dateiname)
[/autoit] [autoit][/autoit] [autoit]MsgBox(0,"", $ohnepunkte)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Punkteentfernen($sString, $sReplace = " ")
$sFilename = StringReplace(Stringleft($sString, StringinStr($sString,".", 0, -1) - 1), ".", $sReplace)
Return $sFilename & Stringtrimleft($sString, StringinStr($sString,".", 0, -1) - 1)
EndFunc
So denke ich gehts egal ob ein Punkt enthalten ist oder nicht. Also mit Dateien und Ordnern ![]()
Natürlich spring sie dahin zurück. Er muss ja da weitermachen wo er aufgehört hat.
Basteln kann man da schon was. Die Frage ist nur für was...
So gings z.B.
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)
$GUI = GUICreate("Test", 130, 45)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSE")
$Start = GUICtrlCreateButton("Start", 40, 10, 50)
GUICtrlSetOnEvent(-1, "Start")
GUISetState(@SW_SHOW)
While 1
Sleep(1000)
WEnd
Func Start()
MsgBox(0,"Func Start",'Start wurde gedrückt.' & @CRLF & 'Starte jetzt "Func Test()".')
If Test() Then Return
[/autoit] [autoit][/autoit] [autoit]MsgBox(0,"Fortgesetzt",'Die "Func Start()" wird LEIDER fortgesetzt.') ;~ Zum Testen, ob "Func Start()" nach "Func Test()" fortgesetzt wird.
EndFunc
Func Test()
MsgBox(0,"Func Test",'"Func Test()" wird ausgeführt.')
Return 1
EndFunc
Func CLOSE()
Exit
EndFunc
Edit: i2c war schneller ![]()
Natürlich geht das ![]()
so zb:
$Pfad = "C:\Programme\Test.txt"
$nurdatei = StringTrimLeft($pfad, stringinstr($pfad, "\", 0, -1))
MsgBox(0,"", $nurdatei)
Den punkt vorm Dateitypen darfst du natürlich nicht entfernen lassen
siehe Post #4.
Alle pfade stehen im Array $CmdLINE
Die fehlte ja auch schon bei ihm ![]()
Sowas finden die leute ja noch hoffentlich selber....
Du musst es schon so scripten dass dauerhaft geprüft wird.
So z.B.
while 1
If WinActive("(Frozen) AutoIt v3 Window Info") Then
MsgBox(0, "", @HOUR & ":" & @MIN & ":" & @SEC)
EndIf
wend
Allerdings kann dann dein script nichts anderes mehr machen.
Also poste am besten mal deinen ganzen Quellcode
Edit: Klammer verbessert
Herzlich Willkommen Und Viel Spaß Im Forum.
Begrüßungsdieb ![]()
Hat er doch geschrieben. Das is zu kurzfristig, und da bin ich seiner Meinung.
Sonst kommt wieder die Hälfte nich^^
Herzlich willkommen und viel Spaß im Forum ![]()
Wow vielen Dank für die Glückwünsche.
Freut mich wirklich sehr ![]()
Tolle Bilder und Videos ![]()
Ich hab mir gestern eine SSD bestellt. Und zwar hier:
http://www.kingston.com/deroot/ssd/v100.asp
Dazu sagen kann ich noch nichts weil es wohl noch dauern wird bis die da ist...
Ein Bekannter von mir hat vor kurzem einiges über SSD's gelesen und hat sich die gekauft.
Da er auch IT'ler ist und sich recht gut auskennt (und ich mich nicht selbst einlesen wollte^^) hab ich mir die auch bestellt.
Warum er sich für die entschieden hat kann ich leider nicht sagen. Hab auch auf die schnelle keine Bewertungen dazu gefunden
Den Dateityp registrieren kannst du in der Registry. Wie es z.B. avi's für den Windows MediaPlayer registriert sind.
D.h. wenn man Rechtsklick auf die Datei macht hat man in diesem Beispiel die Auswahlmöglichkeit: "Mit Windows MediaPlayer wiedergeben" (oder so ähnlich^^ )
Das gleiche geht auch generell für alle Dateien. (Winrar oder 7zip haben zum Beispiel: Zu Archiv hinzufügen)
Oder aber du machst es per Senden an. Dann musst du einfach nur eine Verknüpfung erstellen die auf dein Programm zeigt.
Bei Win7 einfach in die Addressleiste des Explorers shell:sendto eingeben.
Für XP gibts iwo im Profil nen Ordner namens Sendto, weiß ich jetzt leider nicht auswendig
Na dann isses ja noch einfacher ![]()
Für alle dateitypen dein Script im Kontextmenü registrieren.
Im Script dann mithilfe von z.B. Stringreplace die Dateinamen verändern (die dateien stehen ja dann im $CMDLINE)
und dann mithilfe von Filemove umbenennen
Du musst sowas machen wie Dateityp registrieren.
Einfach per suche gefunden: [ gelöst ] Dateityp registrieren
Wenn der thread nich der richtige ist einfach nach Dateityp oder so suchen ![]()
Das geht mit Ordnern auch, also diese zu registrieren.
Für die Suche brauchste dann noch ne rekursive auflistung der Dateien und evtl StringRegExp.
Je nachdem was du da genau willst
#include <Inet.au3>
#include <String.au3>
#include <Array.au3>
$source = _INetGetSource("http://autoit.de/")
$between = _StringBetween($source, "Freitag", "Februar")
#cs nur zur Veranschaulichung
;~ In dem ArrayDisplay wirst du sehen dass es mehrere Ergebnisse gibt.
;~ Einfach weil im Quelltext 2mal "Freitag, 4. Februar" steht.
#ce
_ArrayDisplay($between)
;~ Wir nehmen einfach das erste Ergebnis, das steht im Index 0
MsgBox(0,"", $between[0])
Bei Fragen zu Array's findest du einen guten Link in meiner Signatur
edit: kleinen Fehler verbessert ![]()