1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. sc4ry

Beiträge von sc4ry

  • Exe mit Parametern

    • sc4ry
    • 22. April 2007 um 16:03

    also als ich meinen beitrag deswegen editieren wollte, ging es nicht. aber sofern man der threadersteller ist, kann man ganz nach unten scrollen, wo ein dropdown-menü "weitere optionen" existiert.

    dort über "thema bearbeiten" konnte man es ändern.

    stimmt das jetzt so ??? *g*


    Edit BugFix: Ja, so ist's richtig. Jeder Threadersteller kann seinen Beitrag auf diese Weise als gelöst markieren. Bitte auch tun ;)

  • Username2Office

    • sc4ry
    • 22. April 2007 um 15:02

    Hey,

    es ist zwar ein recht simples Skript, aber ich glaube, dass es nun vollkommen an meine bedüfnisse angepasst wurde.

    das script ist da sinnvoll, wo mehrere leute im netzwerk auf office-dateien zugreifen. damit man weiss, wer die aktuelle datei sperrt, trägt das script den usernamen in die registry ein, aus der office nun seine benutzerinformationen bezieht.

    das script wurde mit hilfe von einigen autoit-profis hier auf dem board erstellt =)

    es ist für windows gedacht (2k und xp sollte 100% unterstützt werden) und nicht auf eine bestimmte office-version zugeschnitten.

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ;
    ;Username 2 Office V.3
    ;
    ;
    ;© sc4ry
    ;

    [/autoit] [autoit][/autoit] [autoit]

    #include <string.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;Überprüfe Systemsprache
    If @KBLayout = 0407 then

    [/autoit] [autoit][/autoit] [autoit]

    ;Deutsch
    ;Msgbox INFO
    MsgBox(0, "Username 2 Office V.3 by sc4ry", "Dieses Script trägt Ihre UserID in die MS Office Benutzerinformationen ein", 4)

    ;Usernamen in Hex wandeln
    WinWaitNotActive("Username 2 Office V.3 by sc4ry")
    $String = (@username)
    $Hex = _StringToHex($String)
    $RegHex = ""
    For $i = 1 To Stringlen($Hex) Step 2
    $RegHex &= StringMid($Hex,$i,2) & "00"
    Next
    $RegHex &= "0000"

    ;Registry-Pfad ermitteln
    $instance = 1
    While 1
    $strRegKey = RegEnumKey("HKCU\Software\Microsoft\Office\",$instance)
    If @error <> 0 Then ExitLoop
    $instance += 1

    $read = RegRead("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "Username")
    If @error <> 0 Then ContinueLoop

    ;Schreibe Usernamen in Registry
    RegWrite("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "UserName", "Reg_Binary", $RegHex )

    ;Überprüfe Username
    $read = RegRead("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "Username")
    if $read = $RegHex Then
    MsgBox(64, "Erfolgreich", "UserID korrekt in MS Office übernommen", 4)
    Else
    MsgBox(16, "Warnung", "UserID nicht korrekt in MS Office übernommen, bitte wenden Sie sich an sc4ry")
    EndIf
    Wend

    Else

    ;Englisch
    ;Msgbox INFO
    MsgBox(0, "Username 2 Office V.3 by sc4ry", "This Script copies your UserID to the MS Office Userinfo", 4)

    ;Usernamen in Hex wandeln
    WinWaitNotActive("Username 2 Office V.3 by sc4ry")
    $String = (@username)
    $Hex = _StringToHex($String)
    $RegHex = ""
    For $i = 1 To Stringlen($Hex) Step 2
    $RegHex &= StringMid($Hex,$i,2) & "00"
    Next
    $RegHex &= "0000"

    ;Registry-Pfad ermitteln
    $instance = 1
    While 1
    $strRegKey = RegEnumKey("HKCU\Software\Microsoft\Office\",$instance)
    If @error <> 0 Then ExitLoop
    $instance += 1

    $read = RegRead("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "Username")
    If @error <> 0 Then ContinueLoop

    ;Schreibe Usernamen in Registry
    RegWrite("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "UserName", "Reg_Binary", $RegHex )

    ;Überprüfe Username
    $read = RegRead("HKCU\Software\Microsoft\Office\" & $strRegKey & "\Common\Userinfo", "Username")
    if $read = $RegHex Then
    MsgBox(64, "Successful", "UserID was written successfully to the MS Office Userinfo", 4)
    Else
    MsgBox(16, "Warning", "UserID could not be written to the MS Office Userinfo, please contact sc4ry")
    EndIf
    Wend

    EndIf

    [/autoit]

    PS: Version 3 reagiert auf ein deutsches Tastaturlayout, zeigt ansonsten die meldungen in englisch an.

  • neu an bo(a)rd

    • sc4ry
    • 22. April 2007 um 14:47

    hey,

    nachdem ich den ein oder anderen in den letzten tagen schon mit fragen überhäuft habe, stell ich mich auch mal vor.

    mein nick ist sc4ry und ich bin 23.
    ich habe von autoit schon vor etwas längerer zeit gelesen, aber wie es auch bei meinem vorhaben, c++ programmieren zu lernen, hab ich nie wirklich die zeit gefunden, mich einzuarbeiten.

    naja, auf der arbeit war dann mal nicht sooooviel zu tun und ich hatte eine aufgabe die immer die gleichen klicks erfordert.
    sinnlos im internet rumsurfen wird auf die dauer auch langweilig, also hab ich mir autoit geladen und angefangen.

    was soll ich sagen, seitdem sitze ich fast täglich dran und sobald ich eine neue aufgabe bekomme, wird erstmal überlegt, wie man das sauber mit autoit lösen kann *g*

    meine freundin könnte autoit schon halbwegs verfluchen, aber ich kann einfach nicht anders. es gibt noch soviele funktionen zu entdecken, jede menge projekte zu realisieren, und sofern dann die eine funktion irgendwann perfekt läfut, kann man nicht anders als weitermachen =)

    also schonml danke an alle dir mir geholfen haben und an die die mir noch helfen werden *thumbsup*

  • ControlClick geht nicht oO

    • sc4ry
    • 22. April 2007 um 12:33

    also ich habe das fenster "Dateidownload" zum testen bereits geöffnet.
    teilweise hat er ja auch den button gefunden, nur nicht gedrückt.

    aber folgendes funktioniert:

    [autoit]

    $oIE = "Dateidownload"
    WinActivate($oIE)
    WinWaitActive($oIE)
    ControlClick($oIE, "", 4424)

    [/autoit]

    was ich aber nicht verstehe, ich denke es ist bei "control click/send/command" egal, ob das fenster aktiv ist oder nicht?

    PS: ok, anscheinend geht das nur bei ControlSend, right?

    thx =)

  • ControlClick geht nicht oO

    • sc4ry
    • 22. April 2007 um 12:18

    ok, da hast du natürlich recht, wobei ich mir eben gedacht habe, wofür habe ich überhaupt die variable *g*

    code sieht jetzt so aus

    [autoit]

    $oIE = "Dateidownload"
    WinActive($oIE)
    WinActivate($oIE)
    ControlClick($oIE, "", 4424)

    [/autoit]

    also er springt jetzt auch auf den button "Speichern". aber dieser wird nicht gedrückt, sondern nur markiert.

  • ControlClick geht nicht oO

    • sc4ry
    • 22. April 2007 um 11:44

    hey, ich versuche mich gerade am controlclick, aber es will einfach nicht.
    ich habe ein screnn angefügt, in der man titel, text und id sehen kann.
    doch nichts passiert, wenn ich es so eingebe.

    habe auch probiert

    ControlClick("Dateindownload", "", 4424)
    ControlClick("Dateindownload", "", "Button2")
    ControlClick("Dateindownload", "&Speichern", 4424)
    ControlClick("Dateindownload", "&Speichern", "Button2")

    PS: mit ControlClick($oIE, "&Speichern", "Button2") makiert er schonmal den Speichern Button, aber er drückt ihn nicht wirklich.
    PPS: ich weiss auch, dass ich das fenster nicht aktivieren muss, aber zum testen ist es halt besser, statt dann manuell zu gucken, was er geklickt hat =)

    Dateien

    ControlClick.jpg 90,01 kB – 0 Downloads
  • Usernamen aus Windows auslesen und in Reg schreiben ... mit Punkten zwischen Buchstaben

    • sc4ry
    • 21. April 2007 um 18:55

    ohne mich jetzt einschleimen zu wollen, aber ich weiss jetzt schon fast garnichtmehr, wie ich dir danken soll =)

    ich hätte sicherlich paar min gebraucht, aber danke für den tip und nochmal danke für die lösung *g*

    ich glaube jetzt ist das script perfekt, wird alles beachtet. zu blöd das ich es gestern schon an ein paar leute verschickt habe. aber vllt wird es ja weltweit eingsetzt *lol*

    ok, vllt bissel übertrieben, aber evtl brauchen es noch andere abteilungen.

  • Usernamen aus Windows auslesen und in Reg schreiben ... mit Punkten zwischen Buchstaben

    • sc4ry
    • 21. April 2007 um 17:30

    da es sich um das selbe script/ thema handelt, schreib ich mal hier weiter und erspare euch einen neuen thread *g*

    alles klappt einwandfrei, hab mittlerweile auch noch einen vergleich des schlüssels eingebaut, damit am ende gesagt wird, ob alles richtig, oder etwas falsch verlaufen ist.

    Spoiler anzeigen
    [autoit]

    ;@Office-Variable @regwrite if then endif
    ;
    ;Username 2 Office V.2.5
    ;
    ;
    ;© dvp
    ;

    [/autoit] [autoit][/autoit] [autoit]

    ;Msgbox INFO
    MsgBox(0, "Username 2 Office by dvp", "Dieses Script trägt Ihren Usernamen in die MS Office Benutzerinformationen ein", 4)

    [/autoit] [autoit][/autoit] [autoit]

    ;Usernamen in Hex wandeln
    WinWaitNotActive("Username 2 Office by dvp")
    #include <string.au3>
    $String = (@username)
    $Hex = _StringToHex($String)
    $RegHex = ""
    For $i = 1 To Stringlen($Hex) Step 2
    $RegHex &= StringMid($Hex,$i,2) & "00"
    Next
    $RegHex &= "0000"

    ;Schreibe Usernamen in Registry
    RegWrite("HKCU\Software\Microsoft\Office\11.0\Common\Userinfo", "UserName", "Reg_Binary", $RegHex )

    ;Überprüfe Username
    $read = RegRead("HKCU\Software\Microsoft\Office\11.0\Common\Userinfo", "Username")
    if $read = $RegHex Then
    MsgBox(0, "Username 2 Office by dvp", "Usernamen korrekt in MS Office übernommen", 4)
    Else
    MsgBox(0, "Username 2 Office by dvp", "Usernamen nicht korrekt in MS Office übernommen, bitte wenden Sie sich an dvp")
    EndIf

    [/autoit]

    jetzt habe ich aber noch das problem, das, wenn jmd nicht office version 11. hat, der pfad in der registry anders ist.
    es gibt auch win2k und xp bei uns, wobei ich da gelesen habe, dass der pfad gleich ist.

    aber wie kann ich autoit nun anweisen, dass es den richtigen pfad nimmt, je nachdem was vorhanden ist.
    entweder
    HKCU\Software\Microsoft\Office\11.0\Common\Userinfo
    oder
    HKCU\Software\Microsoft\Office\10.0\Common\Userinfo
    oder
    HKCU\Software\Microsoft\Office\9.0\Common\Userinfo

    etwa wie HKCU\Software\Microsoft\Office\*\Common\Userinfo =)

    Edit bernd670: AutoIt-Tags zwecks besser Darstellung eingefügt!

  • zu Blöd für "RunWait" oder was habe ich für ein Problem

    • sc4ry
    • 21. April 2007 um 16:58

    aso, jetzt hab ich es geschnallt *g*
    aber dann kann ich mir das nach dem komma doch eigentlich auch sparen, oder?

  • zu Blöd für "RunWait" oder was habe ich für ein Problem

    • sc4ry
    • 20. April 2007 um 17:55
    [autoit]

    run("WINWORD.EXE", @ProgramFilesDir & "\Microsoft Office\OFFICE11\")

    [/autoit]

    wieso geht das nicht? also es ist mir wichtig, dass es mit der variable @programfiledir geht, da es teilweise auf dt. und en. windows ausgeführt wird, und es einmal unter programme oder program files liegt.

  • INetSendMail

    • sc4ry
    • 20. April 2007 um 15:32

    hört sich so an, als würde sowas in folgenden versionen kommen können *g*

    ok, reicht mir aber auch so. ist auf jeden fall schonmal ne verbesserung von meinem derzeitigen script =)
    thx

  • INetSendMail

    • sc4ry
    • 20. April 2007 um 14:47

    ich möchte mich ja nicht unnötig dazwischenklemmen, aber die fälschlicherweise angesproche funktion "INetSendMail" hört sich für mich ganz nice an, aber kann man damit auch anhänge verschicken?
    also direkt im code.

    ansonsten heisst es ja "Öffnet das Standard-Mailprogramm mit der angegeben Adresse, Betreff, und Inhalt."

    d.h. falls das nicht geht, kann ich per tastenkombi "anhang" wählen und dann mein file automatisch auswählen lassen.

  • script schützen

    • sc4ry
    • 20. April 2007 um 13:09

    das mit der pdf war eigentlich schon ne gute idee.

    egal was ich schicken würde, abtippen würde ja eh immer gehen.

    ich dachte eigentlich an eine ähnliche funktion wie bei office, das man die dateien mit ein pw versehen kann, wenn man es ändern will.
    ich weiss zwar, dass das nicht sonderlich sicher ist, aber für standarduser reicht es auch vollkommen aus.

    thx =)

  • script schützen

    • sc4ry
    • 20. April 2007 um 10:24

    hallo,

    gibt es eine möglichkeit, ein script zu schützen?

    also wenn ich das script selber als au3.-datei weitergebe, das man es nur ansehen kann mit scite oder notepad?

  • Usernamen aus Windows auslesen und in Reg schreiben ... mit Punkten zwischen Buchstaben

    • sc4ry
    • 20. April 2007 um 10:02

    du warst einfach zu schnell bernd =)

    es klappt einwandfrei. großes danke, das ist auf jeden fall die bessere alternative *g*

  • Usernamen aus Windows auslesen und in Reg schreiben ... mit Punkten zwischen Buchstaben

    • sc4ry
    • 20. April 2007 um 09:55
    [autoit]

    #include <string.au3>
    Dim $user = StringSplit(@UserName, "")
    Dim $out = ""

    For $i = 1 To $user[0]
    $out &= $user[$i] & "."
    Next

    [/autoit][autoit][/autoit][autoit]

    RegWrite("HKCU\Software\Microsoft\Office\11.0\Common\Userinfo", "Test", "Reg_Binary", $Hex)

    [/autoit]

    also hab das ganze mal von einem der ersten postings übernommen, klappt soweit auch ganz gut, ausser ...

    ich bekomme dann zb "p.l.u.t.o.d." raus, was unter word wieder nur salat gibt.
    richtig müsste word es erkennen, wenn es "p.l.u.t.o.d..." heißt.

    also noch 2 punkte dran.

    so schwer wird das nicht sein, oder *g*
    ich arbeite grad dran, es will zwar noch net gant, aber ich bin zuversichtlich =)

    PS: ok, jetzt versteh ich auch endlich, was du genau mit "." und "0x00" meinst *g*
    es wird also punkt angezeigt, ist aber in hex "2e"
    aus diesem grund erscheint bei word sicherlich salat.

    ich werde deine lösung mal eben testen, evtl. müssen die 2 punkte dann doch nicht angehangen werden.

    PS: die 2 punkte, bzw "00" müssen noch dran =)
    aber ansonsten geht deine lösung wurderbar. dank dir/euch schonmal, das hat mir echt rießig weitergeholfen. den rest versuch ich dann jetzt mal

  • Usernamen aus Windows auslesen und in Reg schreiben ... mit Punkten zwischen Buchstaben

    • sc4ry
    • 20. April 2007 um 09:21

    im grunde ist es nicht so schwer, ausser dass ich damit noch nicht zurecht komme, wie ich einen reg_binary wert an die reg sende. also normal klappen tut es schon, aber ich habe ja erstmal nur den normalen usernamen. den müsste ich jetzt in einen hexadezimalen string wandeln.

    PS: ok, hab es geschafft, war doch ganz easy *g*

    jetzt wär nur das prob mit den punkten

    script sieht so aus:

    [autoit]

    #include <string.au3>
    $String = (@username)
    $Hex = _StringToHex($String)
    RegWrite("HKCU\Software\Microsoft\Office\11.0\Common\Userinfo", "UserName", "Reg_Binary", $Hex)

    [/autoit]

    also müsste ich jetzt $Hex splitten und dazwischen immer 0x00 setzen, oder?

  • Hilfe - IE Seiten fertig laden

    • sc4ry
    • 20. April 2007 um 09:15

    Hallo,

    ich bins nochmal.

    nicht das ich den thread puschen will, jedoch besteht mein prob immernoch.

    sind in meiner hochgeladenen txt denn die richtigen informationen, oder kann mir jmd einfach ein bsp. für ieclicklinkbyindex/text geben, dass ich anhand dessen mein script umbauen kann.

    leider bin ich nicht so html versiert und die hilfe hilft mir auch nicht so richtig dabei, was ich nun machen soll =/

    aber schonmal thx =)

  • Usernamen aus Windows auslesen und in Reg schreiben ... mit Punkten zwischen Buchstaben

    • sc4ry
    • 19. April 2007 um 12:51

    hmm ok, doch nicht so einfach wie ich mir alles vorgestellt habe, aber ich werde einfach mal die einfachste methode wählen *g*

    aber auch da ein prob ... ich fang an mit:

    run("C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE")
    WinWaitActive("Dokument1 - Microsoft Word")
    send("!xo")

    dann komm ich in die optionen in denen ich auf die registerkarte "benutzerinformationen" springen muss.

    leider gibt es keine controlid o.ä.

    einen mausklick mit koordinaten wollte ich vermeiden. wie komme ich nur schnell auf diese registerkarte, mit einem controlklick oder was in der art?

    ich konnte auch 6x strg-tab drücken wenn alles reißt, aber geht es auch kürzer?

  • Usernamen aus Windows auslesen und in Reg schreiben ... mit Punkten zwischen Buchstaben

    • sc4ry
    • 19. April 2007 um 08:25

    hi,

    ich brächte mal wieder hilfe =)

    prob ist.
    öffnen 2 leute eine office datei auf einem netzlaufwerk wird dieses
    beim 2ten versuch als gesperrt angezeigt. zusätzlich sieht man den
    namen, der diese datei sperrt. so kann man schnell absprechen wie
    lang es noch dauert etc.

    nun besteht das problem, dass anscheinend nicht bei allen leuten der
    username in den benutzerinformationen gespeichert ist. das muss
    geändert werden. natürlich haben wir nicht die versiertesten anwenden
    hier, so dass ich über eine einfach lösung (doppelklick auf eine datei) nachdenke.

    diese soll den benutzername auslesen und dass in einen registry-zweig
    schreiben, wo office sich anschließend den benutzernamen herholt.
    wenn man den benutzernamen jedoch normal schreibt (hex in der reg)
    bekommt man jedoch nur cryptische zeichen raus.
    bin mir nicht sicher obs firmenspezifisch oder von ms so gewünscht
    ist, dass hinter jedem buchstaben ein punkt steht. wird es jedoch so
    gemacht, wird der name in office richtig, und auch ohne punkte
    dargestellt.

    nun bleibt die frage, wie frage ich den benutzernamen ab, und sage
    autoit, dass es zw. jeden buchstaben einen punkt setzen soll, um
    das anschließend in die reg. zu schreiben???

    wahlweise könnte ich noch die einfachere methode nehmen, in der ich den usernamen auslesen, word öffne, in die entsprechende option gehe und dort den benutzernamen eingeben lasse. hier würde nur der nutzer nicht weiter arbeiten können, variante 1 würde im hintergrund ablaufen. werde aber beide ausprobieren, da ich nicht weiss, ob ich variante 1 auch schon schaffe =)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™