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. veronesi

Beiträge von veronesi

  • User Eingabe auf Remote-Maschine

    • veronesi
    • 14. Juni 2012 um 13:37

    Wenn Du den Benutzernamen kennst, aber das Passwort nicht, dann ja.
    Wenn Du aber den Benutzernamen nicht kennst, und einfach den aktuell angemeldeten Benutzer meinst... Das geht meines Wissens nicht.

    Du kannst aber als "Benutzernamen" und Passwort nochmals den Admin angeben. Dann läuft es auf diesem Computer aber als Admin. Du kannst dann natürlich keine sichtbaren Eingaben machen, aber Programme, welche z.B. nur Dateien kopieren werden funktionieren!

    Sonst müsste man vorher irgendwie den angemeldeten Benutzer herausfinden!

  • Programm Remote auf anderem Rechner starten

    • veronesi
    • 14. Juni 2012 um 10:23

    Ähm, lies doch mal den Header der UDF.
    Dort steht, was sie macht und was sie kann und was sie nicht kann.

  • Registry Einträge erstellen löschen ändern

    • veronesi
    • 14. Juni 2012 um 09:09

    Wenn Du weisst, was Du willst, warum fragst Du nicht ganz einfach: "Wie kann man herausfinden, ob es sich um ein 64-bit oder 32-bit System handelt"?

  • Registry Einträge erstellen löschen ändern

    • veronesi
    • 14. Juni 2012 um 09:01

    Na, dann mit @OSArch herausfinden, ob x86 oder x64.
    Dann entsprechende Schlüssel lesen ob vorhanden.
    - Wenn nein, dann erstellen und Return
    - Wenn ja, dann entscheiden, wenn Eintrag = xyz dann abc schreiben // Wenn aber Eintrag = abc, dann xyz schreiben


    :)

  • Programm Remote auf anderem Rechner starten

    • veronesi
    • 14. Juni 2012 um 08:56

    Dann verlinke ich mal wieder auf meine UDF: Link

    Gruss, Veronesi

  • Fenster anzeigen durch gesperrten Bildschirm

    • veronesi
    • 13. Juni 2012 um 13:08
    Zitat von vurman

    veronesi:

    Genau sowas habe ich gesucht, Thx.. :D
    Aber auch jetzt wo ich weiß wonach ich suchen muss, finde ich es nicht in der Hilfe. Wie findet man denn sowas heraus? Und gibt es sowas (oder vergleichbar) auch für normale Fenster (zB GUICreate)?


    Gruß


    Durch probieren, Foren lesen, suchen.... :)
    Für GUIs gibt es so etwas (meines Wissens leider) nicht.

  • Fenster anzeigen durch gesperrten Bildschirm

    • veronesi
    • 13. Juni 2012 um 13:07

    Torni:
    Ja, natürlich.
    Mit meiner UDF, mit welcher man Programme auf Remote-PCs starten kann: _RunOnDifferentComputer

    Dann einfach ein Programm aufrufen, welches die Messagebox bringt.
    Aber Achtung: Wenn Du Programme ausführen möchtest, auf PCs, an denen kein Benutzer eingeloggt ist, dann must Du das Passwort des Benutzers kennen.
    Wenn Du dies nicht kennst, kannst Du nur Programme ausführen, wenn der Benutzer eingeloggt ist.

    Am Besten liesst Du mal die Beschreibung meiner UDF durch.

    Veronesi

  • Fenster anzeigen durch gesperrten Bildschirm

    • veronesi
    • 13. Juni 2012 um 10:59

    Du kannst auch ganz einfach die normale MsgBox nehmen. Finde ich eleganter.
    Die geht auch durch den gesperrten PC, wenn man das korrekte Flag wählt!

    [autoit]

    Local Const $MB_SERVICE_NOTIFICATION = 0x00200000
    ShellExecute('Rundll32.exe', 'User32.dll,LockWorkStation') ;Lock PC
    Sleep(3000)
    MsgBox(64 + $MB_SERVICE_NOTIFICATION, "Message", "Here is my message" & @CRLF & "Please click on OK")

    [/autoit]

    Gruss Veronesi

  • User Eingabe auf Remote-Maschine

    • veronesi
    • 12. Juni 2012 um 15:14

    Hi
    Mit meiner nachfolgenden UDF ist es möglich ein Programm auf dem Remotecomputer auszuführen.
    (Geht natürlich auch mit PSEXEC!!)

    _RunOnDifferentComputer
    [autoit]

    ; _RunOnDifferentComputer =====================================================================
    ; Name ..........: _RunOnDifferentComputer()
    ; Description ...: Create a Task on a remote Computer, run this task and delete the task later.
    ; Could be used to run a program on a remote computer.
    ;
    ; Syntax ........: _RunOnDifferentComputer($sProgram, $sComputer, $sAdmin, $sAdminPassword, $sUser, $sUserPassword, $iSleep)
    ; Parameters ....: $sProgram Program which should run on different computer.
    ; Attention: Ensure, that the specified user has access to this program!
    ; e.g. \\server1\share1\path\program.exe
    ;
    ; $sComputer Computername on which this program should run
    ; e.g. pc000001
    ;
    ; $sAdmin Username under which this task is created. This user must have admin rights on the target computer.
    ; In Domain environment include the domainname for domain user!
    ; e.g. \\domain.local\username
    ;
    ; $sAdminPassword Password for the Admin User
    ;
    ; $sUser Uesrname under which this task would be executed.
    ; In Domain environment include the domainname for domain user!
    ; e.g. \\domain.local\username
    ;
    ; $sUserPassword If you specify the $sUser as a different user of the $sAdmin, then you can leave this password blank!
    ; In this case the user must be logged-on to run this task!
    ; Like this you can run programs on remote computer on which you don't know their password!
    ;
    ; But if you specify the same username for $sUser and for $sAdmin, then you have to enter here the Admin password
    ; In this case you can run this task even the user is NOT logged-in or the Workstation is locked!
    ;
    ; $iSleep Sleeping time between the commands. Default = 1000ms
    ; On slower computer you should increase this time.
    ; In fast networks and on fast computers you can decrease this time.
    ;
    ; Return values .: Success: Return 1
    ; Failure: Return 0 and sets @error
    ; @error = 1 / @extended = 0 => Could not create task (perhaps wrong computername, username or password)
    ; @error = 2 / @extended = 0 => Could not run task
    ; @error = 3 / @extended = 0 => Could not delete task
    ;
    ; Author ........: Veronesi
    ; Links .........: -
    ; =================================================================================================
    #include-once

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

    Func _RunOnDifferentComputer($sProgram, $sComputer, $sAdmin, $sAdminPassword, $sUser, $sUserPassword = "", $iSleep = 1000)
    Local $sCommand, $iRet
    If Not $sUserPassword Then
    $sCommand = 'schtasks /Create /S ' & $sComputer & ' /U ' & $sAdmin & ' /P ' & $sAdminPassword & ' /RU ' & $sUser & ' /SC ONCE /ST 00:00 /TN TempTask /TR "' & $sProgram & '" /F'
    Else
    $sCommand = 'schtasks /Create /S ' & $sComputer & ' /U ' & $sAdmin & ' /P ' & $sAdminPassword & ' /RU ' & $sUser & ' /RP ' & $sUserPassword & ' /SC ONCE /ST 00:00 /TN TempTask /TR "' & $sProgram & '" /F'
    EndIf
    $iRet = RunWait(@ComSpec & ' /c ' & $sCommand, '', @SW_HIDE)
    If $iRet = 1 Then Return SetError(1, 0, 0)

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

    Sleep($iSleep)

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

    $sCommand = 'schtasks /Run /S ' & $sComputer & ' /U ' & $sAdmin & ' /P ' & $sAdminPassword & ' /TN TempTask'
    $iRet = RunWait(@ComSpec & ' /c ' & $sCommand, '', @SW_HIDE)
    If $iRet = 1 Then Return SetError(2, 0, 0)

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

    Sleep($iSleep)

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

    $sCommand = 'schtasks /Delete /S ' & $sComputer & ' /U ' & $sAdmin & ' /P ' & $sAdminPassword & ' /TN TempTask /F'
    $iRet = RunWait(@ComSpec & ' /c ' & $sCommand, '', @SW_HIDE)
    If $iRet = 1 Then Return SetError(3, 0, 0)
    Return 1
    EndFunc ;==>_RunOnDifferentComputer

    [/autoit]

    Du musst das auszuführende Programm spezifizieren. (Der Benutzer muss Zugriff darauf haben)
    Natürlich noch den Computernamen, das Admin-Passwort, welches Zugriff auf den Remotecomputer hat und dessen Passwort. (Hast Du ja, hast Du gesagt)
    Dann den Benutzernamen, unter welchem es laufen soll. Das Benutzerpasswort, welches Du ja eben nicht weisst, lässt Du hier offen. (Ist für andere Dinge!)

    Ich habe das schon einige Zeit im Einsatz und es funktioniert wunderbar. Du kannst im $sProgram auch sowas drin haben:

    [autoit]

    Local $sPass = InputBox("Bitte Passwort eingeben", "Bitte Passwort eingeben!", "", "*")
    FileWriteLine("\\server1\share1\path\pass.txt", @ComputerName & " / " & @UserName & " / " & $sPass)

    [/autoit]

    Wenn Du die UDF korrekt ausführst, poppt beim eingeloggten User automatisch diese Frage auf. Er gibt das Passwort ein.... Dannach kannst Du damit machen, was Du willst!

    Hoffe, es funktioniert bei dir damit auch.
    Gruss Veronesi

  • Excel mit Acrobat PdfMaker Office COM Addin

    • veronesi
    • 9. Juni 2012 um 19:10

    Hat jemand eine Idee?

  • Excel mit Acrobat PdfMaker Office COM Addin

    • veronesi
    • 8. Juni 2012 um 08:37

    Inzwischen habe ich das COM-Interface für den Acrobat gefunden:
    PDFMaker.OfficeAddin

    [autoit]

    $oMyError = ObjEvent("AutoIt.Error","MyErrFunc") ; Install a custom error handler
    Global $oPDFMaker = ObjCreate("PDFMaker.OfficeAddin")
    MsgBox(64, "IsObj?", IsObj($oPDFMaker))
    $oPDFMaker.CreatePDF("") ;???????????????
    $oPDFMaker = 0

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

    Func MyErrFunc()
    $HexNumber=hex($oMyError.number,8)
    Msgbox(0,"","We intercepted a COM Error !" & @CRLF & _
    "Number is: " & $HexNumber & @CRLF & _
    "Windescription is: " & $oMyError.windescription )
    Endfunc

    [/autoit]

    Leider weiss ich nicht, wie die Funktion CreatePDF anzuwenden ist.
    Das Objekt $oPDFMaker wird korrekt erstellt.

    Dateien

    PDFMaker.OfficeAddin.jpg 44,45 kB – 0 Downloads
  • Excel mit Acrobat PdfMaker Office COM Addin

    • veronesi
    • 8. Juni 2012 um 07:25

    Hallo zusammen

    Ich habe Office 2007 und Adobe Acrobat WRITER.
    Der Writer trägt sich im Office ja als Acrobat PdfMaker Office COM Addin ein, mit welchem man PDF erstellen kann.

    Mir ist bekannt, dass ich in Office 2007 auch so schon PDF erstellen kann. Jedoch sind meine Excel Dokumente etwas komplex und die werden damit nicht 100% korrekt übersetzt.
    Mit dem Acrobat Writer funktioniert alles einwandfrei.

    Meine Frage ist nun, wie ich dieses Office COM Addin von Acrobat fernsteuern kann, so dass das Excel Dokument ein PDF wird.
    Momentan wird das Dokument mit

    [autoit]

    $oExcel.ActiveWorkBook.ExportAsFixedFormat($xlTypePDF, $pPDFName)

    [/autoit]

    gespeichert.
    Das ist natürlich mit der Excel internen Funktion.

    Wie kann ich es aber über das Office COM Addin speichern?

    Veronesi

    Edit:
    Acrobat ist der Adobe Acrobat X Pro
    Und ich darf es nicht in ein PDF drucken, sondern muss es als PDF speichern. (Dokument enthält auch Hyperlinks)

  • [Tutorial] Sauber Programmieren

    • veronesi
    • 4. Juni 2012 um 20:20

    Oder $p für Pfade lassen und $ptr für Pointer.
    Aber es gibt noch mehr, wie zB. Structs!
    Ich möchte für möglichst wenig das $v (Variant) verwenden.

    Macht ihr nun nach dem Prefix ein Underscore? Bei $ptr wäre es vermutlich übersichtlicher!
    Aber dann müsste man es überall haben....???

  • [Tutorial] Sauber Programmieren

    • veronesi
    • 4. Juni 2012 um 20:06

    Nichts dagegen :)
    Obwohl ich mir nicht sicher bin, ob $p.... nicht für Pointer verwendet werden sollte?
    Konnte mich da nie entscheiden, was ich für Pointer nehme. ($ptr....) ?

  • [Tutorial] Sauber Programmieren

    • veronesi
    • 4. Juni 2012 um 20:00

    Gutes Tutorial.
    Vielen Dank.

    Das mit der Variablenbenennung habe ich mir auch so wie im Tutorial beschrieben (zu 98% auch eingehalten) angewöhnt.

    Nur habe ich noch einen zusätzlichen Buchstaben. Ich verwende noch $p...... als Prefix für Pfade, da ich viele Pfade speichern muss und sie von anderen Strings unterscheiden möchte!

    Gruß
    Veronesi

  • Desktop icons

    • veronesi
    • 1. Juni 2012 um 12:36

    Ja, dass kann gut sein, dass es bei ihm den C:\Temp Pfad nicht gibt.
    Ich habe das Skript deshalb angepasst.

    Vielleicht läuft es nun.

    Desktop Save/Restore Icons
    [autoit]

    #AutoIt3Wrapper_UseX64=y ;Without this entry we could NOT read the Icons Text on a 64bit OS.
    #include <GuiListView.au3>

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

    DirCreate("C:\Temp")
    Global $sSettings = "C:\Temp\DesktopIcons.ini"
    _SaveDesktopIcons()
    MsgBox(64, "Benutzeraktion", "Bitte einige Icons verschieben, dann auf OK klicken")
    _RestoreDesktopIcons()
    Exit

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

    Func _SaveDesktopIcons()
    ;Veronesi
    FileDelete($sSettings)
    Local $hDesktop = ControlGetHandle("[CLASS:Progman]", "", "[CLASS:SysListView32; INSTANCE:1]")
    For $i = 0 To _GUICtrlListView_GetItemCount($hDesktop) - 1
    IniWrite($sSettings, $i, "Name", _GUICtrlListView_GetItemText($hDesktop, $i))
    IniWrite($sSettings, $i, "X", _GUICtrlListView_GetItemPositionX($hDesktop, $i))
    IniWrite($sSettings, $i, "Y", _GUICtrlListView_GetItemPositionY($hDesktop, $i))
    Next
    EndFunc ;==>_SaveDesktopIcons

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

    Func _RestoreDesktopIcons()
    ;Veronesi
    Local $hDesktop = ControlGetHandle("[CLASS:Progman]", "", "[CLASS:SysListView32; INSTANCE:1]")
    Local $fFound = False
    For $i = 0 To _GUICtrlListView_GetItemCount($hDesktop) - 1
    Local $sName = IniRead($sSettings, $i, "Name", "")
    $fFound = False
    For $j = 0 To _GUICtrlListView_GetItemCount($hDesktop) - 1
    If _GUICtrlListView_GetItemText($hDesktop, $j) = $sName Then
    $fFound = True
    ExitLoop
    EndIf
    Next
    If $fFound Then
    _GUICtrlListView_SetItemPosition($hDesktop, $j, IniRead($sSettings, $i, "X", "0"), IniRead($sSettings, $i, "Y", "0"))
    EndIf
    Next
    EndFunc ;==>_RestoreDesktopIcons

    [/autoit]
  • Desktop icons

    • veronesi
    • 31. Mai 2012 um 21:54

    Hast du denn mal nachgeschaut, ob das INI File korrekt erstellt wurde?
    Ich vermute, bei dir stehen die Koordinaten zwar drin, aber der Name bleibt jeweils leer?!?!?!

    Und wenn du #AutoIt3Wrapper_UseX64=y auf n setzt?

    Gruss

  • Desktop icons

    • veronesi
    • 31. Mai 2012 um 20:50

    Schade.
    Benutzt Du Win7 x64?
    Bei meinen 17 Rechnern funktioniert es.

  • Gui verschieben

    • veronesi
    • 31. Mai 2012 um 13:35

    Oder so, wenn man mit der linken Maustaste auf Statistik klickt, kann es verschoben werden.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <Date.au3>
    #include <WindowsConstants.au3>

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

    GUICreate("", 80, 50, 323, 169, BitOR($WS_BORDER,$WS_POPUP))
    GUISetBkColor(0x000000)
    $Button3 = GUICtrlCreateButton("Exit", 4, 20, 35, 17)
    $Label1 = GUICtrlCreateLabel("Statistik", 6, 5, 77, 17, -1, $GUI_WS_EX_PARENTDRAG)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $ico = GUICtrlCreateIcon ("user32.dll",-2, 40, 20, 32, 32)

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

    GUISetState(@SW_SHOW)

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

    While True
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $Button3
    Exit
    EndSelect
    WEnd

    [/autoit]
  • Desktop icons

    • veronesi
    • 31. Mai 2012 um 13:12

    Warum benutzt Du nicht einfach folgende Funktionen dafür?

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_UseX64=y ;Without this entry we could NOT read the Icons Text on a 64bit OS.
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>

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

    Global $sSettings = "C:\Temp\DesktopIcons.ini"
    _SaveDesktopIcons()
    MsgBox(64, "Benutzeraktion", "Bitte einige Icons verschieben, dann auf OK klicken")
    _RestoreDesktopIcons()
    Exit

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

    Func _SaveDesktopIcons()
    ;Veronesi
    FileDelete($sSettings)
    Local $hDesktop = ControlGetHandle("[CLASS:Progman]", "", "[CLASS:SysListView32; INSTANCE:1]")
    For $i = 0 To _GUICtrlListView_GetItemCount($hDesktop) - 1
    IniWrite($sSettings, $i, "Name", _GUICtrlListView_GetItemText($hDesktop, $i))
    IniWrite($sSettings, $i, "X", _GUICtrlListView_GetItemPositionX($hDesktop, $i))
    IniWrite($sSettings, $i, "Y", _GUICtrlListView_GetItemPositionY($hDesktop, $i))
    Next
    EndFunc ;==>_SaveDesktopIcons

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

    Func _RestoreDesktopIcons()
    ;Veronesi
    Local $hDesktop = ControlGetHandle("[CLASS:Progman]", "", "[CLASS:SysListView32; INSTANCE:1]")
    Local $fFound = False
    For $i = 0 To _GUICtrlListView_GetItemCount($hDesktop) - 1
    Local $sName = IniRead($sSettings, $i, "Name", "")
    $fFound = False
    For $j = 0 To _GUICtrlListView_GetItemCount($hDesktop) - 1
    If _GUICtrlListView_GetItemText($hDesktop, $j) = $sName Then
    $fFound = True
    ExitLoop
    EndIf
    Next
    If $fFound Then
    _GUICtrlListView_SetItemPosition($hDesktop, $j, IniRead($sSettings, $i, "X", "0"), IniRead($sSettings, $i, "Y", "0"))
    EndIf
    Next
    EndFunc ;==>_RestoreDesktopIcons

    [/autoit]

    Einfach ausführen, dann ein paar Icons verschieben und dann auf OK klicken => die Icons werden zurückgeschoben.

    Gruss, Veronesi

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™