Beiträge von Moombas

    Tipp: Bau dir zu Testzwecken ein manuelles Auslesen (auf einen Button, der dann deine Funktion aufruft (inkl. einer Ausgabe in einer MsgBox ($objAdapter.IPAddress(0)) oder so und ohne die Adlib registrierung) wenn du ihn drückst).

    Dann schaut du was er dir ausgibt, nachdem du das Kabel gesteckt hast und nochmal nachdem du es gezogen hast.

    Du musst nun step by Step das Problem finden.

    Nein, ich meine diese hier (hier fehlt immer noch das Auskommentieren in Zeile 103, siehe unten). Und pack mal das Return hinter die if Abfrage (bzw. das kann eigentlich weg, da du nichts zurück gibst)), das habe ich versehentlich mit rein kopiert.:


    Und ob du wirklich alle !50! Millisekunden die Abfrage laufen lassen willst, solltest du dir echt überlegen.

    Das bedeutet, das diese Abfrage 20mal je Sekunde läuft und ist daher total überdimensioniert. Die Default 250ms sind schon in Ordnung, wobei auch 500ms gehen würden.

    Meines Wissens ist eine, außerhalb einer Funktion, deklarierte Variable immer global, auch wenn sie mit Local deklariert wurde. Die Verwendung von Global ist aber 'transparenter' :) .

    Nur am Rande : Auf Dim zur Variablendeklaration sollte man lt. Hilfe ja eh verzichten.

    Ich weiß aber hier scheint noch viel Unwissenheit zu herrschen beim TE (nicht böse gemeint), daher sollte man alles klar definieren um zu Wissen was/wie läuft.

    Deswegen empfehle ich ja auch die Verwendung von #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7 bzw. Opt('MustDeclareVars', 1)

    Noch ein Nachtrag, da ich es gerade gesehen habe (unabhängig von meinem vorherigen Post):

    Du deklarierst hier Variablen immer noch falsch:

    Code
    ;Zeile 27/28:
    Local $sHost= "localhost" ;Außerhalb einer Funktion deklariert, also muss hier Global stehen!
    Local $Gateway, $nMsg     ;Außerhalb einer Funktion deklariert, also muss hier Global stehen!

    Sorry, eine Zeile vergessen auszukommentieren aber mein Copebeispiel war nichts für F5!

    Das war komplett unabhängig zu betrachten.


    Aber kommentiere die Zeile mal aus, wie ich es obennachkommentiert habe, dann sollte es funktionieren.

    Schon mal geprüft, was du überhaupt als Rückgabewert bekommst in dem nicht funktionierenden Fall (Consolewrite() und per F5 starten)?


    Bei folgendem bitte korrigieren falls ich falsch liege:

    Bau mal folgendes ein (bzw. ersetze Zeile 101-113):

    Ich muss überzeugt werden, wenn man andere Meinung ist oder andere Vorstellungen eines Lösungsweges hat. Ansonsten bin ich stur. Meistens zumindest. Leider, das gebe ich auch zu, bin ich zu oft zu verbissen. Wenn ich für etwas eine Lösung haben möchte, dann muss es die auch geben. Das kann dann auch schon mal Tage oder Wochen dauern, bis ich sage "Dann halt nicht". Das kann Arbeitszeit kosten und das ist dann nicht unbeding first class.

    Das kommt mir irgendwie bekannt vor :rofl:

    Deine angesprochene Zeile existiert nicht in deinem bereitgestellten Code!


    Dort gibt es nur 1 Zeile wo diese Variable vorkommt (local ist hier auch richtig, wenn diese nur innerhalb der Funktion gebraucht wird): local $IPLabel = $objAdapter.IPAddress(0)


    Wegen der fehlenden includes: die GUIBkImage wurde ja auskommentiert, die services.au3 habe ich zwar vorliegen aber GuiCtrlSetOnHover_UDF nicht.

    Aber selbst wenn diese vorliegen würden, kann man hier nicht helfen, solange nicht wirklich alle relevanten Informationen bereit stehen.

    Daher kann man hierbei nur in die :Glaskugel: schauen und raten: setze ein Global bzw Local vor (da ich nicht weiß im welchen Kontext die Variable genutzt wird, kann ich es nicht sagen) $IPLAbel = GUICreateLabel(_ActiveIP(), 10, 60, 980, 20). Und sofern es Global ist, musst du deinen Variablennamen bearbeiten, denn wie oben zu sehen gibt es diese bereits in einem Lokalen Kontext hast, was zu Problemen führen kann/wird.

    Danke für eure bisherrigen Meinungen.

    Ich werde mich bemühen mehr an mich zu denken.

    Klingt zwar blöd aber manchmal muss man ein wenig egoistisch sein.

    Kenne das aus dem Bekanntenkreis und Familie insbesondere aus den Pflegeberufen, wo dann sehr oft angerufen wird wegen Einspringen etc.. Das geht dann ganz schnell in den Burnout, wenn man da nicht nein sagen kann. Und lass dir da ggf. von der Familie helfen (dir da Feuer unterm Hintern machen, wenn du wiedermal Ja gesagt hast), das hilft!

    Ja, es ist nicht immer einfach gerade so etwas zu ändern aber du solltest es in diesem Fall definitiv tun.


    Und das wirklich zu deinem Besten! Anfangs wird es dir schwer fallen und dich erst mal "mehr Belasten".

    Aber sobald du das verinnerlicht hast, wirst du merken, wie gut dir die dadurch entstehenden "Auszeiten" tun werden.

    Ich meine es wird bestimmt mal einen echten Notfall geben aber man muss sich bei so etwas immer die Frage stellen: "Kann das bis zum nchsten regulären Arbeitstag warten oder muss das jetzt gemacht werden?" Wobei das "Muss" bedeutet, enorme Verdienstausfälle für den AG etc. und nicht "vorrübergehend umständlicheres arbeiten" und natürlich über die Verbindlichkeiten im Arbeitsvertrag.


    Aber mir z.B. ist generell das Wochenende heilig, sollte aber etwas wirklich unaufschiebbares an mich herangetragen werden ist das in ORdnung, da es hier zum Glück sehr selten passiert.

    Oder

    Zu: 1. Naja wo hast du stabilitäts Probleme? Mein PC läuft seit dem ersten Aufsetzen auf W10 (und vorher auf W7) stabil ohne jegliche Abstürze.

    Zu: 2. Ich weiß ja nicht was du Einsetzt und wofür, aber das wäre für mich hier der einzige sinnige Grund auf XP zu bleiben

    Zu: 3. Naja das meiste lässt sich schnell und einfach abschalten. Sowas wie ClassicShell hilft enorm, aber wenn das OS dadurch Sicherheitstechnisch auf dem neuesten Stand ist, sollte man das in Kauf nehmen. Muss aber jeder selber wissen (sich aber dann dem Mehraufwand für workarounds etc. bewusst sein).


    Zum Rest: Was exakt das Problem des veralteten OS/veralteter Software ist. Und diese "Belanglosigkeiten" sind Sicherheitsaspekte. Wenn du nicht mit asbach uralter Gurkensoftware rumeierst, hättest du dieses Problem garnicht erst und müsstest dich nicht damit beschäftigen, sondernkönntest einfach Arbeiten.


    Tipp: Ggf. macht es Sinn mit zwei Systemen zu arbeiten. Eins für deine alte Software und eins fürs Surfen/Mailen (das wäre auch per VM möglich).

    Blöde Frage: Wäre es nicht einfacher, deinen zu Übergebenen Text (alle 4 Zeilen) als zusammenhängenden einzeiler als einzigen Parameter zu übergeben und in dem Programm das dann aufzudröseln (wenn dies nicht auch schon in der VBA benötigt wird)? Also: deinprogramm.exe "deinTextkomplett in Anführungsstrichen"


    Ansonsten lass am besten Sonderzeichen in den Bezeichnern weg (!) also:

    AutoIt
    ;Möglichkeit 1 (Einzelparameterübergabe):
    ;Übergabe:   /PCName "HP-Z2LeihstellungCPU" /CPU "Intel Core i7-12700K" /RAM "2 x 16GB" /Drive "MTFDKBA1T0TFH-1BC1AABHA 1TB" /GPU "NVIDIA T400 2GB; Intel UHD Graphics 770" /WWAN "0" /WIFI "0" /TOUCH "0" /SN "CZC"
    
    ;Aufbau in AutoIt wäre so, müsstest du dann für VBA umschreiben:
    $Parameter = '/PCName "' & $PCName & '" /CPU " & $CPU & '" /RAM "' & $RAM & '" /Drive "' & $Drive & '" /GPU"' & $GPU & '" /WWAN "' & $WWAN & '" /WIFI " & $WIFI & '" /TOUCH "' & $Touch & '" /SN "' & $SN & '"'
    AutoIt
    ;Möglichkeit 2 (Komplettübergabe):
    ;Übergabe:   "HP-Z2Leihstellung CPU: Intel Core i7-12700KRAM: 2 x 16GB Drive: MTFDKBA1T0TFH-1BC1AABHA 1TB GPU: NVIDIA T400 2GB; Intel UHD Graphics 770 WWAN: 0 WIFI: 0 Touch: 0 S/N: CZC"
    
    ;Aufbau in AutoIt wäre so, müsstest du dann für VBA umschreiben:
    $Parameter = "HP-Z2Leihstellung CPU: Intel Core i7-12700KRAM: 2 x 16GB Drive: MTFDKBA1T0TFH-1BC1AABHA 1TB GPU: NVIDIA T400 2GB; Intel UHD Graphics 770 WWAN: 0 WIFI: 0 Touch: 0 S/N: CZC"
    
    Und diesen String musst du dann in AutoIt bearbeiten und ins Array packen oder was du sonst damit vor hast.

    Naja, ich würde das Alles mal ausschließen BugFix , da es hier ums "surfen im Internet" geht. Ansonsten sind mir diese "Umstände" bekannt ;)

    Und gerade beim surfen erleben wir aktuell immer wieder das teilweise eine aktuelle Browserversion benötigt wird, damit gewisse Webseiten funktionieren (hat jetzt nichts mit den cookies zu tun). Aber mit einer aktuellen Version sind entsprechende Add-Ins möglich, die Cookies und deren Banner etc. blockieren können (selbst nicht getestet, da nicht benötigt).

    Also doch die Kommentare von der Datei.

    Ich habe dazu mal eine Funktion gefunden, als ich die Chrome-Version des Installers auslesen wollte und diese leider nur im Kommentar steht:

    Ich bin mir nicht sicher ob Excel mit "Links" auch die Links zu den Datenbanken einbezieht.

    Wenn ja versuch mal das hier:

    AutoIt
    Local $oWorkbook = _Excel_BookOpen($oExcel, $sWorkbook, $bReadOnly, $bVisible, $sPassword, 0)

    Die 0 am Ende verhindert das Updaten der Links und somit sollte die Datei als "nicht bearbeitet" stehen bleiben und somit auch nicht zum Speichern auffordern..