Schon lange überfällig habe ich heute mal ein Syntax Highlighting Plugin aktiviert und einige von den letzten Beiträgen angepasst.

Ich hoffe, dass so das Kopieren von Skripten etc. einfacher gelingt.

rip

Hallo zusammen,

zurzeit sind die Kommentare deaktiviert, da ich ein kleines Spam-Problem habe. Ich denke, dass man hier schnell Abhilfe schaffen kann. [UPDATE]Wieder aktiv. Spam wird nun besser abgelehnt.[/UPDATE]

Sobald dies geschehen ist, werde die Kommentare wieder freigegeben.

Marius

Mit wenig Erklärung habe ich hier ein Skript geschrieben, dass euch eine Vorschau einer Datenbank-Tabelle anzeigt, um danach bestimmte Spalten nach html oder csv zu exportieren.

Nach Aufruf des Skripts werden automatisch die verfügbaren Tabellen der Datenbank geladen. Nach Auswahl einer Tabelle, bekommt man eine Vorschau (1. Zeile) der Tabelle angezeigt. Danach können nach belieben  mehrere Zellen markiert werden, um so festzulegen, welche Spalten mit allen Werten exportiert werden sollen. Wahlweise nach html oder csv.

Der jetzige Standard-Exportpfad liegt direkt auf “C:”. Kann aber im Skript geändert werden.

Aufruf erfolgt mit der DSN-ODBC-Namen. Beispielweise:

./ODBC-Connection.ps1 ODBC-DSNName

GUI Übersicht:

Beispiel Ausgabe in html:

 

Skript:

$objConnection = New-Object -comobject ADODB.Connection
$Connection =  New-Object -ComObject ADODB.Recordset

##Variables##
$date = get-date
$filelocation = "C:\cidcarnet.htm"
$filelocationcsv = "C:\cidcarnet.csv"

function Get-Tables
{
$Report =  @()
$objConnection.Open($ODBCName)
$objRS = $objConnection.Execute("Select Name from sysobjects where  type='U'")

while ($objRS.EOF -ne $True) {
foreach ($field in $objRS.Fields)  {
$hosts = "" | Select Name
$hosts."Name" = $field.Value
$Report  +=  $hosts

}
$objRS.MoveNext()
}
$objConnection.Close()
$Report  = $Report | sort Name
return $Report
}

function Get-Columns([string]$table)
{
$Report =  @()
$fsTable.Clear()
$fsTable.Columns.Clear()
$objConnection.Open($ODBCName)
$objColumns  = $objConnection.Execute("Select * from $table")

foreach ($column in  $objColumns.Fields) {
$hosts = "" | Select Name, Value
$hosts."Name" =  $column.Name
$hosts."Value" = $column.Value
$Report +=  $hosts
}
$fivalues = @()
$Report |  ForEach-Object{
$fsTable.Columns.Add($_.Name)
$fivalues += $_.Value
}
$fsTable.Rows.add($fivalues)
$dgDataGrid.DataSource =  $fsTable
$objConnection.Close()
}

function ExportToCSV
{
Clear-Content $filelocation
Clear-Content  $filelocationcsv

$selectedRows = @()
for($counter = $dgDataGrid.SelectedCells.Count;  $counter -ge 0; $counter--)
{
$cellIndex =  $dgDataGrid.SelectedCells[$counter].ColumnIndex
$selectedRows +=  $dgDataGrid.Columns[$cellIndex].Name
}
#write-host "1" + $selectedRows

#Tabellenwerte auslesen
$table =  $snTablesNameDrop.SelectedItem
$selectedRows | %{$columns +=  "$_,"}
$columns =  $columns.Substring(0,$columns.lastIndexOfAny(","))
$columns =  $columns.Replace(" ","")
$query = "SELECT " + $columns +" FROM  $table"
write-host  $query
$objConnection.Open($ODBCName)
$Connection.open($query,$objConnection,3,3)

$Report = @()
while (!$Connection.EOF) {
$hosts = "" | Select  $selectedRows

foreach ($column in $selectedRows)
{
$hosts."$column" =  $Connection.Fields.Item("$column").Value
}
$Report +=  $hosts
$Connection.MoveNext()
}

$Connection.Close()
$objConnection.Close()

Write-Host $Report

if($exportRadioBtn2.checked)
{
ConvertTo-Html -title "Check" -body  "<H1>Report</H1>" -head "<style>body {  background-color:#EEEEEE; }
body,table,td,th { font-family:Tahoma;  color:Black; Font-Size:10pt }
th { font-weight:bold;  background-color:#CCCCCC; }
td { background-color:white;  }</style>" | Out-File $filelocation
ConvertTo-Html -title "Check"  -body "<H4></H4>" | Out-File -Append  $filelocation
ConvertTo-Html -title "Check" -body "<H4>Date and  time</H4>",$date | Out-File -Append $filelocation
$Report |  ConvertTo-Html -body "<H2>$table</H2>" | Out-File -Append  $filelocation
}

if($exportRadioBtn1.checked)
{
$Report | Export-Csv -NoTypeInformation  -UseCulture $filelocationcsv
}
}

 

function  generateForm
{
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")
$form = new-object System.Windows.Forms.form

# Add Tables DropLable
$snTablesNamelableBox = new-object  System.Windows.Forms.Label
$snTablesNamelableBox.Location = new-object  System.Drawing.Size(10,5)
$snTablesNamelableBox.size = new-object  System.Drawing.Size(80,15)
$snTablesNamelableBox.Text =  "Tabellen:"
$form.Controls.Add($snTablesNamelableBox)

# Add Tables Drop Down
$snTablesNameDrop = new-object  System.Windows.Forms.ComboBox
$snTablesNameDrop.Location = new-object  System.Drawing.Size(10,20)
$snTablesNameDrop.Size = new-object  System.Drawing.Size(200,30)
get-tables |  ForEach-Object{$snTablesNameDrop.Items.Add($_.Name)}
$snTablesNameDrop.Add_SelectedValueChanged({Get-Columns($snTablesNameDrop.SelectedItem)})
$form.Controls.Add($snTablesNameDrop)

#Subtabelle
$fsTable = New-Object  System.Data.DataTable
$fsTable.TableName = "TablePreview"
# Add DataGrid View
$dgDataGrid = new-object  System.windows.forms.DataGridView
$dgDataGrid.Location = new-object  System.Drawing.Size(10,50)
$dgDataGrid.size = new-object  System.Drawing.Size(770,75)
$dgDataGrid.AutoSizeRowsMode =  "AllHeaders"
$form.Controls.Add($dgDataGrid)

#Export-Radiobuttons
$exportRadioBtn1 = New-Object  System.Windows.Forms.RadioButton
$exportRadioBtn1.text = "Export nach  csv"
$exportRadioBtn1.top = 145
$exportRadioBtn1.left =  160
$exportRadioBtn1.checked =  $true
$form.Controls.Add($exportRadioBtn1)

$exportRadioBtn2 = New-Object  System.Windows.Forms.RadioButton
$exportRadioBtn2.text = "Export nach  html"
$exportRadioBtn2.top = 170
$exportRadioBtn2.left =  160
$exportRadioBtn2.width = 200
$form.Controls.Add($exportRadioBtn2)

# Create Button and set text and location
$button_exit = New-Object  Windows.Forms.Button
$button_exit.text = "Exit"
$button_exit.Location =  New-Object Drawing.Point 15,245
$form.controls.add($button_exit)

$button_exit.add_click({
$form.Close()
})

# Create Button and set text and location
$button_csv = New-Object  Windows.Forms.Button
$button_csv.text = "Export"
$button_csv.width =  100
$button_csv.Location = New-Object Drawing.Point  15,145
$form.controls.add($button_csv)

$button_csv.add_click({
ExportToCSV
})

$form.Text = "PS-Sybase Control"
$form.size = new-object  System.Drawing.Size(800,300)
$form.autoscroll = $true
$form.Width =  800
$form.Height = 300
$form.FormBorderStyle =  "FixedSingle"
$form.ControlBox =  $false
$form.Add_Shown({$form.Activate()})
$form.ShowDialog()

}

if ($Args.count -lt 1) {

'No Parameter!'
'Usage:'
'./ODBC-Connection.ps1  ODBC-DSNName'
''
}
else{
$ODBCName =  $args[0]
generateForm
}

 

Hallo zusammen,

an diesem Wochenende wird die Homepage zu einem neuen Provider umziehen. Wann genau und wie lange dieser Umzug dauert, kann noch nicht ganz klar definiert werden.

Gruß

MS

[UPDATE]Die Webseite ist erfolgreich auf den neuen Hoster umgezogen![/UPDATE]

Um Quotas auf einem Terminalserver (benutzte Teststellung: Windows Server 2008R2) zu administrieren, liegt es nicht fern den vorhandenen Ressourcen-Manager zu verwenden.

Dieser kann über den Server-Manager als Rolle hinzugefügt werden: “Dateidienste” -> “Ressourcen-Manger”.

Nach der Erstellung einer Quota-Vorlage, kommen wir nun zum eigentlichen Thema. Wie können die Benutzer direkt eine Warnung erhalten, wenn diese einen bestimmten Prozentsatz ihres Quotas überschreiten.

quota1

In dem Bereich Benachrichtigungsschwellenwerte klickt ihr auf Bearbeiten und dann auf den Reiter Befehl. Dort können wir ein Script hinterlegen und dieses mit Parametern aufrufen. Z.B. so:

quota2

Damit die Nachricht auch an den richtigen Benutzer gesendet wird, brauchen wir ein Skript, dass den Namensparameter bearbeitet, da dieser mit der Domäne übergeben und von MSG.exe so nicht gefunden wird.

Parameter von MSG.exe

quota3

Und hier der Dreizeiler der Batch:

MSG.bat

set str=%1%
set str=%str:~7%
msg.exe %str% Warnung: Ihr Profil belegt bereits %2 Prozent von %3 MB.

Wir wählen, unter Schwellenwerteigenschaften, die zuvor erstellte Batch-Datei aus und übergeben folgende Parameter:

[Source Io Owner] [Quota Used Percent] [Quota Limit MB]

Somit wird bei den Benutzern, welche den angegebenen Schwellenwert überschreiten, folgende Meldung angezeigt:

warnung

Die Version 1.1 ist seit heute im Appstore verfügbar.

Changelog:

- Twitter Login Fix (oAuth WebView implementiert)
- MultiTasking hinzugefügt
- Probleme mit der Ton De- und Aktivierung behoben

- Einige Designänderungen:
- Einstellungsansicht komplett geändert
- Twitterbutton im Spiel neu positioniert
- Neue UI-Elemente
- UI-Elemente besser positioniert

Zum Appstore:

Das Game Center erfreut sich immer größerer Beliebtheit und deswegen habe ich mich auch entschlossen, diese Unterstützung in deHangman2 zu integrieren.

Die ersten Funktionen werden sich auf die Leaderboards und Achievements beschränken. Die Standardfunktionen Friends und Authentication werden automatisch mit dem Game Center integriert.

Noch ist keine Zeile Code geschrieben, aber mit der gute Dokumentation von Apple: Game Center Implementierung!

Nach einem langen hin und her mit dem Review-Team von Apple, kann ich euch heute mitteilen, dass deHangman2 es endlich in den Appstore geschafft hat.

deHangman2:

Status: Im Appstore verfügbar.

deHangman2 basiert auf den bekannten Hangmanspiel!

Ziel des Spieles ist es, die Begriffe zu erraten ohne dabei erhängt zu werden. Man sollte deswegen seine Buchstaben nicht sinnlos wählen, sondern etwas nachdenken und rätseln.
Das Spiel enthält knapp 1000 Wörter und wird mit Updates erweitert.

Neue Features in deHangman2:
Änderungen zum Vorgänger:

    - komplette Grafiken und Code überarbeitet
    – 2 Spieler Modus vorhanden
    – längere Wörter sind nun möglich
    – dynamische Hintergründe
    – Highscore kann an Twitter gesendet werden
    – komplett neue Soundkulisse
    – und noch einiges mehr…

Screenshots:

UPDATE:
Apple hat wieder die App rejected, da man mit zwei Versionen durcheinander kommen könnte. Obwohl es nur noch eine Version gibt. deHangman ist nicht mehr verfügbar im Appstore. Die erste Version kann ich nicht mehr hinzufügen und deHangman2 wird nicht zugelassen. Super Apple. Stehe zur Zeit in Kontakt mit dem ReviewTeam, aber Hoffnung habe ich immer weniger.

deHangman2 wurde gestern bei Apple eingereicht und wartet auf sein Review.

Da nur eine Version im Appstore vorhanden sein kann, musste ich für diese Zeit deHangman aus dem Appstore entfernen.

Sobald deHangman2 freigegeben wird. Werde ich es hier veröffentlichen.

Pages: 1 2 3 4 5 Next

autodesk autocad map 3d 2010 cs4 microsoft windows 7 home premium (32 bit) office 2010 standard (64-bit) Photoshop Top Secret microsoft office excel 2010 adobe audition cs5.5 mac windows vista home basic with sp2 (32bit) word 2010 adobe cs5 master collection mac autodesk mapguide studio 2009 creative suite 4 web standard microsoft office 2007 home and student audition cs5.5 mac mappoint 2006 europe