Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Startup Analyzer (ein kleines Programm)

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Startup Analyzer (ein kleines Programm) (3004 mal gelesen)
autocart
Mitglied
Technischer Redakteur


Sehen Sie sich das Profil von autocart an!   Senden Sie eine Private Message an autocart  Schreiben Sie einen Gästebucheintrag für autocart

Beiträge: 695
Registriert: 08.09.2003

erstellt am: 07. Jun. 2010 00:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


STB_StartupAnalyzer.zip

 
Hallo AutoLISP-Gemeinde!

Falls es das hier schon gibt, dann bitte nicht schlagen. Wäre dann interessant, wie es andere gemacht haben.

Ich habe jedenfalls einmal ein kleines AutoLISP-Proggi begonnen (mit OpenDCL), das die AutoCAD-System-Einstellungen (für das aktuelle Profil) danach analysiert, was automatisch beim AutoCAD Startup alles mitgestartet wird. Das Ergebnis wird in einem Fenster angezeigt. In einem weiteren Schritt soll auch ein Export in eine Textdatei möglich sein.

Ich stelle das erste Ergebnis hiermit als BTNware (Better Than Nothing - Benützung auf eigene Gefahr) der Öffentlichkeit zur Verfügung. Es darf kostenlos verwendet und weiterentwickelt werden. Das Einzige: Solange der ursprüngliche Source-Code zum größten Teil weiterverwendet wird, möchte ich als Copyright-Halter im Source-Code weiter aufscheinen. Danke.

Nun noch einige Fragen an alle Interessierten:
Habe ich irgentwelche Quellen übersehen, die AutoCAD beim Startup auch noch absucht um dann eventuell Programme mitzustarten?

Ist es überhaupt für den einen oder anderen nützlich? Falls nein, dann werde ich wohl nicht mehr viel mehr Zeit investieren. Falls aber ja, dann gibt mir ein positives Feedback natürlich extra Motivation, das Proggi weiter zu verbessern.

Hat jemand eine Idee, wie man das Programm noch verbessern kann? Wenn ja, welche?

EDIT: Habe nun die Export-Funktion noch eingebaut.

Hier nun (zusätzlich zum Anhang) der (neue) Source-Code:

Code:
(defun c:StartupAnalyzer (/ STB_closeForm c:guiStartupAnalyzer_mainDialog_OnCancel c:guiStartupAnalyzer_mainDialog_OnInitialize
                            c:guiStartupAnalyzer_mainDialog_OnOK c:guiStartupAnalyzer_mainDialog_btnClose_OnClicked
                            c:guiStartupAnalyzer_mainDialog_btnExport_OnClicked
                            projectName)
 
  (vl-load-com)
 
  ; *** tests for requirements ***
  (if(not(member "OpenDCL" (vl-registry-descendents (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Applications"))))
    (progn
      (alert "Startup Analyzer:\n\nThe OpenDCL-Runtime environment is not installed. Please install the version 6.0.0.27 or higher.\n-> EXIT")
      (exit)
    )
    ; else:
    (progn
      (command "_OPENDCL") ; Load OpenDCL Runtime
      (if(or(<(dcl_getversion) 6.0) ; (and(=(dcl_getversion) 6.0) (<(atoi(substr(vl-filename-extension(vl-filename-base(dcl_getversionex))) 2)) 0))
            (and(=(dcl_getversion) 6.0) (=(atoi(substr(vl-filename-extension(vl-filename-base(dcl_getversionex))) 2)) 0)
                (<(atoi(substr(vl-filename-extension(dcl_getversionex)) 2)) 27)
            ) ; and
         ) ; or
        (progn
          (alert "Startup Analyzer:\n\nThe installed OpenDCL-Runtime environment is a version less than 6.0.0.27. Please install the version 6.0.0.27 or higher.\n-> EXIT")
          (exit)
        )
      ) ; if
    )
  ) ; if

 
  ; *** setup of variables and functions
  (setq projectName "guiStartupAnalyzer")

  (defun STB_DateTimeString(/ cd)
    (setq cd(rtos(getvar "cdate")2 6))
    (if(= 14(strlen cd)) (setq cd(strcat cd "0")))
    (strcat
      (substr cd 1 4)
      (substr cd 5 2)
      (substr cd 7 2)
      "-"
      (substr cd 10 2)
      "-"
      (substr cd 12 2)
      "-"
      (substr cd 14 2)
    )
  ) ; DateTimeString
 
  (defun STB_closeForm ()
    (dcl_Form_Close(eval(read(strcat projectName "_mainDialog"))))
  )

  (defun c:guiStartupAnalyzer_mainDialog_OnCancel (/)
    (STB_closeForm)
  )
 
  (defun c:guiStartupAnalyzer_mainDialog_OnOK (/)
    (STB_closeForm)
  )
 
  (defun c:guiStartupAnalyzer_mainDialog_OnInitialize (/ textToDisplay hkeyBase NumStartup i file lineOfText mnlfile)
    ; *** startup suite ***
    (setq textToDisplay "Defined in the Startup-Suite (Command \"Appload\"):"
          hkeyBase(strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\PROFILES\\"
                      (vla-get-ActiveProfile(vla-get-PROFILES(vla-get-preferences(vlax-get-acad-object))))
                  )
          NumStartup(atoi(VL-REGISTRY-READ(strcat hkeyBase "\\Dialogs\\Appload\\Startup") "NumStartup"))
          i 1
    ) ; setq
    (if(= 0 NumStartup)
      (setq textToDisplay(strcat textToDisplay "\r\n  There is nothing in the startup suite."))
      ; else:
      (while(<= i NumStartup)
        (setq textToDisplay(strcat textToDisplay "\r\n  " (VL-REGISTRY-READ(strcat hkeyBase "\\Dialogs\\Appload\\Startup") (strcat(itoa i)"Startup"))))
        (setq i(1+ i))
      ) ; while
    ) ; if

   
    ; *** other registry data ***
    (setq textToDisplay(strcat textToDisplay "\r\n\r\nDefined in other parts of the registry (Key \"Applications\"):")
          hkeyBase(strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Applications")
          i 0
    ) ; setq
    (foreach element(vl-registry-descendents hkeyBase)
      (if(= 2(boole 1 2(vl-registry-read(strcat hkeyBase "\\" element) "LOADCTRLS")))
        (progn
          (setq textToDisplay(strcat textToDisplay "\r\n  " (vl-registry-read(strcat hkeyBase "\\" element) "LOADER"))
                i(1+ i)
          )
        )
      ) ; if
    ) ; foreach
    (if(= i 0) (setq textToDisplay(strcat textToDisplay "\r\n  No applications are registered for loading upon AutoCAD startup.")))
   
   
    ; *** different individual files ***
    (foreach filename '("acad.lsp" "acaddoc.lsp" "acad.rx" "acad.dvb" "acad.ads")
      (setq textToDisplay(strcat textToDisplay "\r\n\r\n" filename ":"))
      (if(and(findfile filename) (setq file(open(findfile filename) "r")))
        (progn
          (while(setq lineOfText(read-line file))
            (setq textToDisplay(strcat textToDisplay "\r\n  " lineOfText))
          ) ; while
          (close file)
        )
        ; else:
        (setq textToDisplay(strcat textToDisplay "\r\n  The file has not been found."))
      ) ; if
    ) ; foreach

   
    ; *** .mnl-files ***
    (setq textToDisplay(strcat textToDisplay "\r\n\r\nTHE LAST SECTION SHOWS THE .MNL-FILES THAT WERE FOUND:"))

    (if(not(findfile(strcat(getvar "MENUNAME") ".mnl")))
      (setq textToDisplay(strcat textToDisplay "\r\nThe .mnl-file \"" (VL-FILENAME-BASE(getvar "MENUNAME")) ".mnl\" (belonging to the main .cui(x)-file \""
(VL-FILENAME-BASE(getvar "MENUNAME")) ".cui(x)\") has not been found.")
      )
      ; else:
      (progn
        (setq textToDisplay(strcat textToDisplay "\r\n" (VL-FILENAME-BASE(getvar "MENUNAME")) ".mnl (belonging to the main .cui(x)-file \""
   (VL-FILENAME-BASE(getvar "MENUNAME")) ".cui(x)\"):"))
        (if(not(setq file(open(strcat(getvar "MENUNAME") ".mnl") "r")))
          (setq textToDisplay(strcat textToDisplay "\r\n  The file \"" (VL-FILENAME-BASE(getvar "MENUNAME")) ".mnl\" could not be read."))
          ; else:
          (progn
            (while(setq lineOfText(read-line file))
              (setq textToDisplay(strcat textToDisplay "\r\n  " lineOfText))
            ) ; while
            (close file)
          )
        ) ; if
      )
    ) ; if

    (vlax-for element(vla-get-menugroups(vlax-get-acad-object))
      (if(and(/=(strcat(VL-FILENAME-directory(vla-get-menufilename element)) "\\" (VL-FILENAME-BASE(vla-get-menufilename element))) (getvar "MENUNAME"))
             (setq mnlfile(findfile(strcat(vl-filename-directory(vla-get-menufilename element)) "\\" (vl-filename-base(vla-get-menufilename element)) ".mnl")))
         ) ; and
        (progn
          (setq textToDisplay(strcat textToDisplay "\r\n\r\n" (vl-filename-base mnlfile) ".mnl:"))
          (if(not(setq file(open mnlfile "r")))
            (setq textToDisplay(strcat textToDisplay "\r\n  The file \"" (vl-filename-base mnlfile) ".mnl\" could not be opened."))
            ; else:
            (progn
              (while(setq lineOfText(read-line file))
                (setq textToDisplay(strcat textToDisplay "\r\n  " lineOfText))
              )
              (close file)
            )
          ) ; if
        )
      ) ; if
    ) ; vlax-for
   
    (dcl_Control_SetText (eval(read(strcat projectName "_mainDialog_txt1"))) textToDisplay)
  ) ; c:guiStartupAnalyzer_mainDialog_OnInitialize
 
  (defun c:guiStartupAnalyzer_mainDialog_btnClose_OnClicked (/)
    (STB_closeForm)
  )
 
  (defun c:guiStartupAnalyzer_mainDialog_btnExport_OnClicked (/ filenameToSaveTo file i)
    (if(setq filenameToSaveTo(getfiled "STB Startup Analyzer - Choose Filename for Export"
                                    (strcat "STB Startup Analyzer - " (if(="Visual LISP"(substr(ver)1 11)) "AutoCAD" "CAD") "-Profile "
                                            (vla-get-ActiveProfile(vla-get-PROFILES(vla-get-preferences(vlax-get-acad-object))))
                                            " - " (STB_DateTimeString) ".txt"
                                    )
                                    "" 5)
      ) ; setq
      (progn
        (if(setq file(open filenameToSaveTo "w"))
          (progn
            (foreach element (VL-STRING->LIST(dcl_TextBox_GetLine (eval(read(strcat projectName "_mainDialog_txt1"))) 0)) (write-char element file))
            (setq i 1)
            (repeat(1-(dcl_TextBox_GetLineCount (eval(read(strcat projectName "_mainDialog_txt1")))))
              (write-char(ascii "\n") file)
              (foreach element (VL-STRING->LIST(dcl_TextBox_GetLine (eval(read(strcat projectName "_mainDialog_txt1"))) i)) (write-char element file))
              (setq i(1+ i))
            ) ; repeat
            (close file)
            (dcl_MessageBox "Export finished." "STB Startup Analyzer - Export")
          )
          ; else:
          (dcl_MessageBox "ERROR: The file which to export to could not be opened." "STB Startup Analyzer - Export")
        ) ; if
      )
    ) ; if
  ) ; c:guiStartupAnalyzer_mainDialog_btnExport_OnClicked

 
  ; *** START ***
  (if(dcl_Project_Import '("YWt6A8oOAAB2msgEBuKTKDUxLT9qgFDoTEKqNkqQcjh63Crf0wSVvDq7+8LUPJy4+iZ0Jlf7VlbE"
"H9f3BUmEdfKxektf0Ard93UBfnXpWPwQ8k9A1pmyE0UJMC8+Va+6Ba0fwEcNIE2ZRemLp/tSDMGk"
"XzJe+2DynUqwr0b/T2I6+C5k6Q5nfcqUfgYrfyqsISjUMVz4aMZaov0o5PkW8h5hw186F8t7d+TH"
"Glo0EfYIWzbI6Zg3+hdo24NQF5ZezOC7AHKs8AAEHSRZNE3pSgdoWDXQyLbVfUodcdAgYVpirwgd"
"ymw+S2Wb9tVGpLMucLTuBTYqSzxEVzTO8zgwDGo9LqFushMPFjEtQYgdR3mt+bvSi18wVfl3GQrK"
"F9bl6APWdWgQUvNBOJkX4QT0jMILYKrSjgCvvLPbjgDqAFesjagtJD17Y6WRabURA1eCuK9/S1eM"
"BfCkgvOZ0CDj3rSO4/fkjPD44Ukq/9SonnFKLfFzqIRxewBajsq+IfvBVda2nVKFpRhrm7hgipxu"
"lLo/qmtj+wQflz9LZ8ExNtz14XE9aYF/J4L/DzLskyjWDA9LCbpvoGsG477Muqz7AkNCUo42XzCZ"
"XZlBVJoZezB2ASl7QFeO/r6pesBfjlf/mXWZmp97bfHAwQlcwMe8AwTGIJbBSYcUh56sWyR46yEs"
"xTuHyoLGAkGND3h0qZ+3nThgGAKhlhWFcXrQbIhJZgVi6rQmGyqtO/u0uwQ4CclKs6UW2kBEHYKw"
"DSLQzpXdp3KtksT2HdmP1Y9YzSG5D7KeF/Q2S3Wk+3qgX4JBbYDw5YOyZsur2DVRm7n6L8WywDEt"
"ypHT3p8IbxnJvw3iGfm/RPAwbxnp7sl1BzKaX6U+3e6FpLzTAiUmPd7kKeQbJdYyLvBnYt8iudbJ"
"DIUvSyi/OADJKWkFTiHTagNb+TdFJ6LokB8bE5SIVMlXpxiACmUn3BO6O0d50xXQFs7RBtszH8cz"
"vjmMU8430JOGNoOkzzdDdeXq7YZHpyBESKfkHu0zma9XtqtbmpM8cJnpt+j68RIVB9v2ErTd/JGh"
"S+UUn6wus6aBMcqrWCTOvwHDAX+zxLUS5BvOtsmRYd1nQaF/fDqNpA=="))
    (dcl_Form_Show(eval(read(strcat projectName "_mainDialog"))))
  )
  (princ)

) ; c:StartupAnalyzer

(princ "\n\nSTB Startup Analyzer\ncopyright June 2010 by Stephan Bartl (www.stbartl.at)\nStart with: \"STARTUPANALYZER\"")


------------------
Gruß, Stephan
www.stbartl.at

"Every thing should be made as simple as possible but not simpler." - Albert Einstein

[Diese Nachricht wurde von autocart am 07. Jun. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz