Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Prüfen ob das aktuelle Fenster den Focus hat

Mitglied: Power-Poler

Power-Poler (Level 1) - Jetzt verbinden

11.11.2013 um 18:11 Uhr, 2306 Aufrufe, 12 Kommentare, 2 Danke

Abend

Versuche michgerade daran, das Spiel SNAKE in C zu Programmiern.
Soweit funktioniert auch alles, die Schlange bewegt sich, frist kleine '#' und wächst dabei.
Auch kann sie sich selbst beisen und man verliert.

Nun zu meinem Problem.
Die gedrükte Pfeiltaste frage ich mit:
GetAsyncKeyState(Links oder rechts oder rauf oder runter, jenachdem welche taste ich abfragen möchte ob sie gedrückt wurde)
Also zum Beispiel:
GetAsyncKeyState(VK_LEFT);

nun zu meinem Problem.
Wenn ich das CMD fenster, in dem sich die Schnlage bewegt aus dem Focus nehme, werden die Pfeiltasten trotzdem noch eingelsen.

Also wenn ich in einem Ordner Pfeil hoch oder runter drücke, bewegt sich im Hintergrund die Schlange.

Gibt es hier eine Möglichgeit sowas in den Programmcode einzuarbeiten:
if(Ja ich habe den Focus)
um eine Weitere richtingsänderung der Schlange zu unterbinden, wenn das CMD Fenster nicht den Focus hat?

Schonmal Danke für eine Antwort

Mfg
Power-Poler
Mitglied: rubberman
11.11.2013 um 19:04 Uhr
Hallo Power-Poler,

rein empirisch würde ich ja ein getch() in eine Threadfunktion packen, dann hat sich dein Problem von selbst erledigt. Wer braucht schon GetAsyncKeyState()
Ansonsten, schau mal ins MSDN, da findest du WinAPIs, wie GetActiveWindow() oder GetFocus().

Grüße
rubberman
Bitte warten ..
Mitglied: Power-Poler
11.11.2013 um 19:18 Uhr
Danke für deine Antwort.
GetFocus(), habe ich bereits probiert, da steht im Debug immer "Speicher kann nicht gelesen werden"
GetActiveWindow() schau ich mir mal an.

Naja getch() würde zwar gehen, aber dan würde die Schlange auf Input warten, was ja nicht sin der Sache ist.
Sie soll sich ja bei keinen Tastendruck von sich aus bewegen.
Bitte warten ..
Mitglied: rubberman
11.11.2013 um 21:19 Uhr
Zitat von Power-Poler:
Naja getch() würde zwar gehen, aber dan würde die Schlange auf Input warten, was ja nicht sin der Sache ist.

Darum habe ich von einer Threadfunktion gesprochen, die asynchron auf Input wartet

Grüße
rubberman
Bitte warten ..
Mitglied: Power-Poler
20.11.2013 um 16:40 Uhr
Habe es jetzt mit GetAktiveWindow versucht, bekomme immer noch den Fehler "Speicher kann nicht gelesen werden".

Wie genau könnte ich einen solche asynchronen Threadfunktion erzeugen?
Bitte warten ..
Mitglied: rubberman
20.11.2013, aktualisiert um 18:33 Uhr
Naja, das ist nicht sooo schwer. Für Standard-C gibt es da _beginthread() und _beginthreadex(), Die WinAPI hätte da auch noch was zu bieten, aber für deine Zwecke reicht die erstgenannte Funktion völlig aus. Im MSDN findet sich wie immer die entsprechende Referenz. Wie du siehst wird die entsprechende Funktion übergeben, die als Thread laufen soll. Ebenso ist es möglich einen Parameter für die Threadfunktion als Voidpointer zu übergeben. Das bedeutet für die Threadfunktion, dass sie immer vom Typ void ist (also keinen Wert zurück geben kann) und einen Parameter vom Typ void* akzeptiert. Dieser zeigt dann auf den Speicherbereich der vorher deklarierten Variable aus der aufrufenden Funktion.

Mal ein Beispiel mit entsprechenden Kommentaren.
01.
#include <windows.h>
02.
#include <process.h>
03.
#include <stdio.h>
04.
#include <conio.h>
05.

06.
// vordefinierte Werteliste
07.
#define ESC    27 // Escape       (ASCII 27)
08.
#define RIGHT 333 // Pfeil rechts (256 + Scancode 77)
09.
#define LEFT  331 // Pfeil links  (256 + Scancode 75)
10.
#define UP    328 // Pfeil oben   (256 + Scancode 72)
11.
#define DOWN  336 // Pfeil unten  (256 + Scancode 80)
12.

13.
void __cdecl Fn_GetKey(void *const pInt); // Prototyp der Threadfunktion
14.

15.
int main(void)
16.
{
17.
  int iInput = 0; // Wert wird von der Threadfunktion geändert
18.
  char chOutput = '\x0f'; // Startzeichen
19.

20.
  // Threadfunktion aufrufen, Zeiger auf iInput wird übergeben
21.
  if (_beginthread((void(*)(void*))Fn_GetKey, 0, (void*)&iInput) == ((uintptr_t)(intptr_t)-1))
22.
    return EXIT_FAILURE; // wenn Thread nicht erstellt werden konnte, raus hier
23.

24.
  while (iInput != ESC) // Endlosschleife bis Escape
25.
  {
26.
    switch(iInput)
27.
    {
28.
      case RIGHT:
29.
        chOutput = '\x10';
30.
        break;
31.
      case LEFT:
32.
        chOutput = '\x11';
33.
        break;
34.
      case UP:
35.
        chOutput = '\x1e';
36.
        break;
37.
      case DOWN:
38.
        chOutput = '\x1f';
39.
    }
40.

41.
    printf("%c\n", chOutput); // Ausgabe
42.
    Sleep(200);
43.
  }
44.

45.
  return EXIT_SUCCESS;
46.
}
47.

48.
// Threadfunktion, Parameter *pInt ist Zeiger auf Speicherbereich von iInput
49.
void __cdecl Fn_GetKey(void *const pInt)
50.
{
51.
  int iKey = 0;
52.

53.
  do // Endlosschleife bis Escape
54.
  {
55.
    iKey = _getch(); // Warte auf Tastatureingabe
56.
    // Bei F- oder Pfeiltasten, gibt der erste Aufruf 0 oder 224 zurück
57.
    // Führe _getch() erneut aus um den Scancode aus dem Puffer zu lesen
58.
    // http://msdn.microsoft.com/en-us/library/aa299374(v=vs.60).aspx
59.
    if (iKey == 0 || iKey == 224)
60.
      iKey = 256 + _getch(); // 256 wird zwecks Unterscheidung zu ASCII Werten addiert
61.

62.
    *((int*)pInt) = iKey; // Schreibe neuen Wert in den adressierten Speicherbereich
63.

64.
  } while (iKey != ESC);
65.

66.
  _endthread(); // Thread beenden
67.
}
Wie du siehst, reagiert das Programm auf Pfeiltasten und Esc zum Beenden. Die Schleife in der Mainfunktion läuft unabhängig davon weiter, während der Wert für iInput in der Threadfunktion verändert wird.
Soweit ziemlich simpel, oder?

Grüße
rubberman
Bitte warten ..
Mitglied: Power-Poler
21.11.2013 um 17:02 Uhr
Vielen Dank, funktioniert einwandfrei.
Glaube auch das die Eingabe direkter ist als vorher.
(Versuche gerade die Funktion zu Hintersteigen, weshalb dort eigendlich nur void drinsteht.
Laut der libary scheint es ein start_address zu sein. Weshalb die Funktion aber auch ohne auskommt, weiß ich ja gerade nicht)
Achso, kann man damit auch gleichzeitigen Tastendruck abfragen?
Also zum Beispiel die Leertaste und eine Richtungstaste, oder links und hoch für diagonal nach oben?
Kann dir gerne meinen Quellcode zuschicken, kann ihn natürlich auch hier veröffentlichen, würde ich aber nur sehr ungern machen.
Wahrscheinlich wird man am code auch erkennen das ich noch Anfänger bin, behelfe mir einiger (wie ich finde) unschöner "Tricks" für bestimmte Bedingungen.

Nochmal vielen Dank für deine Hilfe
Bitte warten ..
Mitglied: rubberman
21.11.2013, aktualisiert um 23:48 Uhr
Zitat von Power-Poler:

Laut der libary scheint es ein start_address zu sein.
Gemeint ist die Startadresse der Funktion. Das ist lediglich ein Name und steht dort eigentlich zum besseren Verständnis und nicht um dich zu verwirren

Zitat von Power-Poler:

Achso, kann man damit auch gleichzeitigen Tastendruck abfragen?
Dazu solltest du dir vielleicht GetKeyboardState() ansehen. Diese Funktion füllt ein Bytearray mit dem Status aller Tasten, bei dem du mit bitweisem UND prüfen kannst ob eine bestimmte Taste gedrückt wurde. Mit logischem UND kannst du mehrere solcher Tests zusammenfassen, um herauszufinden ob bestimmte Tastenkombinationen gedrückt wurden. (Ist aber nur Theorie, hatte heute keine Zeit da was zu testen.)

Grüße
rubberman

EDIT:
Kurz skizziert für Kombinationen der Pfeiltasten ...
01.
#include <windows.h>
02.
#include <process.h>
03.
#include <stdio.h>
04.
#include <conio.h>
05.

06.
// vordefinierte Werteliste
07.
#define ESC         27 // Escape       (ASCII 27)
08.
#define RIGHT      333 // Pfeil rechts (256 + Scancode 77)
09.
#define LEFT       331 // Pfeil links  (256 + Scancode 75)
10.
#define UP         328 // Pfeil oben   (256 + Scancode 72)
11.
#define DOWN       336 // Pfeil unten  (256 + Scancode 80)
12.
#define UPRIGHT   1000 // 4 frei definierte Werte > 511
13.
#define UPLEFT    1001
14.
#define DOWNRIGHT 1002
15.
#define DOWNLEFT  1003
16.

17.
void __cdecl Fn_GetKey(void *const pInt); // Prototyp der Threadfunktion
18.

19.
int main(void)
20.
{
21.
  int iInput = 0; // Wert wird von der Threadfunktion geändert
22.
  char szOutput[3] = "\x0f"; // Startzeichen
23.

24.
  // Threadfunktion aufrufen, Zeiger auf iInput wird übergeben
25.
  if (_beginthread((void(*)(void*))Fn_GetKey, 0, (void*)&iInput) == ((uintptr_t)(intptr_t)-1))
26.
    return EXIT_FAILURE; // wenn Thread nicht erstellt werden konnte, raus hier
27.

28.
  while (iInput != ESC) // Endlosschleife bis Escape
29.
  {
30.
    switch(iInput)
31.
    {
32.
      case RIGHT:
33.
        strcpy(szOutput, "\x10");
34.
        break;
35.
      case LEFT:
36.
        strcpy(szOutput, "\x11");
37.
        break;
38.
      case UP:
39.
        strcpy(szOutput, "\x1e");
40.
        break;
41.
      case DOWN:
42.
        strcpy(szOutput, "\x1f");
43.
        break;
44.
      case UPRIGHT:
45.
        strcpy(szOutput, "\x1e\x10");
46.
        break;
47.
      case UPLEFT:
48.
        strcpy(szOutput, "\x1e\x11");
49.
        break;
50.
      case DOWNRIGHT:
51.
        strcpy(szOutput, "\x1f\x10");
52.
        break;
53.
      case DOWNLEFT:
54.
        strcpy(szOutput, "\x1f\x11");
55.
    }
56.

57.
    printf("%s\n", szOutput); // Ausgabe
58.
    Sleep(200);
59.
  }
60.

61.
  return EXIT_SUCCESS;
62.
}
63.

64.
// Threadfunktion, Parameter *pInt ist Zeiger auf Speicherbereich von iInput
65.
void __cdecl Fn_GetKey(void *const pInt)
66.
{
67.
  int iKey = 0;
68.
  BYTE rgKeys[256];
69.

70.
  do // Endlosschleife bis Escape
71.
  {
72.
    iKey = _getch(); // Warte auf Tastatureingabe
73.
    // Bei F- oder Pfeiltasten, gibt der erste Aufruf 0 oder 224 zurück
74.
    // Führe _getch() erneut aus um den Scancode aus dem Puffer zu lesen
75.
    // http://msdn.microsoft.com/en-us/library/aa299374(v=vs.60).aspx
76.
    if (iKey == 0 || iKey == 224)
77.
      iKey = 256 + _getch(); // 256 wird zwecks Unterscheidung zu ASCII Werten addiert
78.

79.
    GetKeyState(0); // Diesen Aufruf verstehe ich selbst nicht, funktioniert aber nicht ohne.
80.
    GetKeyboardState(rgKeys); // Den Status aller Tasten in rgKeys speichern.
81.

82.
    // Tastenkombinationen abfragen
83.
    // http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
84.
    if (rgKeys[VK_UP] & 0x80 && rgKeys[VK_RIGHT] & 0x80)
85.
      iKey = UPRIGHT;
86.
    else if (rgKeys[VK_UP] & 0x80 && rgKeys[VK_LEFT] & 0x80)
87.
        iKey = UPLEFT;
88.
      else if (rgKeys[VK_DOWN] & 0x80 && rgKeys[VK_RIGHT] & 0x80)
89.
          iKey = DOWNRIGHT;
90.
        else if (rgKeys[VK_DOWN] & 0x80 && rgKeys[VK_LEFT] & 0x80)
91.
            iKey = DOWNLEFT;
92.

93.
    *((int*)pInt) = iKey; // Schreibe neuen Wert in den adressierten Speicherbereich
94.

95.
  } while (iKey != ESC);
96.

97.
  _endthread(); // Thread beenden
98.
}
Bitte warten ..
Mitglied: rubberman
24.11.2013 um 18:51 Uhr
Ich hab mich noch mal kurz mit der ursprünglichen Frage beschäftigt.
Bei mir funktioniert es letztlich mit der Funktion GetGUIThreadInfo().
01.
#include <windows.h>
02.
#include <stdio.h>
03.
#include <stdlib.h>
04.

05.
int main()
06.
{
07.
  GUITHREADINFO gti; // http://msdn.microsoft.com/en-us/library/windows/desktop/ms632604(v=vs.85).aspx
08.
  HWND hwndMe = GetConsoleWindow(); // eigenes Fensterhandle
09.

10.
  memset(&gti, 0, sizeof(gti)); // Speicherbereich der Struktur von Datenmüll befreien
11.
  gti.cbSize = sizeof(gti); // Größe der Struktur muss laut Doku festgelegt werden
12.

13.
  for (;;) // Endlosschleife
14.
  {
15.
    GetGUIThreadInfo(0, &gti); // Struktur mit Daten füllen
16.

17.
    // Wenn die Member hwndActive und hwndFocus dem eigenen Fensterhandle entsprechen,
18.
    // solltest du davon ausgehen können, dass du eingehende Tastatureingaben auf dein
19.
    // Fenster anwenden kannst.
20.
    if (gti.hwndActive == hwndMe && gti.hwndFocus == hwndMe)
21.
      puts("JA");
22.
    else
23.
      puts("NEIN");
24.

25.
    Sleep(200);
26.
  }
27.
  return 0;
28.
}
Grüße
rubberman
Bitte warten ..
Mitglied: Power-Poler
17.02.2014 um 19:37 Uhr
Abend, sorry das ich mich schon wider melde.

Versuche mich gerade wider an einem kleinen Spiel
Dieses mal will ich das ganze etwas übersichtlicher und aufgeräumter im Quellcode haben.
Gerade versuche ich die main von der Funktion Fn_GetKey zu trennen.
Habe jetzt eine Quelle.cpp mit der main.
Eine input.cpp mit der Funktion Fn_GetKey
und eine input.h die das ganze vereinen soll.
Folgendes Problem.
Folgede if Abrfage in der main schlägt fehl:
01.
if (_beginthread((void(*)(void*))Fn_GetKey, 0, (void*)&iInput) == ((uintptr_t)(intptr_t)-1)) 
Wenn ich diese Bedingung weglasse gehts.
Meine eingaben werden ausgegeben (die int werte)
die Funktion "_beginthread" liefert 48 zurück, der rechte teil mit dem der wert verglichen wird -1.
Ich schätze mal das es nicht gerade sinnvoll ist, die Bedingung einfach wegzulassen.
Mache ich da irgendwas falsch, bzw mache ich einen Denkfehler?
Kann natürlich sein, das mein Denkfehler dort liegt, das ich überhaupt versuche das ganze voneinander zu trennen.

Schonmal danke für deine Antwort.
Bitte warten ..
Mitglied: rubberman
17.02.2014, aktualisiert um 20:55 Uhr
Hallo Power-Poler.

Die Bedingung macht durchaus Sinn. Wie du in der Referenz zu _beginthread nachlesen kannst, gibt die Funktion den Wert -1L zurück, wenn sie fehlschlägt. Darum lasse ich oben im Code das Programm per return EXIT_FAILURE; enden, sobald dieser Fall eintritt. Wenn die Funktion in deinem Fall 48 zurückgibt, ist also alles in Ordnung. Was folgt denn bei dir auf diese Bedingung?

Zitat von Power-Poler:

Kann natürlich sein, das mein Denkfehler dort liegt, das ich überhaupt versuche das ganze voneinander zu trennen.
Geschmackssache.
Du musst natürlich bedenken, was beim Kompilieren passiert. Jede *.cpp Datei (wieso eigentlich cpp, wenn du C Code schreibst?) wird separat zu einer Objektdatei kompiliert. Erst der Linker macht aus den einzelnen Objektdateien die *.exe. Im Normalfall hat der Compiler also immer nur eine Quelldatei im Auge und versucht den Code darin zu optimieren.
Ergo: Wenn du die Mainfunktion von den darin aufgerufenen Funktionen trennst, mag das für dich übersichtlicher werden, den Compiler beschneidest du aber damit in seiner Fähigkeit den Gesamtcode zu optimieren. Der Zugewinn an Übersichtlichkeit ist marginal, der Performanceverlust deines Programms kann dagegen oft überwiegen. Einfach alle unterschiedlichsten Funktionen in ein separates Paar Quell- und Headerdateien zu packen macht im Zweifelsfall keinen Sinn. Sinnvoll wäre allerdings die Präprozessoranweisungen (wie #define ...) und die Funktionsprototypen in eine Headerdatei zu bringen. Das Includieren dieses Headers lässt den Compiler den Code des Headers an dieser Stelle einlesen (so, als würde er dort geschrieben stehen). Das erhöht die Übersichtlichkeit und behindert den Compiler in keinem Fall.

Bei großen Projekten solltest du schon trennen, um den Überblick nicht zu verlieren. Dann aber so, dass es sinnvoll wird. Bspw. alle Funktionen und Strukturen, die einem bestimmten Themenzweck dienen, zusammen mit denen, die evtl. von diesen aufgerufen werden, zusammenfassen.

Grüße
rubberman
Bitte warten ..
Mitglied: Power-Poler
18.02.2014, aktualisiert um 09:50 Uhr
01.
#include <stdlib.h>
02.
#include <stdio.h>
03.
#include "input.h"
04.

05.
int main(void){
06.
	int input = 0;
07.
	_beginthread((void(*)(void*))Fn_GetKey, 0, (void*)&input);
08.
	//if (_beginthread((void(*)(void*))Fn_GetKey, 0, (void*)&iInput) == ((uintptr_t)(intptr_t)-1)) {
09.
		do{		
10.
			printf("%d\n",input);
11.
			input=0;
12.
			
13.
			_sleep(50);
14.
		}while(input!=ESC);
15.
	//}
16.
	return 0;
17.
}
Wenn ich es so mache gehts, wenn ich die if Bedingung einbinde, schlägt die Überprüfung fehl, und er überspringt die Schleife.
01.
if (_beginthread((void(*)(void*))Fn_GetKey, 0, (void*)&iInput) ==(test= ((uintptr_t)(intptr_t)-1))) 
Habe mal testeshalber das gemacht und einen Breakpoint gesetzt.
beginthread liefert wie gesagt 48 zurück. test hat den Wert -1.


Ein großes Projekt wird das sicher nicht. Aber du schreibst das man bestimmte Funktionen zusammenfassen sollte (sobald es größer wird).
Da ich damit etwas Üben möchte, versuche ich das ganze mal so aufzutrennen, Das es für mich sinnvoll wäre.
Also eine Datei die die Tastatur Abfragt. Eine die nachher den Inhalt des Fensters neu aufbaut, sobald sich was ändert. Und dan mal schauen was ich sonst noch brauche.
cpp Dateien deshalb weil VS 2012 sie Standarthaft so benennt. Ich könnte sie von Hand .c nennen, aber warum sollte ich das tun? Ich hoffe ja noch (keine Ahnung ob es klappt) später sobald das ganze doch größer wird, und ich c++ Funktionen brauche, einfach den Compiler anzuweisen in c++ zu kompilieren.


Danke für deine Antwort

EDIT:
Ahh, da liegt mein Problem.
Man sollte auch dan ganze vollständig lesen.
Da ist keine geschweifte Klammer mehr nach der if Anweisung, es folgt direkt eine return Anweisung.
Werde es dran dementsprechend umbauen.
Bitte warten ..
Mitglied: rubberman
18.02.2014 um 19:07 Uhr
Zitat von Power-Poler:

Ich hoffe ja noch (keine Ahnung ob es klappt) später sobald das ganze doch größer wird, und ich c++ Funktionen brauche, einfach den Compiler anzuweisen in c++ zu kompilieren.
Umgekehrt wird ein Schuh draus. VS kompiliert standardmäßig als C++, wenn du nicht explizit in den Projekteigenschaften einstellst, dass als C kompiliert werden soll. In dem Fall zieht VS aber den Uralt - C89 - Standard an. Ergo: VS ist nicht besonders gut geeignet um C zu lernen.
BTW Wenn du C++ Code schreiben willst, gewöhne dir C besser gar nicht erst an. Das versaut den Stil. Da spreche ich aus eigener Erfahrung. Ich bin so auf C und die prozedurale Schreibweise geprägt, dass ich wohl nie behaupten werde, einigermaßen vernünftiges C++ zu schreiben. Die beiden Sprachen sind unterschiedlicher als du denkst, auch wenn C aus Kompatibilitätsgründen fast vollständig in C++ aufgeht.

EDIT:
Ahh, da liegt mein Problem.
Hehe. Noch deutlicher hätte ich es auch wirklich nicht schreiben können

Grüße
rubberman
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Cursor Focus mal da - mal nicht
Frage von PeterzBatch & Shell7 Kommentare

Hallo, ich habe ein Powershell Script, welches mir AD-Benutzer anlegt. Die Eingabe von Benutzernamen erfolgt durch eine TextBox, wobei ...

Mac OS X

MacOSX 10.11.5, Win2012 Server, RDP Session - Focus Verlust

gelöst Frage von MadMaikMac OS X4 Kommentare

Ich bin mir nicht sicher in welches Thema dieser Beitrag am besten passt, aber unter Apple MacOS ist er ...

Neue Wissensbeiträge
Humor (lol)

"Linux und 5 Gründe Warum man kein Windows verwenden sollte sondern Ubuntu Linux"

Tipp von Snowbird vor 3 StundenHumor (lol)8 Kommentare

Gerade gefunden. Ja, ist etwas älter, aber irgendwie lustig?

Humor (lol)

"Warum Linux in einer vernetzten Welt einfach keinen Komfort bietet!"

Tipp von Snowbird vor 21 StundenHumor (lol)13 Kommentare

Ein interessanter Einblick warum Linux nichts für Geräteübergreifende Arbeit ist :)

Humor (lol)
Zuviel Speicher ist ungesund. :-)
Tipp von Lochkartenstanzer vor 1 TagHumor (lol)14 Kommentare

Moin Kollegen, Heute hatte ich ein ungewöhnliches Aha-Erlebnis: Über das Wochenende habe ich einen einen 6 Jahre alten Bare-Metal ...

Windows Update

KB4517297 verfügbar, behebt Fehler in VB6 VBA VBScript

Information von sabines vor 1 TagWindows Update

Das Update behebt mögliche Fehler in VB6, VBA und VBScript, die durch das Update KB4512486 vom August entstanden sind. ...

Heiß diskutierte Inhalte
Hyper-V
Bei Neuaufbau auf Core-Server setzen?
gelöst Frage von dertowaHyper-V33 Kommentare

Hallo zusammen, ich habe vor einigen Monaten die Verantwortung für eine EDV-Landschaft übernommen die seit Jahren von einem Dienstleister ...

Router & Routing
Deinstalliertes Geräte wird in FritzBox noch immer als verbundenes Gerät angezeigt
gelöst Frage von imebroRouter & Routing18 Kommentare

Hallo, in meiner FritzBox 7490 wird im Bereich "Funknetz" ein Gereät bei den verbundenen Geräten angezeigt, wobei ich nicht ...

Batch & Shell
PowerShell - Text an HTMLbody übergeben mit UTF-8 Kodierung
Frage von Pat.batBatch & Shell14 Kommentare

Hallo zusammen, ich stoße momentan auf folgendes Problem. Ich möchte mit meinem Skript E-Mails versenden. Text und Signatur samt ...

Sonstige Systeme
Ist es möglich ein ISDN-Telefon an einen analogen Anschluss anzuschließen?
Frage von cramtroniSonstige Systeme14 Kommentare

Also anders herum geht es ja, da gibt es ja diese Adapter von RJ11 auf TAE-F, aber gibt es ...