Aktuelle Zeit: 24.05.2013 08:12

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 41 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 23.02.2009 19:37 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Porada Ninfu
chrizl hat geschrieben:
Danke schön :-)

kein Thema! :-)

chrizl hat geschrieben:
Achja, dein Code zeigt mir nun an, dass beide Objekte erstellt wurden und anschließend, dass die D60 ausgewählt wurde.
Als letztes kommt dann noch die Anzahl der Bilder.

So sollte es sein :-)

Kommst Du mit dem Rest dann erst mal alleine klar?
Wenn Probleme auftauchen, kannst Du Dich ja immer noch melden.

Übrigens: Die FileSystemObject-Sachen brauchst Du nicht zu übersetzen.
Da kannst Du die ganz normalen PB-File-Befehle verwenden.

Grüße ... Kiffi

_________________
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding

PB2Web: Mach mit! :allright:
PureBasic FAQ
PureBasic Projekthosting


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 23.02.2009 19:51 
Offline
Benutzeravatar

Registriert: 31.08.2004 15:03
Wohnort: Pbg.
Japp, da komme ich erst einmal so mit klar, nun muss ich erstmal meinen Akku wieder aufladen, damit ich weiter probieren kann.

_________________
Mit freundlichen Grüßen,
chrizl


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 23.02.2009 23:22 
Offline
Benutzeravatar

Registriert: 31.08.2004 15:03
Wohnort: Pbg.
Okay, das mit dem Auslesen klappt soweit alles ganz gut.

Nun möchte ich einen Befehl an die Cam übergeben. Problem dabei ist nur, dass diesmal nicht die Punktschreibweise(Items.Count) vorhanden ist, sondern die "Funktion" und dann der "Parameter" wie folgendes:

Code:
Do While okB <> 2
   okB = 0
   okB = msgbox("Click Ok to shoot, cancel to stop", 1)
   
   if okB = 1 then   
      itemCount = dev.Items.Count
      dev.ExecuteCommand (wiaCommandTakePicture)
      WScript.Sleep(500) ' it takes a moment for the image to be taken   
      Do While dev.Items.Count = itemCount ' loop while new image not yet taken
         WScript.Sleep(10)
      loop
          itemCount = dev.Items.Count
           Set img = dlg.ShowTransfer(dev.Items(itemCount))
      fnext = img.FileExtension
      If fnext = "" Then
             fnext = "NEF"
      End If
      tempfn = outputfolder & "temp\" & dev.Items(itemCount).Properties("Item Name").Value & "." & fnext
           fn =outputfolder  & dev.Items(itemCount).Properties("Item Name").Value & "." & fnext
      img.SaveFile tempfn
           img = null
      Set aFile = fso.GetFile(tempfn )
      aFile.Move fn
      WScript.Sleep(100)
      WshShell.AppActivate foldername
      WScript.Sleep(100)
      WshShell.SendKeys "{RIGHT}"
      WScript.Sleep(100)
      WshShell.SendKeys "{END}"
   
   end if
Loop


Der letzte Teil mit dem übergeben der Datei an den PC ist erstmal nicht so wichtig, eher die Sache:
Code:
dev.ExecuteCommand (wiaCommandTakePicture)


So wird z. B. auch der Name aus der Kamera gelesen:
Code:
dev.Items(itemCount).Properties("Item Name").Value


Das wäre auf jeden Fall noch ein großes ? für mich.

_________________
Mit freundlichen Grüßen,
chrizl


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 23.02.2009 23:47 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Porada Ninfu
chrizl hat geschrieben:
Code:
dev.ExecuteCommand (wiaCommandTakePicture)

Wenn Du eine Aktion ausführen möchtest, die keinen Rückgabewert
liefert, dann musst Du ein Invoke auf dem Objekt ausführen.

In diesem Fall hieße es also so:

Code:
dev\Invoke("ExecuteCommand(wiaCommandTakePicture)")


wiaCommandTakePicture ist ein Konstante mit einem ziemlich schrägen
Wert (eine GUID, wenn ich das korrekt recherchiert habe).

Korrekt sähe es dann so aus:

Code:
#wiaCommandTakePicture = "{AF933CAC-ACAD-11D2-A093-00C04F72DC3C}"
dev\Invoke("ExecuteCommand('" + #wiaCommandTakePicture +"')")


Grüße ... Kiffi

_________________
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding

PB2Web: Mach mit! :allright:
PureBasic FAQ
PureBasic Projekthosting


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 23.02.2009 23:56 
Offline
Benutzeravatar

Registriert: 31.08.2004 15:03
Wohnort: Pbg.
Okay, schon wieder was neues dazu gelernt.

Danke schön :)

_________________
Mit freundlichen Grüßen,
chrizl


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 03.03.2009 00:21 
Offline
Benutzeravatar

Registriert: 31.08.2004 15:03
Wohnort: Pbg.
So, erster Teil der Geschichte ist fertig.
Also zumindest soweit, dass ich mit der Kamera Fotos machen kann, im Interval, den ich einstelle usw. usw.....

Microsoft bietet in der wiaaut.dll noch eine Funktion, um die Bilder von der Kamera, bzw. dem Bildübertragungsgerät an den PC zu übertragen.
Das wäre bei Windows XP z. B. der Punkt "Bilder kopieren" im Fenster der Kamera.
Um diese Funktion nutzen zu können, muss man ein Object namens "Item" erstellen. Dieses Object soll als "Item" definiert werden.
Naja, damit komme ich nun aber nicht wirklich klar.

Der Code dafür in VB sähe so aus:
Code:
Item item = device.Execute
Dim item As Item = device.ExecuteCommand(CommandID.wiaCommandTakePicture)
For Each format As String In item.Formats
    If (format = jpegGuid) Then
        Dim imagefile As WIA.ImageFile = CType(item.Transfer(format),WIA.ImageFile)
        filename = GetFreeFileName
        If (String.IsNullOrEmpty(filename) = false) Then
            imagefile.SaveFile(filename)
        End If
        Me.picLastImage.Load(filename)
        Return filename
    End If
Next


Der msdn-Teil von der wiaaut sähe so aus:
http://msdn.microsoft.com/en-us/library/ms630557(VS.85).aspx
Code:
Syntax

    object.Transfer( _
        [FormatID As String]) As Variant

Parameters

    FormatID
        Optional. String value that specifies one of the FormatID Constants that indicates the requested image format.

        {00000000-0000-0000-0000-000000000000}
            Default. Unspecified format.

Return Value

    Returns an ImageFile object in the format specified in FormatID, if the device supports that format; otherwise this method uses the preferred format for this imaging device.



Ich habe nun schon sogut wie alles ausprobiert und bin noch nicht wirklich fündig geworden, bzw. habe noch nicht wirklich das KnowHow für diese "Anwendung" in COMate.
Daher würde ich mich sehr freuen, wenn ihr mir da auch nochmal weiterhelfen könntet.

_________________
Mit freundlichen Grüßen,
chrizl


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 05.03.2009 14:00 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Zwar wird empfohlen anstelle den Disphelper das COMate zu benutzen,

Nur hier würde ich empfehlen, da über das WIA-Interface so wenig hier und im
englischen Forum angesprochen wurde, doch lieber den Disphelper, wie im
folgenden Beispiel, zu verwenden :mrgreen:

http://www.purebasic.fr/english/viewtop ... 727#256727

Dort werden VB-Scripte in einer Script-Variable zusammengefasst
und dann mittels dem Disphelper zur Anwendung gebracht.


Gruß, Falko

_________________
Bild
FORUM jens-haipeter.de & Falko-Pure.de
Win8 Pro 64-Bit & Mediacenter, PB_5.0,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 05.03.2009 14:46 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Porada Ninfu
Falko hat geschrieben:
Dort werden VB-Scripte in einer Script-Variable zusammengefasst
und dann mittels dem Disphelper zur Anwendung gebracht.

kann man auch mit COMate Bild

PB-Code:
Code:
IncludePath #PB_Compiler_Home + "\srod\comate"
XIncludeFile "comate.pbi"
IncludePath ""

Define ScriptControl.COMateObject
Define VBS.s

ScriptControl = COMate_CreateObject("ScriptControl")

ScriptControl\SetProperty("Language = 'VBScript'")

VBS = PeekS(?VBS)
VBS = ReplaceString(VBS, "'", "$0027")

ScriptControl\Invoke("AddCode('" + VBS + "')")

MessageRequester("", ScriptControl\GetStringProperty("Eval('IPAddress')"))

ScriptControl\Release()

DataSection
  VBS:
  IncludeBinary "test.vbs"
  Data.b 0
EndDataSection


und hier das von Falko verlinkte Beispiel:

VBS (abspeichern als test.vbs):
Code:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2")
Set IPConfigSet = objWMIService.ExecQuery("Select IPAddress from Win32_NetworkAdapterConfiguration")
For Each IPConfig in IPConfigSet
  If Not IsNull(IPConfig.IPAddress) Then
    For i=LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
      IPAddress = IPAddress & IPConfig.IPAddress(i) & vbCrLf
    Next
  End If
Next


Grüße ... Kiffi

_________________
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding

PB2Web: Mach mit! :allright:
PureBasic FAQ
PureBasic Projekthosting


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 05.03.2009 16:56 
Offline
jaAdmin
Benutzeravatar

Registriert: 13.09.2004 17:48
hmm .. ne SpiegelreflexWebCam wird das letztlich ? Viel Aufwand für #NULL , oder ?

Aber wenn's Spass macht ... :)

_________________
‮pb 4.x & 3.94 (windoof) /om84 (2)
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 05.03.2009 23:48 
Offline
Admin
Benutzeravatar

Registriert: 29.08.2004 11:27
Danke Kiffi. :allright: Sorry, für die späte, Spätschichtbedingte Rückantwort.

@Bobobo, mir ging es ja nicht um die Webcamfunktionen, sondern eher
um die Möglichkeiten, wie man VB-Scripte bezüglich WIAaut.dll in PB nutzen kann.

Einziges Beispiel dazu hatte ich leider nur im englischen Forum in Verbindung
mit dem Disphelper gefunden, daher hier das Posting.

Mit COMate, muss ich mich selbst noch anfreunden :lol:
Schade, das die Hilfe dazu in fließend Englisch ist.

_________________
Bild
FORUM jens-haipeter.de & Falko-Pure.de
Win8 Pro 64-Bit & Mediacenter, PB_5.0,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 41 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye