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

Beiträge von Darter

  • "_requireAdmin()"

    • Darter
    • 6. Juni 2010 um 08:04

    funktioniert unter win 7 genaus wie unter win viste nur bringt das agnze bei ner exe nix

  • Coordinate errechnen

    • Darter
    • 6. Juni 2010 um 07:25

    Moin

    Also im Prinzip ganz einfach(oder auch nicht^^). Ich hab einen in einem Coordinatensystem eine Linie und davon den anfangs x und y wert und den end x und y wert. und möchte einen auf dieser Geraden liegenden Punkt herrausfinden.

    EDIT. Was hier noch bekannt ist ist die stecke von punkt 1(anfangspunkt) zu dem zu findenden punkt

    Hier noch ein Bild zur veranschaulichung

    [Blockierte Grafik: http://s3.directupload.net/images/100606/b2a2uoif.jpg]

  • dlls für berechnungen

    • Darter
    • 6. Juni 2010 um 01:47

    ich habs mal so probiert:

    die dll:

    Code
    extern "C" int* __declspec(dllexport) myfunc2 (int x)
    {
    int array[3];
    int* zeiger;
    int i;
    array[0] = 111;
    array[1] = 222;
    array[2] = 333;
    zeiger=array[0];
    
    
    return zeiger;
    }
    Alles anzeigen

    und ein script dazu:

    [autoit]

    $Dll = DllOpen("Dll_Test.dll")
    Myerrorcheck()
    $aRet = DllCall($Dll, "ptr", "myfunc2")
    Myerrorcheck()
    $tStruct = DllStructCreate("int", $aRet[0])
    Myerrorcheck()
    $Structdata = DllStructGetData($tStruct, 1, 1)
    Myerrorcheck()
    MsgBox(0,"",$Structdata)

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

    Func Myerrorcheck()
    If @error Then
    MsgBox(0,"Fehler",@error)
    Exit
    EndIf
    EndFunc

    [/autoit]

    ich hab kp ob das auch nur ansatzweise richig ist aber im prinzip zeigt mein pointer auf das erste element meines Arrays so müsste das doch richitg sein oder?

  • dlls für berechnungen

    • Darter
    • 6. Juni 2010 um 00:36

    wow tut mir leid aber ich verste da nur bahnhof ich war froh, dass ich ne einfache dll erstellen konnte und diese callen aber vllt kannst du mir ja deinen code etwas erläutern. :rolleyes:

  • dlls für berechnungen

    • Darter
    • 6. Juni 2010 um 00:18

    sowas geht aber nicht :( Kann man denn keine array returnen?

    Code
    extern "C" int __declspec(dllexport) myfunc1 (int x)
    {
    return (x*2);
    }
    extern "C" int __declspec(dllexport) myfunc2 (int x)
    {
    int array[3];
    array[0] = x*1;
    array[1] = x*2;
    array[2] = x*3;
    return array;
    }
    Alles anzeigen
  • dlls für berechnungen

    • Darter
    • 5. Juni 2010 um 23:53
    Zitat von clezZ

    extern "C" bedeutet, dass die dll Funktion im C Stil erstellt wird (zumindest glaub ich das)

    Und den Quellcode zum Tic Tac Toe gibts NOCH nicht, damit yxyx ein bissl nachdenken muss :D


    Aber mein bsp mit mehr funktionen in einer dll ist schon richtig so oder und du könntest mir wenn du willst du source ja als pm schicken ;)

  • dlls für berechnungen

    • Darter
    • 5. Juni 2010 um 23:46
    Zitat von clezZ

    Hab auch mal eins gemacht. Du kannst den Stil ja kopieren.


    nicht schlecht aber hast du da auch mal die Source daz?

  • dlls für berechnungen

    • Darter
    • 5. Juni 2010 um 23:44

    hoi ich habs auch direkt mal ausprobiert, weil es mich schon ne ganze zeit interessiert wie die dlls so aufgebaut sind aber ein paar fragen hätte ich noch.
    das ist ja der code:

    Code
    extern "C" int __declspec(dllexport) myfunc (int x)
    {
    return (x*2);
    }

    so, was bedeutet denn jetzt genau das:

    Code
    extern "C" int __declspec(dllexport) myfunc (int x)


    wieso extern"C"?? wieso int__declspec(dllexport)?? das letzte ist klar.

    Und was ist wenn ich in eine Dll mehr Fubktionen packen will sieht das dann so aus?

    Spoiler anzeigen
    Code
    extern "C" int __declspec(dllexport) myfunc1 (int x)
    {
    return (x*2);
    }
    
    
    extern "C" int __declspec(dllexport) myfunc2 (int x)
    {
    return (x*3);
    }
    
    
    extern "C" int __declspec(dllexport) myfunc3 (int x)
    {
    return (x*4);
    }
    Alles anzeigen

    und zum teil werden ja auch Icons in eine dll gepackt wie funktioniert das?

    mfg Darter

  • [News] Tropensturm bohrt gigantisches Loch in die Erde...

    • Darter
    • 5. Juni 2010 um 18:15

    Dann waren es wohl doch Außerirdische und sie wollten das ganze erst geheimhalten und jetzt mussten sie ich was ausdenken warum da so ein Mega nund vorallem Kreisrundes Loch in der Erde ist. Also duch einen Sturm, wenn ein gebäude einstürtzt ensteht mit sicherheit nicht so ein Loch.

    Nicht in Hunderttasend Jahren ensteht so ein 300 Meter tiefes Kreisrundes Loch ich bin der meinnung da haben Außerirdische mit ner Laserwaffe auf und geschossen ^^

  • ICQ Anti Spam

    • Darter
    • 5. Juni 2010 um 18:09

    ich hab kein dunzt was du von damit meinst aber wird wohl ein bot sein wie du schon selber sagtst und es reicht leider nicht Anti davor zu schreiben, denn das was du beschreibst ist kein ANti bot sondern ein bot

  • Resize Mindestgröße

    • Darter
    • 5. Juni 2010 um 16:07

    Sehr geil danke genau sowas thx ;)

  • Resize Mindestgröße

    • Darter
    • 5. Juni 2010 um 15:43

    na klar. Das hab ich drinn, weil sich die ctrls immer weiter zusammenschieben, obwohl das fenster dann nicht kleiner wird. Sonst keiner ne idee?

  • Resize Mindestgröße

    • Darter
    • 5. Juni 2010 um 05:57

    Moin ich versuch schon seit knapp ner dreiviertel stunde was zu basteln, dass mein Fenster nicht kleiner gemacht werden kann als ich das will leider ohne erfolg.

    ich habs so probiert :

    Spoiler anzeigen
    [autoit]

    Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam)
    $teeeeest = WinGetPos($hauptgui)
    If $teeeeest[2] <= 255 Or $teeeeest[3] <= 385 Then
    GUICtrlSetResizing($label,$GUI_DOCKALL)
    GUICtrlSetResizing($listview,$GUI_DOCKALL)
    GUICtrlSetResizing($label2,$GUI_DOCKALL)
    GUICtrlSetResizing($Button9,$GUI_DOCKALL)
    WinMove ( $hauptgui, "", $teeeeest[0], $teeeeest[1] , 255 , 385)
    Else
    _GUICtrlStatusBar_Resize($hstatusbar)
    Return $GUI_RUNDEFMSG
    EndIf
    EndFunc ;==>WM_SIZE

    [/autoit]

    so kann ich mein fentser daran hindern kleiner zu werden als ich das will nur leider resizen die ctrls natürlich nicht mit wenn ich das Fenter wieder größer zieh. Gibt es da schon irgend ne funk, mit der ich die Minimalgröße eines Fensterns festlegen kann?

  • TabItem mit Hintergrundbild

    • Darter
    • 1. Juni 2010 um 21:01

    jop das klapp allerdings können dan die ctlrs die noch erstellt werden nicht benutzt werden. Da es mich auch interessiert ware es schön zu wissen, ob es eine func gibt die bilder in hintergrund so zu zeichnen, dass die ctrls noch benutzt werden können?

  • Chemie HA hilfe gesucht!!!!!!!!

    • Darter
    • 1. Juni 2010 um 19:34

    ich würd mal sagen das dehnt sich bei wärem aus

  • Tab menü 2 spaltig?

    • Darter
    • 31. Mai 2010 um 23:00

    klasse thx habs auch gerade bei der hilfe von den udfs unter GUITab gefunden

  • Tab menü 2 spaltig?

    • Darter
    • 31. Mai 2010 um 22:51

    moin.

    Ich hab ein ganz normales Tabmenü mit mehreren Items nur leider sind das sehr viele, sodass es sehr breit wird, was ich verhindern will, indem ich das ganze 2 Spaltig mache.
    Ich habe bei mehreren Windows Fenstern schon gesehen, dass es machbar ist aber wie?

  • Picture 2 wird nicht angezeigt..

    • Darter
    • 31. Mai 2010 um 15:34
    Zitat von BurakSZ

    .gif werden glaube ich mit GUICtrlCreateAvi() gemacht. Deswegen mach es mit .jpg's. Funktioniert:


    nope. Nicht animierte gif Dateien können genauso mit GUICtrlCreatePic() dargestellt werden wie im JPG Format.

  • Free AutoIt Object

    • Darter
    • 31. Mai 2010 um 01:36
    Zitat von EliteMattthias

    Bewertungen, Kritik, Anregungen und dergleichen sind gern gesehen !


    ?(?(?(?(?(?(

    EDIT: das forum gehört nicht dir ich darf hier also einen post einsetzten und ihr wolltet doch Bewertungen, Kritik, Anregungen und dergleichen sehen und meins war ebenen eine kritik. Kannst du damit nicht umgehen??

    Außerdem ist in der Funktion _Startup das : GUISetOnEvent(-3, "_ShutDown") nicht unbedingt angebracht, wenn der oneventmodusnicht benutzt weredn will ,da das guigetmsg nicht mehr funzt.

  • Free AutoIt Object

    • Darter
    • 31. Mai 2010 um 01:27

    Naja ich weiß nicht genau, was das sein soll und das als free autoit Objekt zu bezeichnen ist denke ich mal nicht richtig. das es keine Objekte sind, sondern nur etwas auf eine gui gezeichnet wird.
    Das ist die einige Funktion aus eurer UDF die wirklich wichtig ist und die es im Web so, oder so ähnlich schon 1000 mal gibt.

    Spoiler anzeigen
    [autoit]

    Func _StartUp($title, $width, $height, $X, $Y)
    $hWnd = GUICreate($title, $width, $height, $X, $Y, 0x80000000, BitOR(0x00000080, 0x00080000, 0x00000008))
    GUISetOnEvent(-3, "_ShutDown")
    GUISetState()

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

    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphic)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($backbuffer, 4)

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

    $ScreenDc = _WinAPI_GetDC($hWnd)
    $dc = _WinAPI_CreateCompatibleDC($ScreenDc)

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

    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", $width)
    DllStructSetData($tSize, "Y", $height)
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", 255)
    DllStructSetData($tBlend, "Format", 1)
    $tPoint = DllStructCreate($tagPOINT)
    $pPoint = DllStructGetPtr($tPoint)
    DllStructSetData($tPoint, "X", 0)
    DllStructSetData($tPoint, "Y", 0)
    EndFunc ;==>_StartUp

    [/autoit]


    diese funktion:

    Spoiler anzeigen
    [autoit]

    Func _AutoIt_FreeObject_StringDraw($String, $WindowTitle, $WindowX, $WindowY, $iSize = 15, $brush = 0xA50029)
    Local $WinPosition = WinGetPos($WindowTitle)
    $State = WinGetState($WindowTitle)
    If BitAND($State, 8) Then
    $Family = _GDIPlus_FontFamilyCreate("Arial")
    $Font = _GDIPlus_FontCreate($Family, $iSize, 1)
    $Layout = _GDIPlus_RectFCreate($WinPosition[0] + $WindowX + 1, $WinPosition[1] + $WindowY + 27, @DesktopWidth, @DesktopHeight)
    $Format = _GDIPlus_StringFormatCreate()
    $brush = _GDIPlus_BrushCreateSolid($brush + 0xFF000000)
    $Info = _GDIPlus_GraphicsMeasureString($backbuffer, $String, $Font, $Layout, $Format)
    _GDIPlus_GraphicsDrawStringEx($backbuffer, $String, $Font, $Info[0], $Format, $brush)
    EndIf
    EndFunc ;==>_AutoIt_FreeObject_StringDraw

    [/autoit]


    ist nichts anderes als die hier aus der gdi+

    Spoiler anzeigen
    [autoit]

    Func _GDIPlus_GraphicsDrawString($hGraphics, $sString, $nX, $nY, $sFont = "Arial", $nSize = 10, $iFormat = 0)
    Local $hBrush = _GDIPlus_BrushCreateSolid()
    Local $hFormat = _GDIPlus_StringFormatCreate($iFormat)
    Local $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    Local $hFont = _GDIPlus_FontCreate($hFamily, $nSize)
    Local $tLayout = _GDIPlus_RectFCreate($nX, $nY, 0, 0)
    Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $tLayout, $hFormat)
    Local $aResult = _GDIPlus_GraphicsDrawStringEx($hGraphics, $sString, $hFont, $aInfo[0], $hFormat, $hBrush)
    Local $iError = @error
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_BrushDispose($hBrush)
    Return SetError($iError, 0, $aResult)
    EndFunc ;==>_GDIPlus_GraphicsDrawString

    [/autoit]

    und solch eine funktion:

    Spoiler anzeigen
    [autoit]

    Func _GDIPlus_GraphicsDrawRoundedRect($hGraphics, $iX, $iY, $iWidth, $iHeight, $iRadius = 30, $Pen = "")
    _GDIPlus_GraphicsDrawArc($hGraphics, $iX, $iY, $iRadius, $iRadius, 180, 90, $Pen)
    _GDIPlus_GraphicsDrawArc($hGraphics, $iX + $iWidth - $iRadius, $iY, $iRadius, $iRadius, 270, 90, $Pen)
    _GDIPlus_GraphicsDrawArc($hGraphics, $iX, $iY + $iHeight - $iRadius, $iRadius, $iRadius, 90, 90, $Pen)
    _GDIPlus_GraphicsDrawArc($hGraphics, $iX + $iWidth - $iRadius, $iY + $iHeight - $iRadius, $iRadius, $iRadius, 360, 90, $Pen)

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

    _GDIPlus_GraphicsDrawLine($hGraphics, $iX + $iRadius / 2, $iY, $iX + $iWidth - $iRadius / 2, $iY, $Pen)
    _GDIPlus_GraphicsDrawLine($hGraphics, $iX, $iY + $iRadius / 2, $iX, $iY + $iHeight - $iRadius / 2, $Pen)
    _GDIPlus_GraphicsDrawLine($hGraphics, $iX + $iRadius / 2, $iY + $iHeight, $iX + $iWidth - $iRadius / 2, $iY + $iHeight, $Pen)
    _GDIPlus_GraphicsDrawLine($hGraphics, $iX + $iWidth, $iY + $iRadius / 2, $iX + $iWidth, $iY + $iHeight - $iRadius / 2, $Pen)
    EndFunc ;==>_GDIPlus_GraphicsDrawRoundedRect

    [/autoit]


    hat letztens jemand hier im forum veröffentlicht.

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™