Samstag, 22. Juni 2013

Programmieren mit Qt oder VC2010 unter Windows


Programmieren mit Qt oder Visual Studio 2010 Express unter Windows

  1. Installiere die mingw Version
  2. Lege das Verzeichnis D:\sgi_projekt\Qt\01_hallowelt an
  3. Schreibe den Quelltext in main.cpp
  4. Rufe über das Startmenü den Qt Command Promt auf (bzw übergib dem Command Promt die Umgebungsvariablen, sofern sie nicht im PATH gespeichert sind C:\WINDOWS\system32\cmd.exe /K C:\Qt\2009.05\bin\qtenv.bat)
  5. D:\sgi_projekt\Qt\01_hallowelt
  6. cd qmake -project
  7. qmake
  8. mingw32-make release
  9. Kopiere die DLLs aus C:\Qt\2009.05\qt\bin  nach C:\WINDOWS\system
  10. Starte 01_hallowelt.exe



#include <QApplication> 
#include <QPushButton>

int main (int argc, char *argv[]){

    QApplication app(argc, argv);
    QPushButton hello("Hallo Welt");
    hello.resize(100,30);
    hello.show();
    return app.exec();
}
 
 

UAC (User Account Control - Benutzerkontensteuerung)

Frage: Wie kann man erreichen, daß unter Win7 ein Admin ein Programm mit Adminrechten startet?
Antwort: Binde an die exe ein Manifest mit <requestedExecutionLevel level="asInvoker" uiAccess="false" /> an

So legen Sie diese Linkeroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Rechtsklick-Eigenschaften
  2. Erweitern Sie den Knoten Konfigurationseigenschaften.
  3. Erweitern Sie den Knoten Linker.
  4. Wählen Sie die Eigenschaftenseite Manifestdatei aus.
  5. Ändern Sie die Eigenschaften Benutzerkontensteuerung aktivieren (UAC), UAC-Ausführungsebene und Schutz vor Umgehen der Benutzeroberfläche für die Benutzerkontensteuerung.
http://www.transmissionzero.co.uk/computing/win32-apps-with-mingw/ 

http://www.thomaslutz.de/2010/06/12/datei-offnen-sicherheitswarnung-deaktivieren/
http://iefaq.info/index.php?action=artikel&artlang=de&cat=39&id=92
http://de.wikipedia.org/wiki/Benutzerkontensteuerung
http://www.qtcentre.org/threads/46917-How-to-run-application-in-qt-as-administrator
https://www.google.de/search?q=qt+c%2B%2B+shellexecute+runas 
http://www.codeproject.com/Articles/17968/Making-Your-Application-UAC-Aware
http://stackoverflow.com/questions/12278729/qt-on-windows-setting-privilege-level-to-requireadministrator
http://qt-project.org/forums/viewthread/17515
http://www.qtcentre.org/threads/29107-win32-how-to-modify-the-manifest-with-qmake 


AES (Attachment Execution Services)

Frage: Wie kann ich die Meldung "Der Herausgeber konnte nicht verifiziert werden" umgehen?
Antwort:



http://www.wintotal.de/tipparchiv/?id=1024


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


System, ShellExecute, Process.Start()
http://stackoverflow.com/questions/9303660/system-vs-shellexecute-differences
http://www.qtcentre.org/threads/30066-Using-ShellExecute

Qt
http://qt-project.org/doc/qt-4.8/gettingstartedqt.html

VC2010
http://www.qtforum.de/forum/viewtopic.php?f=15&t=15229

http://www.utd.hs-rm.de/prof/kuveler/students/mct/anleitung_visual_cpp.pdf


http://technozeal.wordpress.com/2011/01/19/writing-and-compiling-c-program-using-microsoft-visual-c-2010-express-edition/
http://qt-project.org/forums/viewthread/7070
http://www.wisegai.com/2012/10/24/creating-a-guiinterface-using-visual-studio-2010-and-qt/

C/C++ Dienst erstellen

http://www.muukka.net/programming/service/

Mit VC2010 ein neues Konsolenprojekt erstellen, eine Quelldatei myDienst.cpp per Rechtsklick auf Quelldateien hinzufügen, den Inhalt von http://www.muukka.net/programming/service/Beeper%20Service.cpp  pasten und mit F5 als Release Version compilieren.

Dienst installieren
C:\>sc create "myDienst" binPath= "D:\sgi_projekt\Visual Studio 2010\Projects\myDienst\Release\myDienst.exe"
 
Dienst deinstallieren
C:\>sc delete "myDienst"   

Dienst starten und stoppen über die Systemsteuerung-Verwaltung-Dienste oder
C:\>sc start "myDienst" 
C:\>sc stop "myDienst"  

 type= own type= interact über den Eigenschaftendialog oder als Parameter.



To install a service, you can use the sc utility. The steps are:
  • Copy the executable and all its dependencies into a directory (%SYSTEMROOT%\System32 is perfectly valid).
  • Run as administrator of the computer the command:
sc create MathsService binPath= %SYSTEMROOT%\System32\Maths.exe type= own type= interact start= demand DisplayName= "My fabulous Maths service"
Where MathsService is the name of the service, the argument to binPath is the binary location and DisplayName argument is the name that shows on services.msc. The argument to start can be boot (not suitable for a service), system (not suitable for a service), auto (autostart), demand (on demand start, you have to start your service manually) or disabled (service will not start even manually).
In this example, i use type= own type= interact. This allows the service to interact with the desktop (for TCP/IP communications, for example).
Complete reference of sc sintaxis is available running sc. Also check http://support.microsoft.com/kb/251192

Dienst installieren unter Win7


Man benbötigt eine Kommandozeile mit Adminrechten und ggf. das Administrator-Login.

Es empfiehlt sich daher, bei häufigem Gebrauch von "cmd", sich eine Verknüpfung zu erstellen und in den Eigenschaften der Verknüpfung einzustellen, dass das Programm als Administrator ausgeführt werden soll.

Alternativ: Im Suchfeld "cmd" eingeben, STRG+Shift gedrückt halten und Enter drücken - dadurch wird die Kommandozeile im Admin-Modus gestartet.

net user Administrator /active zum einloggen als Admin.