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

Beiträge von Romboman

  • DllCall dhcpsapi.dll

    • Romboman
    • 5. Mai 2015 um 14:52

    Hallo Leute,
    bitte um Hilfe bei Aufrufen von Funktionen aus der dhcpsapi.dll (DHCP Server Management API)
    Es geht dabei um die Funktionen DhcpEnumServers und DhcpEnumSubnetClients.
    Das Problem liegt beim Definieren der Funktionsübergabeparameter mittels DllStructCreate.


    Erster rudimentärer Versuch...

    [autoit]


    $dwRet = DllCall("dhcpsapi.dll", "DWORD","DhcpEnumServers", _
    "dword",0, _
    "int", 0, _

    "int", 0, _
    "int", 0
    )

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


    vielen Dank!

  • DLLCall in/aus undokumentierter DLL

    • Romboman
    • 14. April 2013 um 17:18

    Vielen Dank für eine Hilfe alleine es gibt da ein paar Dinge die leider alles andere als optimal sind.
    Die _WinAPI_GetFontResourceInfo() ist mir bekannt, sie hat allerdings einen ganz großen Nachteil...
    sie liefert den Schriftgrad des Fonts in Anhängigkeit der Regionaleinstellung zurück, genau so wie er der Schriftartenvorschau angezeigt wird.
    In der Registry steht aber leider immer (fast) genau der Name, der auch im File steht. (die Erläuterung von (fast) würde hier zu weit gehen)
    Beispiel:
    %windir%\Fonts\arialbi.ttf --> heißt in der Registry "Arial Bold Italic (TrueType)"
    wenn ich die Datei mit _WinAPI_GetFontResourceInfo() ermittle --> "Arial Fett Kursiv (TrueType)"

    Momentan installiere ich Fonts mit der Shell.Application.CopyHere Funktion.
    Nachteile: dauert ewig, Statusfenster beim kopieren/installieren, geniales Verhalten bei Fontdateinamen mit Underscore(s) am Ende.
    Deswegen wollte ich das mit der InstallFontFile mal testen, ich werd mir mal die Express Edition von C# installieren und schauen ob der Code überhaut geht.
    So wie es aussieht gibt es als einzige effektive Installations-Methode wirklich nur einen Registry/File Snapshot.


    Danke trotzdem nochmal!

  • DLLCall in/aus undokumentierter DLL

    • Romboman
    • 14. April 2013 um 13:34

    Hallo Leute,
    ich möchte gerne die (undokumentierte) Funktion "InstallFontFile" aus der "%windir%\system32\fontext.dll" bzw. "%windir%\SysWOW64\fontext.dll" benutzen um einen
    Font (ttf, otf, pfm) "elegant" in Win7x32x64 zu installieren. Dazu gibt es einen Artikel unter: http://stackoverflow.com/questions/7563…0-setup-project
    In diesem ist auch ein Stück C# Code welcher das anscheinend ermöglicht. Im folgenden der relevante Auszug daraus:

    Code
    [DllImport("fontext.dll", CharSet = CharSet.Auto)]private static extern void InstallFontFile(IntPtr hwnd, string filePath, int flags);string path = @"c:\Windows\Fonts\MyFont.pfm";InstallFontFile(IntPtr.Zero, path, 0);

    Ich habe nun versucht das Ganze mal nach AutoIt zu konvertieren, bis dato aber ohne Erfolg:

    [autoit]

    #RequireAdmin
    InstallFontFile("c:\windows\fonts\synthetique_tt.ttf")
    Func InstallFontFile($ff)
    local $fedll = DllOpen("fontext.dll")
    DllCall($fedll,"none","InstallFontFile","hwnd",0,"str",$ff,"int",0) ; @error gibt 0 zurück!!!!
    DllClose($fedll)
    EndFunc

    [/autoit]


    PS: Im obigen Beispiel ist der Font vorher bereits in Fonts-Verzeichnis kopiert worden. "InstallFontFile" sollte eigentlich nur dem System dauerhaft den Font bekannt machen (Registry bzw. Sendmessage).
    Meine Annahme ist nun, dass ich eventuell ein Problem mit den DLLCall-Parametern habe(obwohl @error == 0), hat jemand eine Idee?


    Vielen DANK!

  • Dialogbox im Hintergrund bestätigen

    • Romboman
    • 18. August 2010 um 16:17

    hallo Fireman-HH,
    was kat Knoppix mit einer Programmdeinstallation unter XP zu tun?
    lg

  • Dialogbox im Hintergrund bestätigen

    • Romboman
    • 18. August 2010 um 15:06

    Hi Boardies,
    ich bräuchte mal grundsätzlich eine Hilfestellung.
    Folgende Ausgangssituation: Ich möchte im unangemeldeten Zustand (XP) eine Software deinstallieren. Dazu verbinde ich mich mit psexec auf den PC und führe die Deinstallationsroutine aus.
    Leider ist es nicht möglich die Deinstallation silent (ohne Benutzereingabe) durchzuführen. Das Programm öffnet immer eine MessageBox (Hintergrung) die man mit OK bestätigen müsste, dann würde die Deinstallation ohne weitere Interaktion durchlaufen.
    Fragen:
    1. Ist es vielleicht mit Autoit Mitteln möglich auf diese im Hintergrund offenene MessageBox zu reagieren (OK Butten drücken)?
    2. kann man überhaubt ein Fenster (Handle) einer Appikation die im Hintergrund bzw. durch einen anderen Anwender gestartet wurde programmtechnisch steuern?

    bitte um Euren Input! ?(

  • send() funktioniert nicht mit "{ASC xxxx}"

    • Romboman
    • 29. Juli 2010 um 23:22

    vielen Dank --> hat sich somit erledigt!

  • send() funktioniert nicht mit "{ASC xxxx}"

    • Romboman
    • 29. Juli 2010 um 01:35

    Hallo Leute,
    ich behaupte mal, dass die Funktion send() (AutoIt v3.3.6.1) nicht richtig funktioniert.
    Folgendes kleines Progrämmchen soll einen längeren Gedankenstrich (Halbgeviertstrich) beim Drücken der Tasten "Strg Alt -" ausgeben.
    Leider funktioniert Send("{ASC 0150}") nicht, sondern man muss immer vorher noch etwas zusätzlich ausgeben. Mein Workaround ist die Ausgabe eines Leerzeichens gefolgt von einem Backspace und dann erst den eigentlichen Gedankenstrich. Mach ich da was falsch oder hat send() da wirklich Probleme?


    [autoit]

    AutoItSetOption("MustDeclareVars", 1)
    ; #NoTrayIcon
    _ExitIfThisProgIsAlreadyRunning()

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

    Const $HOTKEY = "^!-" ; Strg Alt -
    HotKeySet($HOTKEY, "Print_Halbgeviertstrich")

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

    ;-------------- MAIN
    Do
    sleep(100)
    Until False
    ;-------------- MAIN never ends

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

    Func Print_Halbgeviertstrich()
    ; Send("{ASC 0150}") ; --> funktioniert nicht!
    Send("{SPACE}{BS}{ASC 0150}")
    EndFunc

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

    Func _ExitIfThisProgIsAlreadyRunning()
    Local $procarray
    $procarray = ProcessList(@ScriptName)
    If $procarray[0][0] > 1 Then
    Exit
    EndIf
    EndFunc

    [/autoit]
  • Ausfüllen einer "speziellen" Web-Site...

    • Romboman
    • 8. Juni 2009 um 08:20

    sorry hatte ich vergessen zu erwähnen...

    only ie6,7,8!

  • Ausfüllen einer "speziellen" Web-Site...

    • Romboman
    • 7. Juni 2009 um 08:26

    Hallo Boardies,
    ich bin abs. neu hier und möchte gerne eure Hilfe beanspruchen. Für eine automatische Software Installation muss ich auf der Site:
    http://certificates.amadeusvista.com/sgwadmin/ die 4 im angezeigen Frame befindlichen Formularfelder ausfüllen bzw. abschicken. Mit SEND({TAB}) .... etc.
    geht das ja eigentlich, aber wie kann ich diese Felder direkt z.B. mit _IEFormElementSetValue befüllen bzw. dann absenden (_IEFormSubmit ). Der HTML-Sourcecode zeigt zwar einen
    Form-Namen, aber zugreifen kann ich da irgendwie nicht.

    bitte um eure Hilfe....

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™