Templates by BIGtheme NET
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1
  • 2

THEMA:

[cX.System.DLLAufruf] 23 Jun 2021 16:26 #1

  • daywalker
  • daywalkers Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 790
  • Dank erhalten: 590
Lieber Stefan, ich versuche mich gerade am .dll Aufruf und habe mir dazu eine einfache Messagebox aus der User32.dll auserkoren.



Der Plan: Die Box soll auch einen Ja und Nein Knopf anzeigen. Das gelingt mir eher zufällig, da ich nicht genau dahinterkomme wie man diesen geforderten 3.Parameter uINT 
wo man ja mehrere  Flags angeben kann, gestaltet. Das wäre dann vielleicht auch gleich etwas für die DOKU? Die Messagebox
kommt sogar manchesmal auch erst nach ein paar Versuchen und sieht dann jedesmal anders aus.
Ich erbitte Deinen geschätzten Rat dazu, wenn möglich. Wie gesagt mich interessiert es wegen der cx5 Funktion und deren Funktionalität an sich (cx5 hat ja eh ein schönes Meldungsfenster) und als Nachschlagmöglichkeit für die anderen Koll.

Ich habe mich da an dieser Anleitung orientiert.

cX4Web cX4Web Code

Was ist das?

1  *** messagebox aus.dll
2  
3  *** geforderde Parameter initialisieren mit Mehrfachsetzen
4  Setze , MultiSet 'lpText="Hello DLL Messagebox"¶lpCaption="Funktioniert"¶MB_YESNO=0x00000004L¶'
5  *** Die Meldungsbox aufrufen
6  Setze in [erg]: '[cX.System.DLLAufruf(User32;MessageBoxA;;[lpText];[lpCaption];[MB_YESNO])]' 
7  
8  Beende Skript

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


 (8 Zeilen, cX 5.0.8.2)


lg Christian

 
Anhänge:
Folgende Benutzer bedankten sich: Soko, Bandit

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von daywalker.

[cX.System.DLLAufruf] 23 Jun 2021 17:46 #2

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1131
  • Dank erhalten: 1669
Hallo, Christian!

Abgesehen davon, dass dein von C++ übernommener Ausdruck
MB_YESNO=0x00000004L
eigentlich einen 32bit-Wert 4 bedeutet, also
MB_YESNO=4
lauten sollte, war tatsächlich noch ein Fehler in der Parameterauswertung, weshalb diese 4 nicht richtig übergeben worden ist.
Ups!
Ist in der nächsten Version behoben - Danke für den Hinweis!

Liebe Grüße
Stefan
Folgende Benutzer bedankten sich: Soko, daywalker

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

[cX.System.DLLAufruf] 23 Jun 2021 17:54 #3

  • daywalker
  • daywalkers Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 790
  • Dank erhalten: 590
Stefan ich danke Dir ganz herzlich für Deine sehr hilfreiche Info und rasche Hilfe.

lg aus dem mittlerweile subtropischen Großraum Wien ;-)
Folgende Benutzer bedankten sich: Bandit

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

[cX.System.DLLAufruf] 02 Aug 2021 15:53 #4

  • daywalker
  • daywalkers Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 790
  • Dank erhalten: 590
Liebe Koll., hier nun ein Beispiel einer Messagegbox aus der user32.dll zur freien Verfügung, zum Probieren mit der neuen Beta und zur freien Verfügung. Wen es zum Nachschlagen interessiert. Da ja Clickexe5 selbst eh schon eine komfortable Meldungsbox anbietet. 

Bitte bedenkt jedoch, daß vielleicht eine besondere Lizenz notwendig ist zur Ausführung, dann bitte CX5 im Volltestmodus starten.

cX4Web cX4Web Code

Was ist das?

1  *** messagebox aus user32.dll
2  
3  *** geforderde Parameter initialisieren mit Mehrfachsetzen
4  
5  *** lpCaption = InhaltTitelzeile
6  *** lpText=Der Meldungsinhalt
7  *** Uint=das Ergebnis aus [cx.Rechne(256+16+2)] 
8  *** wobei 256 den 2. Knopf (Wiederholen) als Voreinstellung aktiviert
9  *** 16 = Meldung für kritischen Fehler
10  *** 2=Die Knöpfe oder Buttons 'Abbruch, Wiederholen und Ignorieren' werden im Meldungsfenster angezeigt.
11  
12  Setze , MultiSet 'lpCaption="Funktioniert"¶lpText="Hello DLL Messagebox"¶Uint=[cx.Rechne(256+16+2)]¶¶'
13  *** Die Meldungsbox aufrufen aus der user32.dll
14  Setze in [iErg]: '[cX.System.DLLAufruf(User32;MessageBoxA;;[lpText];[lpCaption];[Uint])]' 
15  
16  *** Welcher Knopf wurde vom Anwender gedrückt
17  Wenn (? Werteprüfung'[iErg]' = '3')
18   Meldung 'Es wurde der Knopf 'Abbrechen' gedrückt!', Titel 'Info', Buttons 'Nur OK', Symbol 'Information'
19  Sonst (? Werteprüfung'[iErg]' = '4')
20   Meldung 'Es wurde der Knopf 'Wiederholen' gedrückt!', Titel 'Info', Buttons 'Nur OK', Symbol 'Information'
...

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


 (25 Zeilen, cX 5.0.8.3)


Die Angaben für die Darstellung sind hier sehr schön dargestellt

@Stefan 

Lieber Stefan, vielen Dank! Funktioniert alles Bestens.

lg Christian

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von daywalker.

[cX.System.DLLAufruf] update 09 Sep 2021 12:16 #5

  • daywalker
  • daywalkers Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 790
  • Dank erhalten: 590
Servus lieber Stefan, in beigefügtem Skript versuche ich mit der kernel32.dll und der darin enthaltenen Funktion GetTempPath eben Diesen auszulesen. Was auch funktioniert aber nach dem schliessen der Meldungsbox stürzt CX5 ab. Daher meine Frage:  "Wird nach dem 'Beende Skript' Befehl " auch die kernell32.dll wieder ordnungsgemäss geschlossen? Oder könnte daraus der Absturz resultieren?

cX4Web cX4Web Code

Was ist das?

1  *** GetTempPath kernel32.dll
2  *** Declare PtrSafe Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
3  
4  Setze , MultiSet 'erg=100¶'
5  Setze in [erg]: '[cX.System.DLLAufruf(kernel32;GetTempPath;[erg];lpPuffer=100$)]' 
6  Meldung '[lpPuffer]', Titel 'Titel', Buttons 'Nur OK', Symbol 'Information'
7  
8  Beende Skript

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


 (8 Zeilen, cX 5.0.8.3)


Es kann sein das für dieses Skript eine bestimmte Lizenz erforderlich ist. Bitte dann im Volltestmodus ausführen.
lg Christian

 
Folgende Benutzer bedankten sich: Soko

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von daywalker.

[cX.System.DLLAufruf] update 10 Sep 2021 09:07 #6

  • Soko
  • Sokos Avatar
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 535
  • Dank erhalten: 438
Hallo,

cX5 schließt bei mir auch. Hier die Fehlermeldungen:

Protokollname: Application
Quelle:        .NET Runtime
Datum:         10.09.2021 09:05:24
Ereignis-ID:   1023
Aufgabenkategorie:Keine
Ebene:         Fehler
Schlüsselwörter:Klassisch
Benutzer:      Nicht zutreffend
Computer:      ap18
Beschreibung:
Anwendung: clickEXE.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund eines internen Fehlers in der .NET-Laufzeit beendet. bei IP 69FFCB65 (69EF0000) mit Exitcode 80131506.

Ereignis-XML:
<Event xmlns="schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name=".NET Runtime" />
    <EventID Qualifiers="0">1023</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2021-09-10T07:05:24.2299052Z" />
    <EventRecordID>55589</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>Application</Channel>
    <Computer>ap18</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Anwendung: clickEXE.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund eines internen Fehlers in der .NET-Laufzeit beendet. bei IP 69FFCB65 (69EF0000) mit Exitcode 80131506.
</Data>
  </EventData>
</Event>
Protokollname: Application
Quelle:        Application Error
Datum:         10.09.2021 09:05:24
Ereignis-ID:   1000
Aufgabenkategorie:(100)
Ebene:         Fehler
Schlüsselwörter:Klassisch
Benutzer:      Nicht zutreffend
Computer:      ap18
Beschreibung:
Name der fehlerhaften Anwendung: clickEXE.exe, Version: 5.0.8.3, Zeitstempel: 0x6102df26
Name des fehlerhaften Moduls: clr.dll, Version: 4.8.4400.0, Zeitstempel: 0x60b90414
Ausnahmecode: 0xc0000005
Fehleroffset: 0x0010cb65
ID des fehlerhaften Prozesses: 0x6c68
Startzeit der fehlerhaften Anwendung: 0x01d7a612307e2fc4
Pfad der fehlerhaften Anwendung: C:\Program Files (x86)\click.EXE 5.0\clickEXE.exe
Pfad des fehlerhaften Moduls: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Berichtskennung: 0761452a-c074-4880-81ec-4e39c0f8f6f4
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
Ereignis-XML:
<Event xmlns="schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>100</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2021-09-10T07:05:24.3950560Z" />
    <EventRecordID>55590</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>Application</Channel>
    <Computer>ap18</Computer>
    <Security />
  </System>
  <EventData>
    <Data>clickEXE.exe</Data>
    <Data>5.0.8.3</Data>
    <Data>6102df26</Data>
    <Data>clr.dll</Data>
    <Data>4.8.4400.0</Data>
    <Data>60b90414</Data>
    <Data>c0000005</Data>
    <Data>0010cb65</Data>
    <Data>6c68</Data>
    <Data>01d7a612307e2fc4</Data>
    <Data>C:\Program Files (x86)\click.EXE 5.0\clickEXE.exe</Data>
    <Data>C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll</Data>
    <Data>0761452a-c074-4880-81ec-4e39c0f8f6f4</Data>
    <Data>
    </Data>
    <Data>
    </Data>
  </EventData>
</Event>
Protokollname: Application
Quelle:        Windows Error Reporting
Datum:         10.09.2021 09:05:26
Ereignis-ID:   1001
Aufgabenkategorie:Keine
Ebene:         Informationen
Schlüsselwörter:Klassisch
Benutzer:      Nicht zutreffend
Computer:      ap18
Beschreibung:
Fehlerbucket 1552236800530836515, Typ 1
Ereignisname: APPCRASH
Antwort: Nicht verfügbar
CAB-Datei-ID: 0

Problemsignatur:
P1: clickEXE.exe
P2: 5.0.8.3
P3: 6102df26
P4: clr.dll
P5: 4.8.4400.0
P6: 60b90414
P7: c0000005
P8: 0010cb65
P9:
P10:

Angefügte Dateien:
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERB41B.tmp.dmp
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERB64E.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERB66E.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERB678.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERB6B8.tmp.txt

Diese Dateien befinden sich möglicherweise hier:
\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_clickEXE.exe_8b86445c51776d3166b5662fba12bea9ac9e8ff_69ca7529_a9eec587-c0ae-4e1a-8da6-1f0d0155434e

Analysesymbol:
Es wird erneut nach einer Lösung gesucht: 0
Berichts-ID: 0761452a-c074-4880-81ec-4e39c0f8f6f4
Berichtstatus: 268435456
Bucket mit Hash: 684803311ae68739358aa7255eedec23
CAB-Datei-Guid: 0
Ereignis-XML:
<Event xmlns="schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Windows Error Reporting" />
    <EventID Qualifiers="0">1001</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2021-09-10T07:05:26.7677261Z" />
    <EventRecordID>55591</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>Application</Channel>
    <Computer>ap18</Computer>
    <Security />
  </System>
  <EventData>
    <Data>1552236800530836515</Data>
    <Data>1</Data>
    <Data>APPCRASH</Data>
    <Data>Nicht verfügbar</Data>
    <Data>0</Data>
    <Data>clickEXE.exe</Data>
    <Data>5.0.8.3</Data>
    <Data>6102df26</Data>
    <Data>clr.dll</Data>
    <Data>4.8.4400.0</Data>
    <Data>60b90414</Data>
    <Data>c0000005</Data>
    <Data>0010cb65</Data>
    <Data>
    </Data>
    <Data>
    </Data>
    <Data>
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERB41B.tmp.dmp
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERB64E.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERB66E.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERB678.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERB6B8.tmp.txt</Data>
    <Data>\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_clickEXE.exe_8b86445c51776d3166b5662fba12bea9ac9e8ff_69ca7529_a9eec587-c0ae-4e1a-8da6-1f0d0155434e</Data>
    <Data>
    </Data>
    <Data>0</Data>
    <Data>0761452a-c074-4880-81ec-4e39c0f8f6f4</Data>
    <Data>268435456</Data>
    <Data>684803311ae68739358aa7255eedec23</Data>
    <Data>0</Data>
  </EventData>
</Event>

 
Folgende Benutzer bedankten sich: daywalker

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1
  • 2

Community

Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Diese Cookies sind essenziell für den Betrieb dieser Website. Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.

Sie sind noch nicht Mitglied unserer Community? Melden Sie sich jetzt an!

Anmelden