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

Beiträge von Greenhorn

  • 64-Bit dll aus vorhandenem C-Code erstellen

    • Greenhorn
    • 31. Oktober 2012 um 21:03

    Hi CyberCommander,

    ist hier schon jemand bei oder hat sich noch niemand gefunden, der die DLL erstellt ?!


    Gruß
    Greenhorn

  • Dll lesen

    • Greenhorn
    • 12. Oktober 2012 um 22:08

    Hi,

    zu 1.
    Sieh dir den Rückgabewert von DllOpen an, und den von LoadLibrary, dann weißt du warum. ;)

    zu 2.
    Ich weiß es nicht. AutoIt-Strings können eine max. Länge von 'was weiß ich' haben. Diese Zahl könntest Du genausogut nehmen.


    Gruß
    Greenhorn

  • Alles Gute! progandy wird 22!

    • Greenhorn
    • 11. Oktober 2012 um 20:00

    Herzlichen Glückwunsch zum Geburtstag, ProgAndy !

    [Blockierte Grafik: http://www10.pic-upload.de/17.02.12/2xeusp3i6po.gif]

    LG
    Greenhorn

  • Dll lesen

    • Greenhorn
    • 10. Oktober 2012 um 21:29

    Hi,

    MyDll.rc

    Spoiler anzeigen
    Code
    #include "resource.h"
    
    
    //
    // String Table resources
    //
    STRINGTABLE
    BEGIN
    	IDS_STRING1               	"Sample text"
    	IDS_STRING2               	"Sample text 2"
    END
    Alles anzeigen

    resource.h

    Spoiler anzeigen
    Code
    #ifndef IDC_STATIC
    #define IDC_STATIC (-1)
    #endif
    
    
    #define IDS_STRING1                         	40000
    #define IDS_STRING2                         	40001


    Dll kompilieren ...

    LoadStringDemo.au3

    Spoiler anzeigen
    [autoit]

    ; Aus resource.h
    Global Const $IDS_STRING1 = 40000
    Global Const $IDS_STRING2 = 40001

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

    Global $hDll
    Global $sString

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

    $hDll = LoadLibrary ("MyDll.dll")

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

    ;...
    ;...
    LoadString ($hDll, $IDS_STRING1, $sString, 260)
    MsgBox ($MB_OK, "LoadString Demo", $sString)
    ;...
    ;...

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

    FreeLibrary ($hDll)

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

    Func LoadString ($hInstance, $uID, ByRef $lpBuffer, $nBufferMax)

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

    Local $aRes = DllCall ($user32dll, "INT", "LoadStringW", _
    "HANDLE", $hInstance, _
    "UINT", $uID, _
    "WSTR", $lpBuffer, _
    "INT", $nBufferMax)
    $lpBuffer = $aRes[3]
    Return $aRes[0]

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

    EndFunc

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

    Func LoadLibrary ($lpFileName)

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

    Local $aRes = DllCall ("kernel32.dll", "HANDLE", "LoadLibraryW", _
    "WSTR", $lpFileName)
    Return $aRes[0]

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

    EndFunc

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

    Func FreeLibrary ($hModule)

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

    Local $aRes = DllCall ("kernel32.dll", "BOOL", "FreeLibrary", _
    "HANDLE", $hModule)
    Return $aRes[0]

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

    EndFunc

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


    LoadString function
    LoadLibrary function
    FreeLibrary function


    Gruß
    Greenhorn

  • name22 Wird 18!

    • Greenhorn
    • 5. Oktober 2012 um 20:42

    Herzlichen Glückwunsch zu Deinem 18. Geburtstag, name22. :)

    LG
    Greenhorn

  • FreeBASIC DLL Rückgabe String

    • Greenhorn
    • 4. Oktober 2012 um 18:54

    Hi,

    so etwa ? (ungetestet)

    Code
    extern "Windows-MS"
    
    
    function Text(byref sText as string) as long export
    	sText = "Text" 
    	return len(sText)
    end function
    
    
    end extern
    [autoit]

    $sText = ""
    $dll = DllOpen("Test.dll")
    $result = DllCall($dll,"long","Text", "str*", $sText)
    MsgBox(0,"",StringFormat ("Text: %s\nTextlänge: %d", $sText, $result[0]))

    [/autoit]


    Gruß
    Greenhorn

  • Probleme mit Dll-Datei

    • Greenhorn
    • 3. Oktober 2012 um 21:55

    Hier ein Beispiel mit VC 2010 für x86 und x64 ...

    Dateien

    DllSample.rar 14,82 kB – 471 Downloads
  • Probleme mit Dll-Datei

    • Greenhorn
    • 3. Oktober 2012 um 14:56

    Hi,

    Ich sehe keine Funktion "DllMain " in Deinem Quelltext ...


    Gruß
    Greenhorn

  • Update der Excel UDF die mit AutoIt ausgeliefert wird - 2014-03-22 - Fünfte Beta verfügbar

    • Greenhorn
    • 2. Oktober 2012 um 22:44

    Hi,

    Zitat von water

    Kann es echt sein, dass kein Mensch Wünsche, Anregungen, Beschwerden zum Excel UDF hat?

    Tja, da kann ich eigentlich nicht viel zu beitragen. Ich beschäftige mich erst seit ca. drei Monaten mit Excel und seit ca. sechs Wochen mit VBA.
    Ich versuche immer noch mich an diese hässliche VB-Syntax zu gewöhnen ... :S
    Das ist aber nicht das Problem, sondern der Methoden-Dschungel. :D

    Trotzdem hätte ich eine kleine Anregung.
    Ohne jetzt nach einer bereits vorhandenen zu schauen: eine Suchfunktion wäre was tolles.
    Also Dateien durchsuchen und in diesen nach Werten in bestimmten Zellen/Bereichen zu suchen.
    Wobei auch nach Teilwerten/-strings, Formaten etc. gesucht werden kann.


    Gruß
    Greenhorn

  • Maus mit Webcam steuern

    • Greenhorn
    • 2. Oktober 2012 um 22:31

    Hi,

    Zitat von TheShadowAE

    Ich hätte gerne Visual C++ benutzt um ASm einzubauen, da hab ich aber nicht geschafft das Projekt richtig zu konfigurieren, deswegen nun wieder GNU GCC für C++ mit Coed::Blocks ohne ASM.


    Für 32bit:
    Eigentlich musst Du da nichts in der Konfiguration einstellen.
    Inline Assembler

    Für 64bit:
    MASM for x64 (ml64.exe)

    • Projekt -> Buildanpassungen
    • "masm(targets, props)" auswählen

    Soweit ich weiß, wird der Konfigurationsdialog für MASM in den Projektoptionen aber nicht angezeigt (Bug).
    Da der x64-Compiler kein Inline Assembly mehr verarbeitet, musst Du eben den ASM-Code in separate Module packen.
    Hierfür empfehle ich aber eher JWasm, damit ist es wesentlich komfortabler 64bit-Assembler zu schreiben.
    Die erforderlichen Dateien um JWasm mit VC zu nutzen sind dabei (Readme lesen!)


    Gruß
    Greenhorn

    ps, im Anhang ein VC Projekt, bei dem der Konfigurationsdialog für den Assembler in den Projektoptionen angezeigt wird (64bit mit WinInc ).

    Dateien

    Project.rar 13,21 kB – 507 Downloads
  • Frage zur Registry

    • Greenhorn
    • 21. August 2012 um 22:17

    Oder kurz auf den Punkt gebracht: Die Windows Registrierung erfüllt seit Windows NT das was zuvor die INI-Dateien taten. ;)
    Windows selbst und fast jedes Programm speicherte seine Einstellungen bis Windows NT in INI-Dateien, was mit der Zeit und jedem Versionssprung zu immer mehr Unübersichtlichkeit führte und immer immer langsamer wurde, da jedesmal die INI ausgelesen werden musste.
    Mit Windows NT führte Ms dann eine zentrale, binäre Datei, bzw. mehrere Dateien ein, in der Das OS und Programme ihre Einstellungen speichern konnten.

    (Nun ist es doch etwas länger geworden :P, deshalb: Windows-Registrierungsdatenbank)

    "Reinigungstools" lohnen sich nicht für die paar kB die man damit spart und haben auf die Performance absolut Null Einfluss.
    Ganz im Gegenteil verursachen sie meist mehr Probleme als sie Nutzen bringen.


    Grüße
    Greenhorn

  • Mutex frage

    • Greenhorn
    • 18. August 2012 um 21:27
    Zitat von Andy

    Um festzustellen, ob ein Programm mehrfach gestartet wurde, benutzt man sicherlich kein Mutex :D


    Das geht schon. Muss allerdings vom Programm selbst geprüft werden...

    doppeltes öffnen eines programmes vermeiden


    Grüße
    Greenhorn

  • _WinAPI_Beep Bemerkung falsch ^^

    • Greenhorn
    • 15. August 2012 um 20:09

    Wie beschrieben, ist es Hardwareabhängig, bzw. für Vista und XP x64 stand die Funktion gar nicht (mehr) zur Verfügung.

    Habe es mal grob übersetzt...

    Zitat

    Vor langer Zeit nutzten alle PCs einen allgemein verbreiteten programmierbaren 8254 Interval-Timer-Chip, um primitive Klänge zu erzeugen. Die Beep-Funktion wurde eigens dazu geschrieben, um einen „Beep“ auf dieser Hardware auszugeben.

    Auf diesen älteren Systemen hatten Stummschalt- und Lautstärkesteuerungen keinen Einfluss auf Beep; der Ton war trotzdem zu hören. Um den Ton stumm zu schalten, wurden folgende Kommandos benutzt:

    net stop beep

    sc config beep start= disabled

    Seit dem wurden Soundkarten zum Standardequipment in den meisten PCs. Als Soundkarten allgemein üblich wurden, begannen die Hersteller den alten Timer-Chip von den PCs zu entfernen. Die Chips wurden ebenso von dem Design der Servercomputer ausgeschlossen. Das Resultat war, dass Beep ohne diesen Chip nicht auf allen Computern funktionierte. Dies war Okay, denn die meisten Entwickler gingen dazu über die Funktion MessageBeep aufzurufen, die das Standard-Sound-Gerät benutzt, welches auch immer das ist, anstatt des 8254-Chips.

    Schließlich wurde, wegen des Fehlens der Hardware zur Kommunikation, die Unterstützung der Funktion Beep in Windows Vista und Windows XP 64-Bit Edition fallengelassen.

    In Windows 7 wurde Beep neu geschrieben, um Beep an das Standard-Sound-Gerät für die Sitzung zu reichen. Dies ist normalerweise die Soundkarte, außer wenn die Sitzung unter Terminal-Services läuft, in diesem Fall wird Beep auf dem Client wiedergegeben.

    Alles anzeigen

    Greenhorn

  • _WinAPI_Beep Bemerkung falsch ^^

    • Greenhorn
    • 14. August 2012 um 19:07

    Hier mal der Originaltext zur Funktion:

    Zitat

    A long time ago, all PC computers shared a common 8254 programable interval timer chip for the generation of primitive sounds. The Beep function was written specifically to emit a beep on that piece of hardware.

    On these older systems, muting and volume controls have no effect on Beep; you would still hear the tone. To silence the tone, you used the following commands:

    net stop beep

    sc config beep start= disabled

    Since then, sound cards have become standard equipment on almost all PC computers. As sound cards became more common, manufacturers began to remove the old timer chip from computers. The chips were also excluded from the design of server computers. The result is that Beep did not work on all computers without the chip. This was okay because most developers had moved on to calling the MessageBeep function that uses whatever is the default sound device instead of the 8254 chip.

    Eventually because of the lack of hardware to communicate with, support for Beep was dropped in Windows Vista and Windows XP 64-Bit Edition.

    In Windows 7, Beep was rewritten to pass the beep to the default sound device for the session. This is normally the sound card, except when run under Terminal Services, in which case the beep is rendered on the client.

    Alles anzeigen

    Beep function

  • Xorianator...

    • Greenhorn
    • 31. Juli 2012 um 17:48

    Auch von mir die besten Glückwünsche ! :)
    Genieße den Tag und lass Dich feiern.


    Grüße
    Greenhorn

  • DANKE an Alle

    • Greenhorn
    • 31. Juli 2012 um 17:45

    Freue mich auch hier dabei zu sein. :)
    Ich hoffe das Forum und seine Gemeinde bleiben uns in dieser Form lange erhalten.


    Grüße
    Greenhorn

  • Problem bei Auslesen von _GUICtrlComboBox_GetEditText

    • Greenhorn
    • 30. Juli 2012 um 23:53

    Also, ich habe mir den Code von _GUICtrlComboBox_GetEditText mal angesehen...
    Gary hat es ein wenig merkwürdig umgesetzt (mit SendMessage), obwohl es trotz alledem funktionieren müsste. Und das tut es ja bei mir auch.
    Der Puffer, den er erzeugt, ist größer als nötig. Da AutoIt bei DllStructCreate den Speicher aber mit Nullzeichen füllt, muss es eigentlich funktionieren.
    Aber wie man sieht tut es das bei Dir nicht und bei einigen Anderen anscheinend auch nicht.
    Eigentlich hatte ich dieses Problem z.B. nur, wenn ich ANSI- und Unicode-Funktionen gemischt hatte.

    Vielleicht ist bei Deinem Update auch irgendetwas schief gelaufen. Evtl hilft es alles sauber zu deinstallieren und AutoIt noch einmal neu zu installieren.
    Wie sieht bei Dir denn die Funktion _GUICtrlComboBox_GetEditText aus ?

    Wie auch immer, probiere es doch bitte einmal mit GetWindowText, so macht es das originale Makro ComboBox_GetText aus den Windows-Headern auch.

    Spoiler anzeigen
    [autoit]


    ; Puffer für den Text
    Global $sTextA4

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

    ; In die Schleife packen und _GUICtrlComboBox_GetEditText auskommentieren
    GetWindowText ($A4, $sTextA4, 260)
    MsgBox(...)
    ;...

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

    Func GetWindowText ($hWnd, ByRef $sString, $nMaxCount)

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

    Local $type = 'wstr'
    If (IsPtr ($sString)) Then _
    $type = 'ptr'

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

    Local $aRes = DllCall ("user32.dll", 'int', 'GetWindowTextW', _
    'HWND', $hWnd, _
    $type , $sString, _
    'int' , $nMaxCount)

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

    If @error Then _
    Return @error

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

    If (not IsPtr ($sString)) Then _
    $sString = $aRes[2]
    Return $aRes[0]

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

    EndFunc

    [/autoit]

    Greenhorn

  • GUICtrlCreateEdit() soll automatisch nach unten scrollen, sodass immer die letzten einträge zu sehen sind

    • Greenhorn
    • 28. Juli 2012 um 16:35

    Hi,

    Spoiler anzeigen
    [autoit]

    $iTextLen = GetWindowTextLength (GUICtrlGetHandle ($h_Edit))

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

    SendMessage ($hwndEdit, $EM_SETSEL, $iTextLen, $iTextLen)

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

    Func GetWindowTextLength ($hWnd)

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

    Local $aRes = DllCall ($user32dll, "int", "GetWindowTextLength", _
    "HWND", $hWnd)
    Return $aRes[0]

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

    EndFunc

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

    Func SendMessage ($hWnd, $Msg, $wParam, $lParam)

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

    Local $aRes = DllCall ($user32dll, 'ULONG', 'SendMessageW', _
    'HWND' , $hWnd, _
    'UINT' , $Msg, _
    'WPARAM', $wParam, _
    'LPARAM', $lParam)
    Return $aRes[0]

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

    EndFunc

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

    Grüße
    Greenhorn

  • Deutsche Hilfe - Neue Dateien 3.3.8.1 - mitmachen

    • Greenhorn
    • 28. Juli 2012 um 14:44

    Hi,

    besser bekomme ich es nicht hin...
    Mann, ist das ein besch...er Text. :cursing:
    Gute fünf Stunden dafür gebraucht...
    Bitte Satzzeichen kontrollieren!

    EDIT:
    Noch etwas: Der Satz "Application defined value associated with the button" im Originaltext unter tmWeight gehört dort nicht rein !!!

    Grüße
    Greenhorn

    Dateien

    $tagTEXTMETRIC.txt 5,35 kB – 779 Downloads
  • Deutsche Hilfe - Neue Dateien 3.3.8.1 - mitmachen

    • Greenhorn
    • 27. Juli 2012 um 20:27
    Zitat von name22

    Edit: Zu $tagTEXTMETRIC.txt: Hat jemand eine Ahnung wie ich "specifies the height (ascent + descent) of characters." übersetzen soll? Eigentlich sollte der deutsche Begriff für "ascent" ja Oberlänge sein, aber scheinbar ist im englischen damit die Mittellänge + die Oberlänge gemeint (sonst würde man nicht auf die volle Höhe der Buchstaben kommen) :S.

    Hi name22,

    • tmAscent, bzw. ascent ist die Oberlänge der Schrift von der Grundlinie ausgehend.
    • tmDescent, bzw. descent ist die Unterlänge der Schrift von der Grundlinie ausgehend.
    • tmInternalLeading ist der Bereich für Diakritika, das sind die Punkte bei einem Ä, etc..
    • tmExternalLeading wird im Deutschen als Durchschuß bezeichnet und hat seinen Ursprung aus der manuellen Setzerei. Damit ist der Abstand zwischen dem unteren Rand der einen und dem oberen Rand der folgenden Zeile gemeint.


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

    Grüße
    Greenhorn

    Dateien

    Zeichenh 50,07 kB – 0 Downloads

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™