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

Beiträge von Axel

  • Auslesen seit wann ein Benutzer angemeldet ist

    • Axel
    • 3. Dezember 2015 um 11:38

    Vielleicht eine Hilfe...

    "net stats server" liefert dir zwar nicht die Zeit wie lange ein Benutzer angemeldet ist, aber wie lange der Rechner schon läuft.
    Die Ausgabe lässt sich in eine Textdatei umleiten und dann auslesen. Sieht dann so aus....

    RunWait(@ComSpec & " /c net stats srv >c:\temp\shutdowntime.txt","",@SW_HIDE)
    $file = FileOpen("c:\temp\shutdowntime.txt", 0)
    If $file = -1 Then Exit(1)
    $zeit = ""
    While 1
    $a = FileReadLine($file)
    If @error = -1 Then ExitLoop
    If StringLeft($a, 15) = "Statistik seit " Then $zeit = StringMid($a,16)
    WEnd
    FileClose($file)
    Sleep(500)
    FileDelete("c:\temp\shutdowntime.txt")
    Msgbox(0,"Zeit",$zeit)

  • GDIPlus Grafiken verschwinden wenn Fenster minimiert wird.

    • Axel
    • 3. Dezember 2015 um 11:19

    In einem laufenden Script zeichne ich mit _GDIPlus_GraphicsFillRect Grafiken. Wenn ich das Fenster minimiere und dann wieder maximiere, sind die gezeichneten Grafiken futsch. Neu gezeichnetes erscheint dann wieder, weil das Script noch läuft und immer wieder neu "malt". Ist das normal? Was kann ich dagegen tun?

    Gruß, Axel

  • Windows 10 und WinActivate

    • Axel
    • 3. Dezember 2015 um 11:10

    Ich habe die Tage ein paar Befehle auf einem Windows 10 - 64bit - Rechner ausprobiert und musste feststellen dass es irgendwie nicht richtig funktionierte.
    Ich wollte ein vorhandenes Fenster in den Vordergrund holen und an einer bestimmten Position ein Mausklick durchführen.
    Doch das aktivieren und in den Vordergrund holen mittels WinActivate klappte nicht.

    Gbt es Einschränkungen mit Windows 10 und AutoIT ?

    Gruß, Axel

  • Sicherheitsattribut von Dateien auslesen/ändern

    • Axel
    • 5. Juni 2013 um 08:48

    Danke für die Idee.
    Jemand noch eine Idee wie ich im Script feststellen könnte ob eine Datei "geschützt" ist?

  • Sicherheitsattribut von Dateien auslesen/ändern

    • Axel
    • 4. Juni 2013 um 16:05

    Hallo Zusammen,

    besteht die Möglichkeit mittels AutoIT das Sicherheitsattribut einer Datei auszulesen oder zu ändern?

    Wenn eine ausführbare Datei zum Beispiel aus dem Internet geladen wird, dann ist standardmässig das Sicherheitsattribut gesetzt. Beim Ausführen der Datei muss der Benutzer erst zustimmen.
    In den Eigenschaften der Datei befindet sich dann der Eintrag...
    Sicherheit: Die Datei stammt von einem anderen Computer. Der Zugriff wurde aus Sicherheitsgründen eventuell blockiert.
    Man kann dann auf den "Zulassen"-Button klicken und der Benutzer muss danach der Ausführung nicht mehr zustimmen.

    Dieses Zulassen möchte ich per Script oder über einen Kommandozeilenbefehl steuern.

    Weiß jemand wie?

  • aus einer geöffneten Excel-Datei / Tabellenblatt lesen, ohne diese zu aktivieren

    • Axel
    • 7. Mai 2013 um 00:17

    Ich konnte gerade eine Lösung im Internet finden. So einfach ...

    Code
    $oExcel = ObjGet("","Excel.Application")
    if $oExcel = 0 Then
    	MsgBox(16,"Fehler","Excel ist nicht gestartet!")
    	Exit
    EndIf
    $a = $oExcel.Workbooks(1).Sheets(1).Cells(4,4).Value
    MsgBox(0,"",$a)

    Die Zahl in Workbooks gibt die erste/zweite/dritte... Datei an, falls in Excel mehrere Dateien geöffnet sind.
    Sheets ist das Tabellenblatt und Cells die Zelle die ausgelesen wird. 4,4 bedeutet D4.

    Danke trotzdem für die Mühe!

  • aus einer geöffneten Excel-Datei / Tabellenblatt lesen, ohne diese zu aktivieren

    • Axel
    • 6. Mai 2013 um 23:50

    Schade, ich krieg es nicht am laufen.
    Ständig : C:\Program Files (x86)\AutoIt3\Include\Excel Rewrite.au3(289,56) : ERROR: ObjGet() [built-in] called with wrong number of args.
    Aus dem Beispiel geht auch nicht hervor was ich in _Excel_BookAttach(...) angeben muss wenn die Datei schon geöffnet ist. Hast du zu den Befehlen auch eine Hilfedatei mit allen möglichen Parametern? Das würde mir vielleicht mehr helfen.

    Lässt sich mit ObjGet nicht eine Verknüpfung zu einer Excel-Arbeitsmappe herstellen?

  • aus einer geöffneten Excel-Datei / Tabellenblatt lesen, ohne diese zu aktivieren

    • Axel
    • 6. Mai 2013 um 22:33

    Ja, hab ich. Im Beispielcode wird eine Datei zuvor geöffnet mittels _Excel_BookOpen. Das hab ich weg gelassen und stattdessen mit ObjGet("","Excel.Application") die Variable gefüttert.
    Ich bekomme dann jedoch nur Fehlermeldungen.

  • aus einer geöffneten Excel-Datei / Tabellenblatt lesen, ohne diese zu aktivieren

    • Axel
    • 6. Mai 2013 um 21:29

    Ich krieg leider nur Fehlermeldungen unterschiedlicher Art.
    water : Könntest du bitte schreiben wie die Codezeilen auszusehen haben.

  • aus einer geöffneten Excel-Datei / Tabellenblatt lesen, ohne diese zu aktivieren

    • Axel
    • 6. Mai 2013 um 16:54

    Die Möglichkeit fällt leider auch raus, da die eingegebenen Daten des Anwenders ausgelesen werden. Sprich, die Daten sind noch nicht in der Datei gespeichert.
    Eine sehr zeitnahe Auslesung ist absolut wichtig.

  • aus einer geöffneten Excel-Datei / Tabellenblatt lesen, ohne diese zu aktivieren

    • Axel
    • 6. Mai 2013 um 16:21

    Habs gerade probiert, geht nicht. Das Script kommt in Konflikt mit der geöffneten Datei, obwohl ich nur lesend drauf zugreife und mit _ExcelBookClose($oExcel,0,0) schließe.

  • Mittels RunAs Registry Sichern/Importieren

    • Axel
    • 6. Mai 2013 um 16:03

    Stimme Micha zu. Auf den HKEY_CURRENT_USER - Zweig hat der Benutzer immer Vollzugriff, sonst würde das Windows gar nicht laufen.
    Du kannst das Script ganz normal als Benutzer ausführen. Probiere mal aus!

  • aus einer geöffneten Excel-Datei / Tabellenblatt lesen, ohne diese zu aktivieren

    • Axel
    • 6. Mai 2013 um 15:21

    Vielen Dank! :rolleyes:
    Wie muss der Code aussehen um aus einer bereits geöffnete Exceldatei zu lesen?
    Die Beispiele öffnen eine Exceldatei, meine ist aber schon offen. Das $oExcel von ObjGet mag die UDF nicht. Bekomme da Fehlermeldungen.

  • aus einer geöffneten Excel-Datei / Tabellenblatt lesen, ohne diese zu aktivieren

    • Axel
    • 6. Mai 2013 um 13:45

    Hallo AutoIT Gemeinde,

    ich suche zur Zeit eine Möglichkeit aus einer geöffneten Exceldatei aus einem bestimmten Tabellenblatt Daten auszulesen, ohne dass der Anwender "gestört" wird.
    Das folgende Script liest zwar die Daten aus z.b. Zelle B3 vom erstem Tabellenblatt, aber das geöffnete Excel springt beim Lesevorgang in das zu lesende Tabellenblatt. Wie kann ich dies verhindern?
    $a = _ExcelReadCell($oExcel,"Tabelle1!B3") geht so leider nicht :(

    Code
    $oExcel = ObjGet("","Excel.Application")
    if $oExcel = 0 Then
    	MsgBox(16,"Fehler","Excel ist nicht gestartet!")
    	Exit
    EndIf
    _ExcelSheetActivate($oExcel,1)
    $a = _ExcelReadCell($oExcel,"B3")
    MsgBox(0,"",$a)
    
    
    Exit
    Alles anzeigen
  • Netzwerkdrucker installieren

    • Axel
    • 30. April 2012 um 18:18

    Guck mal hier...

    http://hannes-schurig.de/18/11/2010/drucker-per-kommandozeile-cmd-verwalten-rundll32-exe-printui-dll/</a>

    Alle Befehle die du in einer Kommandozeile eingeben kannst, kannst du auch in einem AutoIT-Script mit Run(As)(Wait) ausführen. Siehe dazu auch die Hilfe.

  • temporären Benutzer erstellen

    • Axel
    • 30. April 2012 um 12:02

    Ja richtig. Wenn ich mit dem temporären Benutzer auf dem Server zugreife, dann brauche ich net use garnicht und habe direkt Zugriff, vorausgesetzt auf dem Server sind die Zugriffsrechte entsprechend gesetzt.

  • temporären Benutzer erstellen

    • Axel
    • 30. April 2012 um 11:04

    Hallo Zusammen,

    es ist auch eine Windows-Frage....
    ich habe ein Script welches eine Verbindung zu einem Server aufbaut, ca. 1min. lang Daten austauscht und die Verbindung dann wieder trennt.
    Der Verbindungsaufbau und die Trennung erfolgt im AutoIT-Script druch Aufruf von

    RunWait(@ComSpec & " /c " & "@net use " & $server & ' "' & $password & '" /USER:' & $user & " /persistent:no >NUL", "", @SW_HIDE) ; Verbindung herstellen

    und

    RunWait(@ComSpec & " /c " & '@net use ' & $server & ' /d /yes >NUL', "", @SW_HIDE) ; Verbindung wieder trennen

    Die Verbindung wird nicht mit dem angemeldeten Benutzer hergestellt, doch wenn dieser genau in dieser Minute im Windows-Explorer \\server aufruft, hat er Datenzugriff und kann alles machen.
    Meine Idee wäre mittels AutoIT einen temporären Benutzer zu erstellen und die Verbindung mit dem temporären Benutzer herzustellen, dann dürfte der angemeldete Benutzer während der Laufzeit nicht auf dem Server kommen. Doch wie mache ich das?

    Bin für jede Hilfe dankbar.

  • Skript um Datei zugriffrechte nur lesen und ausführen.

    • Axel
    • 30. April 2012 um 10:49

    Ich ändere das bei mir so, klappt einwandfrei...

    $ordner = "C:\hastenichtgesehen"
    $adminpass = "meinadminpasswort"
    RunAsWait("Administrator", @ComputerName, $adminpass, 1, @ComSpec & " /c " & 'cacls "' & $ordner & '" /t /e /c /g JEDER:f',"",@SW_HIDE)

  • [HELP] HDD Hardware ID

    • Axel
    • 18. April 2012 um 15:54

    Leider musste ich im nachhinein festellen dass der Code nicht auf Windows XP läuft.
    Auch bei manchen Festplattenherstellern wird nicht die korrekte SN ausgelesen.

    Aber irgendwie muss es doch möglich sein ?( . Tools wie z.b. der SIV (System Informations Viewer) zeigen mir auf allen Betriebsystemen und allen Festplattenherstellern die SN zuverlässig an.

    Kennt jemand noch eine andere Möglichkeit?

  • [HELP] HDD Hardware ID

    • Axel
    • 13. April 2012 um 21:45

    Ich möchte den Thread noch mal hoch holen, weil ich gerade ein Script benötige das mir die Hersteller-Seriennummer von der Systemplatte anzeigt.
    Das Script oben zeigte mir nicht die richtige SN an. Der richtige Wert steckt in der Eigenschaft : $objItem.Serialnumber
    Das Script hat mir ansonsten sehr geholfen. Vielen Dank!

    [autoit]


    $a = _GetDriveInfo(StringLeft(@SystemDir,3))
    MsgBox(0,"",$a)
    Exit

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

    Func _GetDriveInfo($sDrive)
    $sDrive = StringRegExpReplace($sDrive, '(?i)(.*)([a-z]{1}:)(.*)', '$2')
    Local $sDriveType = DriveGetType($sDrive)
    If $sDriveType <> 'Fixed' And $sDriveType <> 'Removable' Then SetError(1, 0, 1)
    If Not FileExists($sDrive) Then Return SetError(1, 0, 1)
    Local $wbemFlagReturnImmediately = 0x10
    Local $wbemFlagForwardOnly = 0x20
    Local $colItems = ''
    Local $aPartition, $aPhysicalDrive, $aOut[14][2]
    $objWMIService = ObjGet('winmgmts:\\localhost\root\CIMV2')
    If Not IsObj($objWMIService) Then Return SetError(2, 0, 2)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_LogicalDiskToPartition', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) then
    For $objItem In $colItems
    If StringInStr($objItem.Dependent, '"' & $sDrive & '"') Then
    $aPartition = StringRegExp($objItem.Antecedent, 'DeviceID="(.*)"', 3)
    EndIf
    Next
    Endif
    If Not IsArray($aPartition) Then Return SetError(3, 0, 3)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_DiskDriveToDiskPartition', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) then
    For $objItem In $colItems
    If StringInStr($objItem.Dependent, '"' & $aPartition[0] & '"') Then
    $aPhysicalDrive = StringRegExp($objItem.Antecedent, 'DeviceID="(.*)"', 3)
    EndIf
    Next
    Endif
    If Not IsArray($aPhysicalDrive) Then Return SetError(4, 0, 4)
    $aPhysicalDrive[0] = StringReplace($aPhysicalDrive[0], '\\', '\')
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) then
    For $objItem In $colItems
    If StringInStr($objItem.DeviceID, $aPhysicalDrive[0]) Then
    $aOut = StringStripWS($objItem.Serialnumber,8)
    EndIf
    Next
    Endif
    $objWMIService = ''
    Return $aOut
    EndFunc

    [/autoit]

    Anmerkung:
    Ich habe alle Leerzeichen aus der SN entfernt (StringStripWS).

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™