Icon in Taskleiste

Hi, also ich hab ein neues Problem. Ich hab das jetzt soweit fertig das er mir die Werte alle in einer ini Datei abspeichert, aber wenn ich es nun zur einer .exe-Datei kompilieren will dann sagt er mir "Fehler beim Kompilieren: Typen unverträglich" und zeigt mir folgenden Abschnitt an
Code:
Call WritePrivateProfileString(Key, Setting, Value, Filename)
Woran liegt das? Bitte schnellst möglich antworten.
 
Poste mehr Code zum Fehler, kann sein dass du irgendwo früher einen Fehler hast, der sich erst da auswirkt.


Der Doc!
 
Gut also, hier die API's:
Code:
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As Any, ByVal lsString As Any, ByVal lplFilename As String) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
So dann fürs lesen der Ini:
Code:
ba = GetINISetting(App.Path & "\kom.in
i", "buchstaben", "a", "")
lbla.Caption = GetINISetting(App.Path & "\kom.ini", "buchstaben", "a", "")
das für fast jede Taste

So und jetzt noch für das Schreiben in die Ini:
Code:
Dim Dateiname As String
    Dateiname = "C:\kom.ini"
    WritePrivateProfileString buchstaben, "a", lbla.Caption, Dateiname
so und er zeigt mir immer ein Fehler an der oben genannten Stellen an.
Ach Gott noch was vergessen ^_^'
Hier die Funktion:
Code:
Function GetINISetting(ByVal Filename As String, ByVal Key As String, ByVal Setting As String, ByVal Default As Variant) As Variant
   Dim Temp As String * 1024

   Call GetPrivateProfileString(Key, Setting, Default, Temp, Len(Temp), Filename)
   GetINISetting = Mid(Temp, 1, InStr(1, Temp, Chr(0)) - 1)
End Function
und noch die Sub:
Code:
Sub SaveINISetting(ByVal Filename As String, ByVal Key As String, ByVal Setting As String, ByVal Value As Variant)
   Call WritePrivateProfileString(Key, Setting, Value, Filename)
End Sub
 
Zuletzt bearbeitet:
Gut also, hier die API's:
Code:
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As Any, ByVal lsString As Any, ByVal lplFilename As String) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
So dann fürs lesen der Ini:
Code:
ba = GetINISetting(App.Path & "\kom.in
i", "buchstaben", "a", "")
lbla.Caption = GetINISetting(App.Path & "\kom.ini", "buchstaben", "a", "")
das für fast jede Taste

So und jetzt noch für das Schreiben in die Ini:
Code:
Dim Dateiname As String
    Dateiname = "C:\kom.ini"
    WritePrivateProfileString buchstaben, "a", lbla.Caption, Dateiname
so und er zeigt mir immer ein Fehler an der oben genannten Stellen an.
Ach Gott noch was vergessen ^_^'
Hier die Funktion:
Code:
Function GetINISetting(ByVal Filename As String, ByVal Key As String, ByVal Setting As String, ByVal Default As Variant) As Variant
   Dim Temp As String * 1024

   Call GetPrivateProfileString(Key, Setting, Default, Temp, Len(Temp), Filename)
   GetINISetting = Mid(Temp, 1, InStr(1, Temp, Chr(0)) - 1)
End Function
und noch die Sub:
Code:
Sub SaveINISetting(ByVal Filename As String, ByVal Key As String, ByVal Setting As String, ByVal Value As Variant)
   Call WritePrivateProfileString(Key, Setting, Value, Filename)
End Sub
So das Problem hab ich gelöst.
Gut gut, soweit funktioniert es, doch jetzt hab ich ein neues Problem. Ich hab jetzt folgendes: Wenn ich irgendein Knopfdrücke dann addiert er bei dem entsprechenden Label eine eins dazu.
Code:
If mau = 0 Then mau0 = mau0 + 1: mauslin.Caption = mau0
Mein Problem ist jetzt, dass wenn ich die Taste gedrückt halte das er immer weiter zählt bis ich die Taste wieder loslassen, aber ich haette es gerne so das er eins dazu addiert nachdem ich die Taste losgelassen hab. Ist das irgendwie möglich?
Um jetzt nochmal auf das Problem zu kommen. Also ich hab mir mal überlegt das es eigentlich gehen müsste wenn man es wie folgt macht.
Also man hat zwei Variablen fuer jede Taste, einmal den Wert vorher und einmal den Wert nachher. Wenn man jetzt guckt ob der Wert nachher größer ist als der Wert vorher um eins vermehrt dann soll er den Wert nacher minus sich selbst um einen subtrahiert rechnen, also inner Anweisung:
Code:
if wertnachher > wertvorher +1 then
wertnachher = wertnachher - (wertnachher - 1)
end if
Würde das so in etwa gehen?

EDIT:
So ich hab jetzt noch ein neues Problem.
Ich hab jetzt die API verwendet um mein Programm in meiner Tasteleiste zu bekommen, aber ich mach das erst wenn er eine Taste gedrückt wird. Sprich ein Fokusproblem, es wird minimiert und dann wird nicht mehr der Tastendruck gezählt. Wie kann ich nach dem minimieren es trotzdem so machen das er den Tastendruck zählt?
 
Zuletzt bearbeitet:
Also, wenn du die GetAsyncKeyState-API verwendest, zählt er alle Tastendrücke, egal ob das Programm im Fokus oder im Systray ist. Ich versteh dein Problem dazu daher nicht ganz.


Der Doc!
 
Aber was ich mich schon immer frage seitdem ich mit Visual Basic arbeite, ist was z.B. &H1& zu bedeuten hat, gibs da irgendwo was zum nachlesen?
 
Es gibt ja unterschiedliche Zahlensysteme, Standard ist bei uns das Dezimalsystem (Basis 10). Im Computerwesen gibt es auch das Hexadezimalsystem (Basis 16), das Dualsystem/Binärsystem (Basis 2) und das nicht so bekannte Oktalsystem (Basis 8).

Das "&H" zeigt an, dass es sich um eine Hexadezimalzahl handelt, es gibt noch "&O" für eine Oktalzahl. DIese Bezeichnungen sind dann nötig, wenn man so eine Zahl mittels Val() in eine Dezimalzahl wandeln will.


Der Doc!
 
Zurück