Zum Inhalt springen

hapke

Mitglieder
  • Gesamte Inhalte

    9
  • Benutzer seit

  • Letzter Besuch

  1. Soweit ich das beurteilen kann schon. Ich bekomme zumindest als Ergebnis beim Projekt erstellen meine DLL-Datei. Oder muss ich da noch mehr machen? Meine Überlegung bei dem dynamischen einbinden war, die DLL Dateien nur einzubinden, wenn ich die Classe / die Methoden daraus auch wirklich benötige. Ich habe also mein Switch und dann soll bei den entsprechenden Parametern die Aktion X ausgeführt werden. Für die Aktion X, gibt es eine X.dll die die Classe mit den Methoden etc enthält. Wenn die Aktion Z ausgeführt werden soll, wird die X.dll nicht benötigt. Von daher sehe ich es als unnütz, diese Datei beim Aufruf der Anwendung trotzdem zu laden. Nachzuvollziehen oder übersehe ich etwas grundlegendes? Gruß Hapke
  2. Schön guten Tag, ich habe ein Problem eine selbst erstellte DLL-Datei einzubinden und zu verwenden. Der Name der Datei ist ganz einfach "dll.dll". Das ganze Projekt dient im Moment nur zum testen der Funktion bevor es dann richtig los geht. Nur damit sich hier niemand wundert, warum die Funktion nur einen Wert zurück gibt. Entwicklungsumgebung ist das Microsoft Visual Studio 2008 in der Sprache C# Code meiner DLL-Datei: namespace dll { public class dll { static public int test(int h) { return h; } } } Code meiner kleinen Exe-Datei: using System; using System.Windows.Forms; using System.Runtime.InteropServices; namespace dllTest { public partial class Form1 : Form { [DllImport("dll.dll", EntryPoint="test")] static extern public int test(int h); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { int retval = test(333); MessageBox.Show("Wert: " + retval.ToString() + ""); } } } Fehlermeldung: Ich habe auch schon versucht meine dll.dll mit dem DebendencyWalker zu öffnen. Leider kam dabei auch nicht sehr viel heraus. Wobei ich mir auch nicht so sicher bin, ob sich die Meldung wirklich auf meine Datei bezieht. Ich bin auf jeden Fall ziemlich ratlos und hoffe das mir hier jemand helfen kann.
  3. Ja Ups nein er heißt ServiceWatcher habe ihn über net start gestartet und über die verwaltung (glaube auch mmc abgekürzt bin mir aber nicht ganz sicher) Die habe ich direkt im Control angegeben. LocalPort und RemotePort: 8080 / Protokoll: sckTCPProtocol Funktioniert leider auch noch nicht. Habe das Timer1.Enabled = True unter NTService1_Start gesetzt. Leider ohne Erfolg. Auch durch erstellen eines Threads bekomme ich den Dienst nicht gestartet. In der Verwaltung unter Dienste steht er generell immer als "Wird gestartet" wenn ich versuche ihn zu starten und er auf die Fehlermeldung läuft. Danach nur noch zu beenden über den Taskmanager. Timo
  4. Danke erstmal für die bisherigen Antworten. Habe jetzt eine normale Windows Anwendung erstellt und diese mit Hilfe dieses Workshops => vb@rchiv · Dienst mit VB erstellen kann ich die Anwendung jetzt als Dienst installieren. Jetzt habe ich jedoch das Problem das ich die Anwendung als Dienst nicht starten kann Meldung: "Der Dienst 'ServiceWarcher' auf "Lokaler Computer" konnte nicht gestartet werden. Fehler 1053: Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung" Unten einmal mein aktueller Source Code. Das Prüfen der Systemzeit habe ich jetzt mit einem Timer gelöst wie oben genannt. Zeit Interwall auf 45 Sekunden und in einer Variable das aktuelle Datum, welches beim ersten Aufrufen dann in der Variable gespeichert wird und für den Tag dann nicht mehr ausgeführt wird. Wie gesagt jetzt erstmal das Problem mit dem Starten des Dienstes. Danke Timo Public Class Form1 Dim last_date As Date Dim filenameService As String = "C:/ServiceStatus.log" Dim filenameEvents As String = "C:/ServiceEvents.log" Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Select Case Command() Case "-install" NTService1.Interactive = True If NTService1.Install Then MsgBox("Dienst erfolgreich installiert") Else MsgBox("Dienst konnte nicht installiert werden") End If Application.Exit() Case "-uninstall" If NTService1.Uninstall Then MsgBox("Dienst erfolgreich deinstalliert") Else MsgBox("Dienst konnte nicht deinstalliert werden") End If Application.Exit() Case "-debug" NTService1.Debug = True Case Is <> "" MsgBox("Invalid command option") Application.Exit() Case Else Timer1.Enabled = True NTService1.StartService() Winsock1.Listen() Log(filenameService, "Dienst wurde gestartet") End Select End Sub Private Sub NTService1_Continue(ByVal sender As Object, ByVal e As AxNTService._DNtSvcEvents_ContinueEvent) Handles NTService1.Continue Log(filenameService, "Dienst wurde fortgesetzt") Winsock1.Listen() Timer1.Enabled = True End Sub Private Sub NTService1_Pause(ByVal sender As Object, ByVal e As AxNTService._DNtSvcEvents_PauseEvent) Handles NTService1.Pause Log(filenameService, "Dienst wurde angehalten") Winsock1.Close() Timer1.Enabled = False End Sub Private Sub NTService1_Start(ByVal sender As Object, ByVal e As AxNTService._DNtSvcEvents_StartEvent) Handles NTService1.Start Log(filenameService, "Dienst wurde gestartet") Winsock1.Listen() Timer1.Enabled = True End Sub Private Sub NTService1_Stop(ByVal sender As Object, ByVal e As System.EventArgs) Handles NTService1.Stop Log(filenameService, "Dienst wurde gestoppt") Winsock1.Close() Timer1.Enabled = False End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If last_date <> Date.Today Then 'If ((Now.Hour = 11) And (Now.Minute <> 23) And (Now.Second < 45)) Then If ((Now.Hour = 4) And (Now.Minute = 0) And (Now.Second < 45)) Then timerCalled() last_date = Date.Today End If End If End Sub Function timerCalled() As Object Try Log(filenameEvents, "Timer Event - Dienst(e) neugestartet") Catch ex As Exception Log(filenameEvents, "Fehler: Timer Event - Dienst(e) neugestartet") End Try End Function Function Log(ByVal datei As String, ByVal info As String) Dim logDatei As New System.IO.StreamWriter(datei, True) logDatei.WriteLine(Now & " - " & info) logDatei.Close() End Function Private Sub Winsock1_DataArrival1(ByVal sender As System.Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles Winsock1.DataArrival Dim str As String = "" Winsock1.GetData(str) Dim str_code As String = str.Substring(0, 2) Dim str_name As String = "" If str.Length <> 2 Then str_name = str.Substring(3, str.Length - 3) End If Select Case str_code Case "/1" 'Disconnect System.Threading.Thread.Sleep(5000) Winsock1.Close() Log(filenameEvents, "Verbindung geschlossen") Winsock1.Listen() Case "/2" 'Starten Log(filenameEvents, "Dienst Starten (" & str_name & ")") Case "/3" 'Beenden Log(filenameEvents, "Dienst Beenden (" & str_name & ")") Case "/4" 'Pause Log(filenameEvents, "Dienst Pause (" & str_name & ")") Case "/5" 'Restarte Log(filenameEvents, "Dienst Restarte (" & str_name & ")") End Select End Sub Private Sub Winsock1_ConnectionRequest1(ByVal sender As System.Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_ConnectionRequestEvent) Handles Winsock1.ConnectionRequest Winsock1.Close() Winsock1.Accept(e.requestID) Log(filenameService, "Neue Verbindung Aufgebaut") End Sub End Class
  5. Halli Hallo, habe vor einen Windows Dienst zu entwickeln. Aufgaben sollen sein zu einer bestimmten Uhrzeit und wenn von einem anderen Rechner ein Signal gesendet wird eine bestimmte Funktion auszuführen. Bisherige Überlegungen: Das Signal von außen ist ein String der via Winsock Verbindung gesendet wird. Problem: Wie plaziert man in einem Dienst ein Window Control? Bzw in wiefern ist es möglich dieses auf ein User Control zu plazieren und von dort aufzurufen? Die andere Frage die ich mir auch noch stelle ist, wie man die Systemzeit zu einer bestimmten Zeit "abfängt" vielleicht ohne einen Timer am laufen zu haben der alle 60 Sekunden prüft ob die Uhrzeit erreicht ist um Resourcen zu sparen!? Könnt ihr mir helfen? Habt ihr Ideen? Danke schonmal Timo
  6. Ja genau. Nur bekomme ich diesen Zugriff nicht. Es müsste auch geprüft werden, ob überhaupt ein Benutzer angemeldet ist, da der Dienst ja schon gestartet wird auch wenn sich noch kein Benutzer angemeldet hat. (Laut meinen Informationen) Das sollte aber nicht das Problem sein und darum geht es auch nicht. Es geht mir nur darum das ich über den Dienst der unter System läuft keinen Zugriff bekomme und wie ich es hinbekommen kann doch Zugriff zu bekommen. "Meines Wissens hast Du als angemeldeter Benutzer immer Vollzugriff auf den HKCU-Schlüssel, da hier ja einige benutzerbezogene Einstellungen gespeichert werden müssen." Klar als angemeldeter Benutzer schon nur läuft der Dienst ja nicht über das angemeldete Benutzerkonto... Gruß Timo
  7. Hallo, ich bin einen eigenen Dienst in VB.Net am programmieren, welcher unter System ausgeführt wird. Nun ist es notwendig, das ich auf die Registry unter CurrentUser unter dem aktuell angemeldeten Benutzer zugreife und dort etwas lesen, ändern, schreiben kann. Könnt Ihr mir da weiterhelfen? Habe überlegt das ganze unter einem anderen Benutzeraccount auszuführen, diese Methode fällt jedoch weg da der Dienst später auf mehreren Rechnern ausgeführt werden soll und diese in verschiedenen Städten stehen und nicht immer dieselben Benutzeraccounts und Passwörter haben. Sollte jetzt zum Beispiel ein Passwort geändert werden ist es nicht möglich hinzufahren und das ganze beim Dienst zu ändern, als Beispiel. Habt Ihr Ideen wie man das Problem lösen kann? Ich hoffe ich habe mich verständlich ausgedrückt und nicht alles falsch rüber gebracht. Vielen Dank. Timo
  8. hapke

    Netzwerkdrucker auflisten

    Hmm ... ok und wäre es möglich die Freigegebenen Drucker eines Netzwerks aufzulisten?
  9. Hallo, ich würde gerne mit VB alle im Netzwerk verfügbaren Drucker auflisten mit der dazugehörigen IP und Namen, Treiber anzeigen lassen. Google jetzt seit einem Tag mit nem Kollegen zusammen doch wir kommen leider nicht voran. Haben auf der Seite http://www.vbapihelpline.de/ref/funck.php4?Func=EnumPrinters&Letter=Drucker etwas wie wir finden hilfreiches gefunden leider funktioniert das nur mit den lokalen Druckern und nicht mit den Netzwerkdruckern. Könnt Ihr helfen? VB6 oder VB .net ist egal haben hier beides.. (Link oben ist VB6) Danke schonmal Timo

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...