|
| Autor |
Nachricht |
SwiZz0r_ Tutorial Leser

Anmeldedatum: 18.12.2007 Beiträge: 30
|
Laufwerk zeitspezifisch öffnen?
Verfasst am: 19.12.2007, 21:03 |
|
|
wie kann ich es machen das sich mein DVD-R Laufwerk um xx:xx öffnet?
wie muss ich das machen?
hat mir da jemand nen source code? |
|
| |
|
 |
kackb00n_ Tutorial Leser

Anmeldedatum: 07.12.2007 Beiträge: 42
|
Verfasst am: 19.12.2007, 22:21 |
|
|
ich würds so machen:
Ein timer, der immer jede 10 sekunden macht:
| Code: |
if date = "12:10:00" then
'cd auf code
end if
|
12h 10min und 00 sekunden
Ka obs funzt  |
|
| |
|
 |
Rausch_ Poster

Anmeldedatum: 03.11.2007 Beiträge: 164
|
Verfasst am: 19.12.2007, 22:34 |
|
|
machst du dir einen timer und als _timer macht du
| Code: |
If Format(Time, "HHMMSS") > 222222 Then 'anstatt 222222 nimmst du deine
'zeit, 222222 entspricht 22:22:22 uhr. also einfach die doppelpunkte wegmachen
Call mciExecute("Set CDaudio door open") ' öffnet das cd lauffwerk
End If
|
dazu brauchst du noch die msiExecute api:
| Code: |
Option Explicit
Private Declare Function mciExecute Lib "winmm.dll" (ByVal _
lpstrCommand As String) As Long
|
mfg |
|
| |
|
 |
SwiZz0r_ Tutorial Leser

Anmeldedatum: 18.12.2007 Beiträge: 30
|
Verfasst am: 20.12.2007, 11:51 |
|
|
oh wow...
ich glaub das is mir noch ne nummer zu hoch...
ich behersch erst die For schleife.. und If Then, und n paar Variablen...
ist es möglich das mir jemand nen sourcecode dafür schreibt?
mfg
edit/
so habs ma probiert... soweit bin ich gekommen xD
| Code: |
Option Explicit
Private Declare Function mciExecute Lib "winmm.dll" (ByVal_lpstrCommand As String) As Long
Private Sub Command1_Click()
If Format(Time, "HHMMSS") > 131602 Then 'anstatt 222222 nimmst du deine
'zeit, 222222 entspricht 22:22:22 uhr. also einfach die doppelpunkte wegmachen
Call mciExecute("Set CDaudio door open") ' öffnet das cd lauffwerk
End If
End Sub
|
hmm ich bekomm aber beim Programmstart folgende fehlermeldung:
http://srv4.upper-elite.com/upload/1198153614_shice.PNG |
|
| |
|
 |
christopher.g_ Tutorial Leser


Anmeldedatum: 10.12.2007 Beiträge: 72
|
Verfasst am: 20.12.2007, 14:17 |
|
|
hi
naja is nicht so schwer
hab mal meinen bruder sehr mit so einem cd öffnen schließen prog geärgert
^^
ok du brauchst 1 timer und 1 label
weiters
chreibst einfach
| Code: |
Private Declare Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String, ByVal _
lpstrReturnString As String, ByVal uReturnLength As Long, _
ByVal hwndCallback As Long) As Long 'is die deklaration für cd laufwerk zum öffnen und schließen
Private Sub Form_load()
Label1.caption = "" 'für ein leeres label
Timer1.interval = 1000 '(millisek) dass sich die zeit automatisch jede sek erneuert
End Sub
Private Sub Timer1_timer()
Label1.Caption = time
End Sub
Private Sub Label1.change()
If Label1.caption = "13:55:20" then
retvalue = mciSendString("set CDAudio door open", _returnstring, 127, 0)
End if
End Sub
|
naja wenn du halt dann noch möchtest kannst ja noch einen butten machen mit dem das laufwerk dann wieder geschlossen wird...
| Code: |
Private Sub Command1_Click()
retvalue = mciSendString("set CDAudio door closed", _returnstring, 127, 0)
End Sub
|
ja naja wenn noch was unklar is meldest dich halt nochmal
lg remember:
ein wahrer freund ersticht dich von vorne |
|
| |
|
 |
SwiZz0r_ Tutorial Leser

Anmeldedatum: 18.12.2007 Beiträge: 30
|
|
| |
|
 |
toilette_ Coder

Anmeldedatum: 20.10.2007 Beiträge: 86
|
Verfasst am: 20.12.2007, 16:04 |
|
|
| Code: | Option Explicit
Private Declare Function mciExecute Lib "winmm.dll" (ByVal _
lpstrCommand As String) As Long
Private Sub Form_Load()
Timer1.Interval = 1000 '=1sek
Timer1.Enabled = True 'timer ist angeschaltet
End Sub
Private Sub Timer1_Timer()
If Format(Time, "HHMMSS") > 222222 Then 'anstatt 222222 nimmst du deine zeit, 222222 entspricht 22:22:22 uhr. also einfach die doppelpunkte wegmachen
Call mciExecute("Set CDaudio door open") ' öffnet das cd lauffwerk
End If
End Sub |
so. nätürlich muss ein timer in der form sein. den code zum öffnen des laufwerks kommt ausm 2. post -> kA ob der geht |
|
| |
|
 |
SwiZz0r_ Tutorial Leser

Anmeldedatum: 18.12.2007 Beiträge: 30
|
Verfasst am: 20.12.2007, 17:27 |
|
|
| hmm sieht wohl so aus als ob der code ausem 2ten post nich geht... |
|
| |
|
 |
toilette_ Coder

Anmeldedatum: 20.10.2007 Beiträge: 86
|
|
| |
|
 |
Rausch_ Poster

Anmeldedatum: 03.11.2007 Beiträge: 164
|
Verfasst am: 20.12.2007, 19:24 |
|
|
also bei mir wird das laufwerk auch geöffnet wenn die zeit schon um ist.
bei mir geht das auch, also werd ich den code mach noch genauer erklären:
also du machst einen timer auf deiner form. bei dem stellst du den intervall ein. der intervall (in milisecunden) ist die zeit die das programm wartet bis es das ereignis Private Sub Timer1_Timer() aufruft. also stell den intervall mal zum test auf 500 oder ähnliches.
| Code: |
Option Explicit
Private Declare Function mciExecute Lib "winmm.dll" (ByVal _
lpstrCommand As String) As Long
|
das braucht man um das cd laufwerk öffnen zu können
| Code: |
Call mciExecute("Set CDaudio door open")
|
öffnet das cd laufwerk, bei mir zumindest.
| Code: |
If Format(Time, "HHMMSS") > 222222
|
also Time ist die aktuelle systemzeit beispielsweise 19:11:12, also im format HH:MM:SS
der befehl format(time, "HHMMSS") macht jetzt 19:11:12 zu 191112 vom typ integer oder long. ein guter wert zu rechnen , also schauen wir einfach ob diese zahl größer ist als die uhrzeit die wir wollen.
das timer event prüft das jetzt jede halbe sekunde ob das so ist, wenn ja also wenn die zeit die wir wollen vorbei ist, dann wird das cd laufwerk geöffnet.
so noch mal ein vollstäniger code zum abschreiben:
| Code: |
'also du brauchst einen buttton, eine textbox, und einen timer
Option Explicit
Private Declare Function mciExecute Lib "winmm.dll" (ByVal _
lpstrCommand As String) As Long
Private Sub Command1_Click()
Timer1.Interval = 500
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
If Format(Time, "HHMMSS") > Val(Text1.Text) Then
'val verwandelt einen string in einen integer
Call mciExecute("Set CDaudio door open") ' öffnet das cd lauffwerk
Timer1.Enabled = False
End If
End Sub
|
mfg |
|
| |
|
 |
SwiZz0r_ Tutorial Leser

Anmeldedatum: 18.12.2007 Beiträge: 30
|
Verfasst am: 20.12.2007, 21:10 |
|
|
hmm den code verstehe ich so... der ergiebt ja auch sinn
hab jetzt alles so gemacht wies da steht...
aber sobald ich auf den button klicke freezt das programm...
(Keine Rücknmeldung) -.-
noch wer ne idee? |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 20.12.2007, 21:33 |
|
|
Es wird wohl ein DoEvents im Timer fehlen.
Und jede Sekunde überprüfen wird wohl auch reichen. Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
SwiZz0r_ Tutorial Leser

Anmeldedatum: 18.12.2007 Beiträge: 30
|
Verfasst am: 20.12.2007, 23:37 |
|
|
hmm auch so... immer noch das gleiche... der programm Freezt
sollte ein E6700 2GB ram 8800GTX nich oder?^^ |
|
| |
|
 |
toilette_ Coder

Anmeldedatum: 20.10.2007 Beiträge: 86
|
Verfasst am: 21.12.2007, 10:25 |
|
|
das kann ja auch nicht funktionieren, wenn der timer sich selbst wieder aus stellt:
| Zitat: | Private Sub Timer1_Timer()
If Format(Time, "HHMMSS") > Val(Text1.Text) Then
'val verwandelt einen string in einen integer
Call mciExecute("Set CDaudio door open") ' öffnet das cd lauffwerk
Timer1.Enabled = False '###################################
End If
End Sub |
nimm das Timer1.Enabled = False da mal raus
probier doch mal einfach per button aus, ob isich dein laufwerk öffnet. dann weißt du auch ob das dann klappt |
|
| |
|
 |
Rausch_ Poster

Anmeldedatum: 03.11.2007 Beiträge: 164
|
Verfasst am: 21.12.2007, 11:20 |
|
|
ja der timer beendet sich aber nur wenn die zeit um ist, sonst öffnet der ja dauernd das laufwerk, sobald die zeit um ist.
bei mir geht das (512mb ram, 2ghz).weiß auch nicht warum das bei euch net geht, probiert mal nur das cd lauffwerk zu öffnen wenn man auch nen button drückt, villeicht liegts ja da dran
mfg |
|
| |
|
 |
SwiZz0r_ Tutorial Leser

Anmeldedatum: 18.12.2007 Beiträge: 30
|
Verfasst am: 21.12.2007, 21:00 |
|
|
hmm also auch wenn ich nur nen button nehme freezt der pc -.-
dann liegts wohl an mir -.-" |
|
| |
|
 |