Seite 1 von 1

Hilfe mit DLL

Verfasst: 05.10.2006 16:12
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?

Re: Hilfe mit DLL

Verfasst: 05.10.2006 16:24
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

Verfasst: 05.10.2006 16:39
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.

Verfasst: 05.10.2006 16:53
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

Verfasst: 05.10.2006 20:20
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

Re: Hilfe mit DLL

Verfasst: 05.10.2006 20:25
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.

Verfasst: 06.10.2006 08:11
von Karl
Mein Meister!

Dank und Anerkennung.

Gruß Karl