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

Beiträge von Bitboy

  • MySQL-Problem

    • Bitboy
    • 26. Januar 2010 um 16:25

    Nein leider nicht. Mit LEFT-JOIN hatte ich auch schon ein paar Versuche gestartet. Trotzdem Danke.

    Wenns gar nicht anders geht, werde ichs wohl etwas umbasteln müssen. Also die Tabelle software_installed.

  • Tray-Icon erscheint nicht, wenn Programm als Dienst läuft

    • Bitboy
    • 26. Januar 2010 um 16:16

    Hm, liegt bei mir vllt daran, dass ich die service.au3 verwendet hab um den dienst einzurichten. Vllt ist die RunAsSvc besser.
    Guck ich mir mal bei gelegenheit an.

  • Tray-Icon erscheint nicht, wenn Programm als Dienst läuft

    • Bitboy
    • 26. Januar 2010 um 15:19

    Wenn es als Dienst installiert ist:

    Dienste -> Eigenschaften vom Dienst öffnen -> Tab anmelden -> Haken bei "Datenaustausch zwischen Dienst und Desktop zulassen" -> Übernehmen

    Funktioniert bei XP, bei Server 2003 nicht.

  • Erkennen ob Bildschirm an ist

    • Bitboy
    • 26. Januar 2010 um 13:49

    Ich geb dir mal ein paar Stichworte:

    Scriptomatic

    WMI: Win32_DesktopMonitor

    Besonders intressant ist der Wert Availability

    http://msdn.microsoft.com/en-us/library/…28VS.85%29.aspx

    Habs grade ausprobiert, da gings aber nicht, könnte daran liegen dass noch ein kvm switch dazwischen hängt.

  • MySQL-Problem

    • Bitboy
    • 26. Januar 2010 um 12:25

    Also, wie auf dem Bild zusehen habe ich 3 Tabellen.

    Ich bräuchte eine Abfrage die mir, general.host und software_check.name zurückgibt.
    Dabei sollen nur die Einträge zurückgegebenwerden die nicht in der Tabelle software_installed geführt sind.

    Kurz gesagt, ich will wissen welche Software auf welchem Rechner NICHT installiert ist.
    [Anmerkung: software_installed listet nur was wirklich installiert ist, software_check listet alles was überprüft wird]

    Bin leider noch ziemlich unerfahren was SQL angeht und wäre für einen Tipp wie man das Problem angeht sehr dankbar.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Bilder

    • sqlprob.jpg
      • 14,15 kB
      • 528 × 138
  • Tutorial: Wie man Script-Fehler erfolgreich sucht/findet bzw. richtig debuggt

    • Bitboy
    • 21. Januar 2010 um 16:09

    Hm, Zugriff verweigert :(

    Naja muss den Versuch dann eh auf nächste Woche schieben.
    Werd dann nochmal rückmeldung geben

  • Tutorial: Wie man Script-Fehler erfolgreich sucht/findet bzw. richtig debuggt

    • Bitboy
    • 21. Januar 2010 um 14:30

    Leider treten einige Fehler nur auf bestimmten Systemen auf.

    Dann ist es aber meistens schon kompiliert und der Interpreter wirft etwas aus wie "Fehler in Zeile soundso".

    Die Zeilenangabe ist zumindest bei mir wegen der includes nicht hilfreich. Wie bekommt man also den Quelltext wie ihn der Compiler zusammenbaut
    damit man sich die Problemstelle ansehen kann?

    Den Tipp von hier: [ gelöst ] Quelltext in der Exe-Datei archivieren
    hab ich schon versucht, allerdings werden die includes da noch nicht aufgelöst.
    Der Quelltext sieht also genauso aus wie im Editor.

    Hat jemand eine Idee wie man dem Fehler auf die Spur kommt?

  • Oscar hat Geburtstag.

    • Bitboy
    • 19. Januar 2010 um 17:46

    Auch von mir alles Gute :)

  • Startskript Win7 - XP Problem

    • Bitboy
    • 19. Januar 2010 um 11:14

    Und das wurde mit Win7 geändert?
    Naja gut zu Wissen. Danke

  • Startskript Win7 - XP Problem

    • Bitboy
    • 19. Januar 2010 um 10:52

    Wenn man explizit einen Benutzernamen angibt und damit ein Netzlaufwerk erstellt gehts.

    Finde ich aber irgendwie eine unschöne Lösung. (Die durchaus folgeprobleme nach sich ziehen kann)

    Versteh einfach nicht warum es scheinbar nicht mit den Rechten vom SYSTEM-Konto gestartet wird.
    Unter Win7 gehts doch auch ... ?

  • Startskript Win7 - XP Problem

    • Bitboy
    • 19. Januar 2010 um 09:16

    Per Gruppenrichtlinie lasse ich ein Startskript (noch vor der Anmeldung) ausführen. Das Script soll dabei ein Programm starten dass sich in einem freigegebenen Ordner befindet.
    Das Startskript wird mit dem Benutzer "SYSTEM" gestartet, sollte also auf alles Zugriff haben.

    Mit Windows 7 funktioniert das auch einwandfrei, Mit Windows XP hingegen nicht.
    Hat jemand eine Idee wo das Problem liegt?

  • Softwareverteilung Hephaistos [RELEASE]

    • Bitboy
    • 18. Januar 2010 um 17:23

    Anstatt ein Programm von einem dritthersteller zu nehmen kannst du dir auch mal den code hier ansehen ;)
    http://www.autoitscript.com/forum/index.php?showtopic=29772

  • Softwareverteilung Hephaistos

    • Bitboy
    • 17. Januar 2010 um 17:18

    Hey interessantes Projekt. Arbeite derzeit an einem nahezu identischen System.
    Vllt können wir ja was voneinander lernen wenn beide hier veröffentlicht sind.
    (Sofern du das vorhast)

  • Angemeldeten Benutzer ermitteln (vom System-Konto)

    • Bitboy
    • 14. Januar 2010 um 11:15

    hab die Funktion folgendermaßen umgeschrieben:

    Spoiler anzeigen
    [autoit]

    Func _GetUsername()
    Local $sLoggedInUser = "", $sLoggedInDomain = "", $sResults = ""
    $objWMIService = ObjGet("winmgmts:" & "{impersonationLevel=impersonate}!\\localhost\root\cimv2")
    If IsObj($objWMIService) Then
    $colComputer = $objWMIService.ExecQuery("Select * from Win32_ComputerSystem")

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

    For $objComputer In $colComputer
    $sLoggedInUser = $objComputer.UserName
    Next
    If StringInStr($sLoggedInUser,"\") Then
    $iSplit = StringInStr($sLoggedInUser,"\")
    $sLoggedInDomain = StringTrimRight($sLoggedInUser,(StringLen($sLoggedInUser) - $iSplit)+1)
    $sLoggedInUser = StringTrimLeft($sLoggedInUser,$iSplit)
    EndIf

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

    ;If $sLoggedInDomain <> "" Then $sResults &= "Logged in domain: " &$sLoggedInDomain &@CRLF
    If $sLoggedInUser = "" Then $sLoggedInUser = "n.a"
    Else
    $sLoggedInUser = "n.a"
    EndIf
    Return $sLoggedInUser
    EndFunc

    [/autoit]

    und es läuft. vielen Dank :)

  • Angemeldeten Benutzer ermitteln (vom System-Konto)

    • Bitboy
    • 14. Januar 2010 um 10:13

    Also ich habe ein Startskript, dass von einem domain-controller ausgeführt wird, also noch bevor ein Benutzer sich anmeldet.
    Das Skript wird entsprechend mit dem System-Account ausgeführt. Aufgrund der UAC geht das leider nicht anders da das Skript Adminrechte benötigt.

    Es wartet bis die explorer.exe gestartet wurde. Dann soll es ermitteln welcher benutzer angemeldet ist.
    @Username liefert nur "SYSTEM" zurück.
    RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer", "Logon User Name") liefert "", also leerer String.

    Hat noch jemand eine Idee wie man den angemeldeten Benutzer herausbekommt?

    Als möglichkeit würde mir noch einfallen, den Benutzernamen ermitteln, der dem Prozess explorer.exe zugewiesen ist.
    Weiß aber leider nicht wie das geht

  • Reg-Funktionen und 64 Bit

    • Bitboy
    • 11. Januar 2010 um 22:50

    Klar, viel extra Code braucht man dafür nicht.
    Ältere, umfangreichere Scripte nachträglich ändern kann aber aufwendig werden.

    Zur Laufzeit den Code passend ändern ist doch ein Vorteil den ein Interpreter bietet, warum also nicht nutzen?
    Würde auch ein wenig die Fehleranfälligkeit runter schrauben.

  • Reg-Funktionen und 64 Bit

    • Bitboy
    • 11. Januar 2010 um 22:36

    Ich hab mich gerade gefragt ob es nicht sinnvoller wäre wenn der Interpreter zur Laufzeit selbst überprüft ob es ein 32 oder ein 64 Bit System ist und den Hauptschlüssel selbst anpasst?
    Würde die kompatibilität auch von älteren Scripten verbessern. Möglich müsste dass doch sein oder?

    Weiß jemand ob von den Entwicklern in der richtung etwas geplant ist?

  • Verschlüsselungstool für USB-Stick

    • Bitboy
    • 9. Januar 2010 um 22:41

    Hast du dir schonmal TrueCrypt angesehen?
    Davon gibt es auch eine portable Version. Es mountet eine Containerdatei als Netzlaufwerk, die verschlüsselung wird wieder aktiv wenn das Laufwerk ausgehangen wird (Im TrueCrypt programm).

    Die Anforderung "- Dateien per Doppelklick entschlüsseln und mit der verknüpften Anwendung öffnen" und portable schließen sich eigentlich aus,
    Programme die wirklich portable sind, ändern auch nicht die Registrierung.

  • SplashTextOn - Fenster automatisch an Schriftgröße anpassen

    • Bitboy
    • 9. Januar 2010 um 18:52

    Hab mal versucht die funktion so zu ändern dass automatisch die Zeile umgebrochen wird wenn die Länge zu groß ist
    aber irgendwie funktioniert es nicht richtig. Ich finde auch den Fehler auf anhieb nicht. Hat jemand eine idee?

    EDIT: Nochmal etwas geändert, der Code für den Zeilenumbruch ist wohl noch etwas wackelig, aber sonst gehts schon ganz gut

    Spoiler anzeigen
    [autoit]

    Func _GetTextSize($nText, $AutoCRLFWidth=0, $iFontSize = 12, $sFont = 'Microsoft Sans Serif', $iFontAttributes = 0)
    Local $DUMMY, $ainfo, $iWidth, $iHeight, $retArr[4]
    Local $WordArr[1][1], $tmpArr, $SpaceSize, $WordSize, $CRLFString, $LineSize=0, $lines=0

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

    If $sFont = "" Then $sFont = 'Microsoft Sans Serif'
    ;Author: Bugfix
    ;Modified: funkey
    If $nText = '' Then Return
    $hOld = GUISwitch($DUMMY)
    Local $hGUI = GUICreate("Textmeter by Bugfix")
    _GDIPlus_Startup()
    Local $hFormat = _GDIPlus_StringFormatCreate(0)
    Local $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    Local $hFont = _GDIPlus_FontCreate($hFamily, $iFontSize, $iFontAttributes, 3)
    Local $tLayout = _GDIPlus_RectFCreate(15, 171, 0, 0)
    Local $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)

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

    ;Zeilenumbrüche einfügen
    If $AutoCRLFWidth > 0 Then
    $tmpArr = StringSplit($nText, " ")
    Redim $WordArr[$tmpArr[0]+1][2]
    ;_ArrayDisplay($tmpArr)

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

    ;Daten übertragen
    $WordArr[0][0] = $tmpArr[0]
    For $i = 1 To $tmpArr[0]
    $WordArr[$i][0] = $tmpArr[$i]
    Next
    ;_ArrayDisplay($WordArr)

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

    ;Breite eines Leerzeichens
    $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, " ", $hFont, $tLayout, $hFormat)
    $SpaceSize = Ceiling(DllStructGetData($aInfo[0], "Width"))

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

    For $i = 1 To $WordArr[0][0]
    ;Länge der einzelnen Wörter ausrechnen
    $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $WordArr[$i][0], $hFont, $tLayout, $hFormat)
    $WordArr[$i][1] = Ceiling(DllStructGetData($aInfo[0], "Width"))

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

    ;Falls erforderlich Zeilenumbruch einfügen
    If $Linesize + $WordArr[$i][1] + $SpaceSize > $AutoCRLFWidth Then
    $CRLFString = $CRLFString & @CRLF & $WordArr[$i][0]
    $LineSize = $WordArr[$i][1]
    $lines = $lines + 1
    Else
    $CRLFString = $CRLFString & " " & $WordArr[$i][0]
    $LineSize = $LineSize + $WordArr[$i][1] + $SpaceSize
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $LineSize = ' & $LineSize & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    EndIf

    Next
    ;unnötige Leerzeichen entfernen
    $CRLFString = StringStripWS($CRLFString, 3)
    $nText=$CRLFString
    EndIf

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

    $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $nText, $hFont, $tLayout, $hFormat)
    $iWidth = Ceiling(DllStructGetData($aInfo[0], "Width"))
    $iHeight = Ceiling(DllStructGetData($aInfo[0], "Height"))
    Msgbox(0,"debug", $nText)

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

    ;Ressourcen freigeben
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    GUIDelete($hGUI)
    $retArr[0] = $iWidth
    $retArr[1] = $iHeight
    $retArr[2] = $lines + 1
    $retArr[3] = $nText
    GUISwitch($hOld)
    Return $retArr
    EndFunc ;==>_GetTextSize

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

    Func AutoSizeSplash($Title, $Content, $Width=500, $xpos=-1, $ypos=-1, $opt=32, $fontname="", $fontsize=12)
    Local $SizeArr = _GetTextSize($Content, $Width, $fontsize, $fontname)
    If $SizeArr[3] = "" Then $SizeArr[3] = $Content
    If $SizeArr[0] > $Width Then $Width = $SizeArr[0]
    _ArrayDisplay($SizeArr)
    SplashTextOn($Title, $SizeArr[3], $Width, $SizeArr[1] + 30, $xpos, $ypos, $opt, $fontname, $fontsize)
    EndFunc

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

    #include <gdiplus.au3>
    #include <array.au3>

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

    AutoSizeSplash("Hallo Welt", "Das ist ein ganz ganz langer text mit vielen" & @CRLF & @CRLF & "vielen Wörtern zum Gucken ob es funktioniert." & _
    " Deswegen kommen jetzt noch ein paar mehr Zeichen und hier ist schließlich Ende.", 600 ,-1,-1, 33, "", 14)
    Sleep(5000)
    SplashOff()

    [/autoit]
  • SplashTextOn - Fenster automatisch an Schriftgröße anpassen

    • Bitboy
    • 8. Januar 2010 um 13:58

    Nee, damit geht es leider auch nicht :(

    Mist, wenn man einstellt, dass der Text vertial zentriert angezeigt werden soll, dann funktioniert nichtmal mehr der automatische zeilenumbruch :(

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™