Hilfe mit DLL

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Hilfe mit DLL

Beitrag von dllfreak2001 »

Hiho,
ich habe hier ja sone blöde X10-fernbedienung und wollte mal nen
kleines Prog schreiben.
Die Fernbedienung kann über ne dll abgefragt werden dazu gibbet
auch schon passenden vb-code im i-net.
(ich kenn mich mit vb keinen deut aus)
guck hier:

Code: Alles auswählen

Private Sub X10Control1_X10Command( _
  ByVal bszCommand As String, _
  ByVal eCommand As X10Ctl.EX10Command, _
  ByVal lAddress As Long, _
  ByVal EKeyState As X10Ctl.EX10Key, _
  ByVal lSequence As Long, _
  ByVal eCommandType As X10Ctl.EX10Comm, _
  ByVal varTimestamp As Variant)

  Label1(0).Caption = bszCommand
  Label1(1).Caption = eCommand
  Label1(2).Caption = lAddress
  Label1(3).Caption = EKeyState
  Label1(4).Caption = lSequence
  Label1(5).Caption = eCommandType
  Label1(6).Caption = varTimestamp
  
  If EKeyState = 1 Or EKeyState = 3 Then
    If bszCommand = "Record" Then Shell "shutdown.exe -s -f -t 01"

    Select Case bszCommand
      Case "One": SendKeys "1"
      Case "Two": SendKeys "2"
      
      ' hier weitere Befehle eingeben
    End Select
  End If
End Sub
Die Frage ist nun wie setzt ich sowas in PB um und
was muss man in pb machen damit die DLL auch angesprochen
werden kann?
I´a dllfreak2001
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Hilfe mit DLL

Beitrag von Kiffi »

> (ich kenn mich mit vb keinen deut aus)

das sieht man ;-)

Im Code ist kein einziger Aufruf der DLL vorhanden.

Ist das eine COM (ActiveX) -DLL?

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Ich habe zwar noch nichts in VB aber dafür in versch. anderen Sprachen gemacht.
Für mich sieht der Code nach einer Procedur aus deren Parameter-Aliase (X10Ctl...) vermutlich weiter oben oder in einer Include-Datei definiert sind.
Dann folgt ein Array,
wenn der Parameter EKeyState 1 oder 3 ist wird die EXE shutdown.exe mit Parametern über die Shell aufgerufen,
wenn der Parameter bszCommand "One" ist soll vermutlich eine Procedur oder ein Befehl "SendKeys" mit dem Parameter 1 ausgeführt werden,
bei "Two" mit 2,
dann folgt Raum für eigene Programmierung

Es müsste noch einiges geklärt werden :
Es könnte sein, daß Du die DLL mit dieser Procedur erstellen und nicht eine fertige benutzen mußt.
Welche Art soll es sein (siehe Hilfe zu DLL) ?
Wie soll sie heißen ?
Welche Datentypen haben die Parameter-Aliase ?
Da Du den Quelltext hast denke ich Du kommst auch an die Antworten auf die Fragen.

Das einzige mit dem ich überhaupt nichts anfangen konnte ist "SendKeys".
Es gibt ein PureBasic-Programm mit gleichem Namen (hier im Forum), daß einen Tastendruck simuliert.
Es wäre aber purer Zufall wenn es das wäre.
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

X10Ctl ist ein Control (Objekt). Die EX10blablas sind Eigenschaften.

Der Schnipsel kommuniziert mit dem Control (bzw. fragt ab).

Wenn EKeyState = 1 oder 3 (entweder gedrückt oder dauergedrückt)
dann
wenn Taste "Record" gedrückt dann Runterfahren
wenn Taste "One" dann SendeTaste ("1") -> Keyboard-Simulation der 1
...

varTimestamp ist wohl das Datum und die Uhrzeit, an dem die Taste gedrückt wurde.

ActiveX in PureBasic soll wohl´n ziemlicher Kraftakt sein. Aber vielleicht hilft das ScriptControl?

Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> ActiveX in PureBasic soll wohl´n ziemlicher Kraftakt sein
Eigentlich nicht (nicht immer) :wink:
Abgesehen vom ScriptControl könnte dies weiterhelfen:
http://www.purebasic.fr/english/viewtopic.php?t=23370
und
http://www.purebasic.fr/english/viewtopic.php?t=23651

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Re: Hilfe mit DLL

Beitrag von dllfreak2001 »

Kiffi hat geschrieben:> (ich kenn mich mit vb keinen deut aus)

das sieht man ;-)

Im Code ist kein einziger Aufruf der DLL vorhanden.

Ist das eine COM (ActiveX) -DLL?

Grüße ... Kiffi
Ich glaub ja, hab den Code ja nicht geschrieben.
Wollte das lieber in PB machen weil dakenn ich mich aus.
I´a dllfreak2001
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Mein Meister!

Dank und Anerkennung.

Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Antworten