1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Fr: 18 Juli 2025
  • Anmelden oder registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Mitglieder
    3. Natic

    Beiträge von Natic

    • Shop erweiterung

      • Natic
      • 5. April 2019 um 10:46

      wenn das dass Bild aus der Galerie ist, frag doch einfach mal den author ;)

      Bin leider gerade am Handy

    • FOV unterbinden

      • Natic
      • 5. April 2019 um 10:39

      Entweder bin ich gerade dumm oder weiß nicht was du meinst.

      Kannst du mir das ein wenig erläutern was du genau meinst ?

    • Fahndungsliste Liste über dem PC Bildschirm in game Öffnen

      • Natic
      • 5. April 2019 um 10:37

      Im Prinzip kannst du den Aufruf des Menüs aus der Playerinv wie Joe Barbaro geschrieben hat in eine addAction in der init. des Objektes mithilfe des Editors erstellen.

      Wenn ich gleich nach Hause komme poste ich hier mal was ;)

    • [SCHNIPSEL] Archivement System

      • Natic
      • 3. April 2019 um 17:36

      Es war nicht alleine ein Schnipsel, deshalb war ich mir nicht sicher Alice Kingsleigh ^^

    • [SCHNIPSEL] Archivement System

      • Natic
      • 3. April 2019 um 13:41

      BlueType ja, ich darf dies. Da ich dieses System entwickelt habe und es nicht als vollständiges System auf SeaLife war ^^

    • [SCHNIPSEL] Archivement System

      • Natic
      • 3. April 2019 um 10:34

      Moin NN,

      da sich viele Menschen fragen, wie man ein Archivement System

      entwickelt hier ein kleiner Anfang.

      Zu Beachten: Dies ist nur ein Anfang (Schnipsel), es ist kein komplettes Tutorial.

      ebenfalls ist die Ausarbeitung mit Dialog und so schlecht, ihr solltet es so nicht benutzen sondern nur als Hilfestellung nehmen, da ich wenig Zeit habe, kann ich leider kein komplettes erstellen ^^

      Schritt 1:

      Wir legen eine Config namens Config_Archivements.hpp an

      Code
      /*
          Author: Natic
      */
      class cfgArchives
        {
         
          class ticket {
                variable = "archiv_ticket";
                    titel = "Strafzettel";
                    side = "cop";
                    description = "<t size='1'>Vergebe: %2 Strafzettel <br/>Vergebene Strafzettel: %1 </t>";   
            
                class level_1 {
                                      needed = 100;
                                      archiv = "Streifenbulle";
                          };
                 class level_2 {
                                      needed = 300;
                                      archiv = "Hüter der Bürger";
                          };
            
                  class level_3 {
                                      needed = 800;
                                      archiv = "Kaufhauscop";
                          };
            
                  class level_4 {
                                      needed = 2500;
                                      archiv = "König der Hüter";
                          };
            
                  class level_5 {
                                      needed = 5000;
                                      archiv = "König der Könige";
                          };
              };
        
          
        };
      Alles anzeigen

      Schritt 2:

      Wir gehen in die Datei: fn_ticketGive.sqf und ersetzen diese mit

      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_ticketGive.sqf
          Author: Bryan "Tonic" Boardwine
          Modified by: Natic
      
          Description:
          Gives a ticket to the targeted player.
      */
      private ["_val","_ticketcount"];
      if (isNil "life_ticket_unit") exitWith {["Keine Person","Person für das Ticket ist nil!", true, "fast"] spawn ESG_fnc_notify;};
      if (isNull life_ticket_unit) exitWith {["Keine Person","Die Person für das Ticket gibt es nicht!", true, "fast"] spawn ESG_fnc_notify;};
      
      _val = ctrlText 2652;
      _ticketcount = 0;
      
      if (!([_val] call TON_fnc_isnumber)) exitWith {["Keine Zahl","Du hast keine echte Zahl eingegeben!", true, "fast"] spawn ESG_fnc_notify;};
      if ((parseNumber _val) > 500000) exitWith {["Zu hohes Bußgeld","Strafzettel können nicht mehr als $500.000 betragen!", true, "fast"] spawn ESG_fnc_notify;};
      if (playerside isEqualTo west)then {
          [0,"STR_Cop_TicketGive",true,[profileName,[(parseNumber _val)] call life_fnc_numberText,life_ticket_unit getVariable ["realname",name life_ticket_unit]]] remoteExecCall ["life_fnc_broadcast",RCLIENT];
      }
      else
      {
          [0,"STR_Med_TicketGive",true,[profileName,[(parseNumber _val)] call life_fnc_numberText,life_ticket_unit getVariable ["realname",name life_ticket_unit]]] remoteExecCall ["life_fnc_broadcast",RCLIENT];
      };
      [player,(parseNumber _val)] remoteExec ["life_fnc_ticketPrompt",life_ticket_unit];
      closeDialog 0;
      
          _ticketcount = _ticketcount + 1;
          
          private ["_lvl_1","_lvl_2","_lvl_3","_lvl_4","_lvl_5"];
          
          _lvl_1 = getText(missionConfigFile >>"cfgArchives" >> "tickets" >> "level_1","archiv");
          _lvl_2 = getText(missionConfigFile >>"cfgArchives" >> "tickets" >> "level_2","archiv");
          _lvl_3 = getText(missionConfigFile >>"cfgArchives" >> "tickets" >> "level_3","archiv");
          _lvl_4 = getText(missionConfigFile >>"cfgArchives" >> "tickets" >> "level_4","archiv");
          _lvl_5 = getText(missionConfigFile >>"cfgArchives" >> "tickets" >> "level_5","archiv");
          
          if (_ticketcount == 100) then {
          if (getNumber(missionConfigFile >>"cfgArchives" >> "tickets" >> "level_1","needed")) then {
                      lbAdd [100100, "%1",_lvl_1];
          };
          };
          if (_ticketcount == 300) then {
          if (getNumber(missionConfigFile >>"cfgArchives" >> "tickets" >> "level_1","needed")) then {
              lbAdd [100100, "%1",_lvl_2];
          };
          };
          if (_ticketcount == 800) then {
          if (getNumber(missionConfigFile >>"cfgArchives" >> "tickets" >> "level_1","needed")) then {
              lbAdd [100100, "%1",_lvl_3];
          };
          };
          if (_ticketcount == 2500) then {
          if (getNumber(missionConfigFile >>"cfgArchives" >> "tickets" >> "level_1","needed")) then {
              lbAdd [100100, "%1",_lvl_4];
          };
          };
          if (_ticketcount == 5000) then {
          if (getNumber(missionConfigFile >>"cfgArchives" >> "tickets" >> "level_1","needed")) then {
              lbAdd [100100, "%1",_lvl_5];
          };
          };
      Alles anzeigen

      Schritt3: Wir erstellen ein Dialog:

      Code
      /*
          Author: Natic
      */
      class sealife_archivements {
          idd = 100100;
          name = "sealife_archivements";
          onLoad = "";
          onUnLoad = "";
          movingEnable = false;
          enableSimulation = false;
      
          class controlsBackground {
              class bg: Life_RscPicture
              {
                  idc = -1;
                  text = "ure\misc\bg_menu.paa";
                  x = 0.17 * safezoneW + safezoneX;
                  y = 0.115 * safezoneH + safezoneY;
                  w = 0.665156 * safezoneW;
                  h = 0.693 * safezoneH;
                  ColorBackground[] = {0.784313,0.784313,0.784313,0};
                  ColorText[] = {0,0,0,1};
              };
              class title: Life_RscStructuredText
              {
                  idc = 5999;
                  text = "<t align'right' font'PuristaBold' size'1.5'>Archivements</t>";
                  x = 0.412621 * safezoneW + safezoneX;
                  y = 0.169549 * safezoneH + safezoneY;
                  w = 0.154687 * safezoneW;
                  h = 0.033 * safezoneH;
                  ColorBackground[] = {0,0,0,0};
              };
          };
          class controls {
              class btn_submit: Life_RscButtonMenu
              {
                  idc = 2400;
                  text = "Schließen";
                  onButtonClick = "";
                  x = 0.647855 * safezoneW + safezoneX;
                  y = 0.034475 * safezoneH + safezoneY;
                  w = 0.221719 * safezoneW;
                  h = 0.055 * safezoneH;
                  ColorBackground[] = {0.145098,0.145098,0.145098,1};
                  ColorText[] = {1,1,1,1};
              };
              class archives_list: Life_RscListbox
              {
                  idc = 100101;
                  x = 0.209235 * safezoneW + safezoneX;
                  y = 0.232345 * safezoneH + safezoneY;
                  w = 0.752604 * safezoneW;
                  h = 0.722222 * safezoneH;
                  ColorBackground[] = {0,0,0,0.705882};
                  ColorText[] = {1,1,1,1};
                  colorSelectBackground[] = {0,0,0,1};
                  colorSelect[] = {0,0,0,1};
              };
          };
      };
      Alles anzeigen

      Ich hoffe ich konnte euch ggf. Helfen

      viel spaß

    • [Vorführung] Staffmanger --- Verwalte deine Community ---

      • Natic
      • 22. März 2019 um 23:11

      Es wurde eine normale Windows Form Anwendung verwendet und keine WPF Anwendung.

      Dennoch kann das Programm in WÖF übertragen werden ;)

    • All Players Disconect nach Restart!?

      • Natic
      • 22. März 2019 um 13:07

      deshalb sagte ich, eine Lösung wäre bat datei schreiben, oder launcher programmieren die beim start den chache löscht

    • [Vorführung] Staffmanger --- Verwalte deine Community ---

      • Natic
      • 20. März 2019 um 22:22

      Wie blackfisch sagte, bleibt es kostenlos.

      Für extra Anpassungen kann man über einen Betrag auch sprechen. Grundsätzlich sind die 49.99 auf einer Version bezogen, die nichts mit Arma zu tun hat, sondern wirklich für richtige Firmen.

      Da dennoch einige Communitys kleine Änderungen wollen, können diese durch kleine Beträge angepasst werden.

      Zum Thema Webseite und technicZone

      Die Webseite ist deshalb nicht online, da die in Arbeit ist, ebenfalls ist noch nichts online, auch nicht die Software;)

      Und ja Julian es ist in C# ich Programmier Anwendungen nur damit

    • [Vorführung] Staffmanger --- Verwalte deine Community ---

      • Natic
      • 20. März 2019 um 14:15

      #INFORMATION

      Die o.g. Software wird in 3 Kategorien eingeteilt.

      • Communityverwaltung
      • Firmenverwaltung (Mitabeiter etc)
      • Extra Funktionen (Auf Anfrage)

      Die Community-Verwaltung für eine Arma3 Communtiy wie die Bilder es zeigen, wird

      Kostenlos.

      Die Extra Funktionen, Firmenverwaltung beträgt Jährlich 49.99€

      Die Community-Verwaltung außerhalb der Arma Community beträgt ggf. 29.99€

      Ich weiß, jetzt will ich für andere Dinge wieder Geld. Doch die Firmensoftware Beispielsweise

      ergibt einer wirklichen Firma wie (ÜBERTRIEBEN) Apple, Samsung viele Vorteile.

      Da ist der Jährliche Preis von 49.99€ angemessen.

      MfG

      Natic

    • All Players Disconect nach Restart!?

      • Natic
      • 19. März 2019 um 10:10

      es liegt daran da du schon die Mission mit dem selben Namen im Cache hast, da aber jetzt Änderungen stattgefunden haben geht es nicht mehr also entweder Neustarten oder Namen ändern

    • All Players Disconect nach Restart!?

      • Natic
      • 19. März 2019 um 10:09

      Du kannst es ändert, in dem du immer die Mission umbenennst, im Prinzip kannst du eine bat oder sh Datei erstellen die die Pbo immer umbenennt Beispiel:

      Server.V.1.Altis

      Bzw selbst umbenenne wenn du Änderungen gemacht hast

    • Arma 3 - Altis Life 5.0 | Farm Zone in Höhe verschieben

      • Natic
      • 19. März 2019 um 00:05

      Entweder bin ich dumm, oder das ist hier nicht der richtige Bereich ;)

    • [Vorführung] Staffmanger --- Verwalte deine Community ---

      • Natic
      • 14. März 2019 um 17:51

      Tricey das ist eine gute Frage, dass weiß ich leider noch nicht.

      Man wird aber aber Namen die jeweils oben Angegeben sind ändert können uns zwischen 2 Designs wählen. ich werde eventuell ein Editor einbauen das man

      das Design via Templates ändern kann

    • [Vorführung] Staffmanger --- Verwalte deine Community ---

      • Natic
      • 13. März 2019 um 21:25
      Zitat von Mike Armstrong

      Sieht gut aus!

      Vielen Dank

      Zitat von Samlixmda

      hätte mega Interesse^^

      Es wird sobald es fertig ist online gehen ;)

      Diese Tool wird aber nach Zeit Lust und Laune gemacht

    • [Vorführung] Staffmanger --- Verwalte deine Community ---

      • Natic
      • 13. März 2019 um 18:09

      Moin NN,

      ich entwickelte eine Verwaltungssoftware für das Sealife Projekt.

      Da ich bei diesem Projekt nicht mehr bin, möchte ich dieses fertig stellen und euch zu Verfügung stellen.

      Funktionen der Software

      • Polizeiverwaltung:
        • Abmeldungen (Melde dich vom Dienst ab, je nach Berechtigung kannst du logischerweise die Abmeldungen einsehen)
        • Ausbildungen ausschreiben (Die Polizei (Admins) können Benutzer zu einer Ausbildung hinzufügen, diese können dann vom Benutzer angezeigt werden) (Einstellbar ob alle oder nur ausgewählte Ausbildungen sichtbar für den jeweiligen Benutzer ist)
        • Polizisten bewerten (Bewerte andere Polizisten)
      • Feuerwehrverwaltung
        • Abmeldungen (Melde dich vom Dienst ab, je nach Berechtigung kannst du logischerweise die Abmeldungen einsehen)
        • Ausbildungen ausschreiben (Die Feuerwehr(Admins) können Benutzer zu einer Ausbildung hinzufügen, diese können dann vom Benutzer angezeigt werden) (Einstellbar ob alle oder nur ausgewählte Ausbildungen sichtbar für den jeweiligen Benutzer ist)
        • Feuerwehrbeamte bewerten (Bewerte andere Polizisten)
      • Support
        • erstelle Supportfälle
        • Terminkalender
        • erstelle Benutzergruppen die im Profil angezeigt werden
        • Einstellbar ob man über das Tool Whitelisten möchte

      Das Tool ist ja mit der Datenbank verbunden, aber wie?

      ==> Alle Abläufe die über wichtige Daten laufen, sind über eine Verschlüsselung bzw API gesteuert.

      Wie kriege ich das Tool?

      ==> Es wird sobald es fertig ist, hier kostenlos zu Verfügung gestellt

      Kostenlos geillll

      ==> Ja, Kostenlos, die Community versagt schon so...

      Kann man auf Wunsch mehr Funktionen einbauen?

      => Aktuell kann dies noch nicht für jeden selbst gemacht werden, für das Tool kommen aber Updates (Tool updatet sich selbst)

      => Es wird ein Plugin Verwalter kommen, wo man Plugins einfügen kann ^^

      Hier ein paar Bilder:

      e1900b-1552497002.png

      Das Bilder hochladen hat anders nicht funktioniert ... sry...

      MfG

      Natic

    • [Einführung - C#] Anleitung / Buch über C#

      • Natic
      • 13. März 2019 um 14:01

      Beitrag wird stets weiterentwickelt...

    • [Einführung - C#] Anleitung / Buch über C#

      • Natic
      • 13. März 2019 um 14:00

      Moin NN,

      da die Programmiersprache C# sehr vielfältig ist, habe ich mir überlegt euch eine kleine Einführung
      in C# zu machen.

      Ihr solltet beachten, dass es keine völlig Ausführliche Anleitung ist, sondern nur eine kleine Information.
      Ich werde diesen Beitrag aber Stück für Stück erweitern.

      Ebenfalls empfehle ich Menschen die C# von Grund auf lernen wollen das Microsoft Visual C# 2010 - Das Entwicklerbuch

      STAND: 13.03.2019 | 17:30

      reiner Programmcode einer Windows Form Anwendung:

      Spoiler anzeigen

      using System;

      using System.Collections.Generic;

      using System.ComponentModel;

      using System.Data;

      using System.Drawing;

      using System.Linq;

      using System.Text;

      using System.Threading.Tasks;

      using System.Windows.Forms;

      namespace WindowsFormsApplication1

      {

      public partial class Form1 : Form

      {

      public Form1()

      {

      InitializeComponent();

      }

      }

      }

      Beschreibung des o.g. Codes:

      - Abkürzung: C# Dateiendung ist .cs

      - using ...: bindet weitere Komponenten ein, diese können manuell hinzugefügt werden, oder von den Automatisch Installierten Anwendung Erweiterungen hinzugefügt werden.

      - namespace: Dies ist eure Programmname, solltet ihr euer Programm 123456789 benennen, wird

      der namespace zu 123456789 benannt. weiteres zum Namespace folgt.

      - public partial class Form1 : Form: dies ruft die Form 1 auf, diese könnt ihr ebenfalls einen xy Namen geben. Hier könnt ihr z.B Globale Variablen speichern, diese könnt ihr dann im gesamten Programm aufrufen.

      - ACHTUNG: Dies sind keine vollständigen Informationen zum Code!

      Binär/Dezimal/Hexadezimal - System:

      Spoiler anzeigen

      Binär zu Dezimal

      0 1 1 0

      man liest den 0110 Code von Rechts nach links

      hier die jeweiligen Stellen

      8 4 2 1

      somit ist der Code 0110

      4+2 = 6

      Wir haben aus Binär auf Dezimal umgewandelt

      Spoiler anzeigen

      Dezimal in Binär

      Zahl: 6

      Hierzu wird die Module Division angewendet,

      die Umwandlungen sind in der reinen Programmierung nicht nötig zum Anwenden, trotzdem sollte man verstehen, wie

      das ganze Abläuft, erst dann sollte man weiter gehen und die weiteren Schritte lernen.

      Video folgt..

      Variablen & Typen:

      Spoiler anzeigen

      Meist verwendete Typen:

      - string => Für Buchstaben wie z.B string = "DeinPasswort"

      - int => ganze Zahlen => 0,1,2,3,4,5,6,7,8,9 ...

      - bool => Zeichen => true oder false

      - char => Wahrheitswerte

      - var => Typ wird vom Compiler festgelegt => Bsp: var webserver = new Webserver();

      - float => Kommazahlen => 0.5 ...

      - decimal => 128 Bit, Bereich mindestens -7,9 × 10-28 bis 7,9 x 1028, mit einer Genauigkeit von mindestens 28 Stellen


      Dann gibt es noch bestimmte Typen (Ganzzahlig mit Vorzeichen)

      - sbyte => Bit -128 bis 127

      - short => 16 Bit, Bereich von -32.768 bis 32.767

      - long => 64 Bit, Bereich von -9.223.372.036.854.775.808 bis

      Ganzzahlig ohne Vorzeichen

      - byte => 8 Bit, Bereich von -0 bis 255

      -ushort => 16 Bit, Bereich von 0 bis 65.535

      -uint => 32 Bit, Bereich von 0 bis 4.294.967.295

      - ulong => 64 Bit, Bereich von 0 bis 18.446.744.073.709.551.615

      Spoiler anzeigen

      Operatoren:

      Arithematische operatoren

      + Addition

      - subtrahieren

      * Multiplikation

      / Division

      Zuweisungsoperatoren

      > größer als

      < kleiner als

      <= kleiner gleich

      >= größer gleich

      = Wert Zuweisung

      == Gleich

      != ungleich

      Zusammen - Gesetze - Operatoren

      Bei den Z-G-Operatoreen könnt ihr nur ein Arithematische Operator und einen Zuweisungs Operator benutzen.

      Beispiel:

      i += 1 //Dies entspricht, dass i + 1 und = 1 ist.

      Kl. Beispiele:

      bool i = true;

      if (!= i) //Wenn i false ist //Wegen Ungleich

      Präfix und Postfix:

      Spoiler anzeigen

      Präfix und Postfix nehmen die Variablen immer + oder -

      Beispiel:

      if (i >= 10)

      ++i

      Sollte i größer oder gleich 10 sein, wird die Zahl 10 zuerst + genommen

      Bei i++ sprich das ++ hinter der Variable nimmt erst nach dem 10 erreicht ist +. Dies wird in einem Video nochmal besser erklärt.

      Das selbse Prinzip gibt es auch mit --

      Postfix --i und Präfix i--

      Also Postfix ist immer vor und Präfix hinter der Variable ^^

      Formatierungszeichen:

      Spoiler anzeigen

      \\ Backslash

      \n neue Zeile

      \b Backspace

      \t Tabulator

      Block-Anweisung und Schleifen erstellen:

      Spoiler anzeigen

      Block-Anweisung:

      bei einer Blockanweisung / Schleife gibt es die Bedingung, die Initialisierung und die reinitialisierung.

      int Name = zuweisung

      if (Bedingung) {

      ... } else { ...}

      While-Schleife:

      Spoiler anzeigen
      Code
      int i = 1;
      while(i <= 100) {
          i++;
          Console.WriteLine(i);
      }

      Do-While Schleife:

      Spoiler anzeigen

      do while Schleife

      int i = 0; //initialisierung (Variable Zuweisung)

      do {

      Console.Writeline(i) //ausgabe

      i += 2; //Reinitialisierung

      } while (i <= 10); //Bedingung

      For-Schleife

      Spoiler anzeigen

      for (i = 10; i >= 0; --i)

      {

      Console.WriteLine(i);

      }

      ich werde diesen Beitrag jeden Tag erweitern.

    • C# - 0 / 1 in Text umwandeln

      • Natic
      • 11. März 2019 um 16:30

      #UPDATE

      Moin NN,

      das Text in Bits und Bits in Text umgewandelt werden habe ich mit einer selbst zusammen gedachte Methode nun geschafft.

      Doch zurzeit habe ich den Text / die Bits in einer Variable gespeichert, doch die Bits sollen ja von dem Scanner empfangen und dort gespeichert werden,

      wisst ihr wie ich Abfrage, welche bits der Scanner empfangen hat?

    • C# - 0 / 1 in Text umwandeln

      • Natic
      • 8. März 2019 um 09:59

      Moin,

      Ich würde gerne die empfangenen 0 und 1 des Scanners in Text angezeigt bekommen. Wie ich 0 und 1 in Text wandle weiß ich, doch wisst ihr, wie ich den angesprochenen Scanner die Werte Abfrage? Hier der Code:

      C#
      Main.cs
      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Drawing.Imaging;
      using System.Linq;
      using System.Text;
      using System.Windows.Forms;
      using WIATest;
      using System.IO;
      using System.Net;
      using System.Net.Sockets;
      using System.Threading;
      
      namespace Scannerapplication
      {
       public partial class Form1 : Form
       {
      
       public Form1()
       {
       InitializeComponent();
       }
       //button click event
       private void btn_scan_Click(object sender, EventArgs e)
       {
       MessageBox.Show("Die Verbindung muss bei jedem neustart erfolgen!");
       try
       {
       //get list of devices available
       List<string> devices = WIAScanner.GetDevices();
      
       foreach (string device in devices)
       {
       lbDevices.Items.Add(device);
       }
       //check if device is not available
       if (lbDevices.Items.Count == 0)
       {
       MessageBox.Show("Es wurden keine WIA Scanner gefunden");
       }
       else
       {
       lbDevices.SelectedIndex = 0;
       }
       //get images from scanner
       List<Image> images = WIAScanner.Scan((string)lbDevices.SelectedItem);
       foreach (Image image in images)
       {
       pic_scan.Image = image;
       pic_scan.Show();
       pic_scan.SizeMode = PictureBoxSizeMode.StretchImage;
       //save scanned image into specific folder
       image.Save(@"E:\" + DateTime.Now.ToString("yyyy-MM-dd HHmmss") + ".jpeg", ImageFormat.Jpeg);
       }
       }
       catch (Exception exc)
       {
       MessageBox.Show(exc.Message);
       }
       }
      
      
       private void Home_SizeChanged(object sender, EventArgs e)
       {
       int pheight = this.Size.Height - 153;
       pic_scan.Size = new Size(pheight - 150, pheight);
       }
      
       private void btn_start_Click(object sender, EventArgs e)
       {
       WebServer ws = new WebServer(SendResponse, "http://localhost:8080/index/");
       ws.Run();
       }
       public static string SendResponse(HttpListenerRequest request)
       {
       return string.Format("<HTML><BODY>BinaryDP<br>{0}</BODY></HTML>", DateTime.Now);
       }
       }
      }
      Alles anzeigen
      C#
      Klasse für den Scanner 
      using System;
      using System.Collections.Generic;
      using System.IO;
      using System.Drawing;
      
      namespace WIATest
      {
       class WIAScanner
       {
       const string wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}";
       class WIA_DPS_DOCUMENT_HANDLING_SELECT
       {
       public const uint FEEDER = 0x00000001;
       public const uint FLATBED = 0x00000002;
       }
       class WIA_DPS_DOCUMENT_HANDLING_STATUS
       {
       public const uint FEED_READY = 0x00000001;
       }
       class WIA_PROPERTIES
       {
       public const uint WIA_RESERVED_FOR_NEW_PROPS = 1024;
       public const uint WIA_DIP_FIRST = 2;
       public const uint WIA_DPA_FIRST = WIA_DIP_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
       public const uint WIA_DPC_FIRST = WIA_DPA_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
       //
       // Scanner only device properties (DPS)
       //
       public const uint WIA_DPS_FIRST = WIA_DPC_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
       public const uint WIA_DPS_DOCUMENT_HANDLING_STATUS = WIA_DPS_FIRST + 13;
       public const uint WIA_DPS_DOCUMENT_HANDLING_SELECT = WIA_DPS_FIRST + 14;
       }
       /// <summary>
       /// Use scanner to scan an image (with user selecting the scanner from a dialog).
       /// </summary>
       /// <returns>Scanned images.</returns>
       public static List<Image> Scan()
       {
       WIA.ICommonDialog dialog = new WIA.CommonDialog();
       WIA.Device device = dialog.ShowSelectDevice(WIA.WiaDeviceType.UnspecifiedDeviceType, true, false);
       if (device != null)
       {
       return Scan(device.DeviceID);
       }
       else
       {
       throw new Exception("You must select a device for scanning.");
       }
       }
      
       /// <summary>
       /// Use scanner to scan an image (scanner is selected by its unique id).
       /// </summary>
       /// <param name="scannerName"></param>
       /// <returns>Scanned images.</returns>
       public static List<Image> Scan(string scannerId)
       {
       List<Image> images = new List<Image>();
       bool hasMorePages = true;
       while (hasMorePages)
       {
       // select the correct scanner using the provided scannerId parameter
       WIA.DeviceManager manager = new WIA.DeviceManager();
       WIA.Device device = null;
       foreach (WIA.DeviceInfo info in manager.DeviceInfos)
       {
       if (info.DeviceID == scannerId)
       {
       // connect to scanner
       device = info.Connect();
       break;
       }
       }
       // device was not found
       if (device == null)
       {
       // enumerate available devices
       string availableDevices = "";
       foreach (WIA.DeviceInfo info in manager.DeviceInfos)
       {
       availableDevices += info.DeviceID + "\n";
       }
      
       // show error with available devices
       throw new Exception("The device with provided ID could not be found. Available Devices:\n" + availableDevices);
       }
       WIA.Item item = device.Items[1] as WIA.Item;
       try
       {
       // scan image
       WIA.ICommonDialog wiaCommonDialog = new WIA.CommonDialog();
       WIA.ImageFile image = (WIA.ImageFile)wiaCommonDialog.ShowTransfer(item, wiaFormatBMP, false);
      
       // save to temp file
       string fileName = Path.GetTempFileName();
       File.Delete(fileName);
       image.SaveFile(fileName);
       image = null;
       // add file to output list
       images.Add(Image.FromFile(fileName));
       }
       catch (Exception exc)
       {
       throw exc;
       }
       finally
       {
       item = null;
       //determine if there are any more pages waiting
       WIA.Property documentHandlingSelect = null;
       WIA.Property documentHandlingStatus = null;
       foreach (WIA.Property prop in device.Properties)
       {
       if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_SELECT)
       documentHandlingSelect = prop;
       if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_STATUS)
       documentHandlingStatus = prop;
       }
       // assume there are no more pages
       hasMorePages = false;
       // may not exist on flatbed scanner but required for feeder
       if (documentHandlingSelect != null)
       {
       // check for document feeder
       if ((Convert.ToUInt32(documentHandlingSelect.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_SELECT.FEEDER) != 0)
       {
       hasMorePages = ((Convert.ToUInt32(documentHandlingStatus.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_STATUS.FEED_READY) != 0);
       }
       }
       }
       }
       return images;
       }
      
       /// <summary>
       /// Gets the list of available WIA devices.
       /// </summary>
       /// <returns></returns>
       public static List<string> GetDevices()
       {
       List<string> devices = new List<string>();
       WIA.DeviceManager manager = new WIA.DeviceManager();
       foreach (WIA.DeviceInfo info in manager.DeviceInfos)
       {
       devices.Add(info.DeviceID);
       }
       return devices;
       }
       }
      }
      Alles anzeigen

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™